You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

31 lines
1.6 KiB
Markdown

1 year ago
实验名称STM32 GPIO 操作
## 1. 实验内容
通过按键实现LED灯的开关以及闪烁控制。
开发板使用KEY1和KEY2图中1所示的位置控制RGB图中2所示的位置灯。
![image-20230919110730076](img/实验1/image-20230919110730076.png)
## 2. 基本要求
1. 通过一个按键控制一红灯的开关;点击一次打开;第二次点击关闭;
2. 通过另外一个按键控制蓝色和绿色灯的闪烁;点击一次蓝灯闪烁,绿灯熄灭;再点击一次蓝灯熄灭,绿灯闪烁。
## 3. 进阶要求
1. 串口可以接收到LED的工作状态字符串含义自己确定
2. 使用串口发送命令来控制灯的开关和闪烁,字符串命令自己定义;
3. 可以参考bilibili的视频
## 4. 其他说明
1. 可以使用中断方式和非中断方式
2. 中断方式下,如果需要访问全局变量,最好把全局变量使用 volatile 来进行修饰,避免编译器对该变量进行优化。具体参考 https://blog.csdn.net/dengjin20104042056/article/details/107716564 。主函数和中断处理函数相当于两个线程,因为编译器的优化,在一个线程中改变一个全局变量的值,另外一个线程读取到的可能是没有改变前的值,因此需要用 volatile 来标识这个变量,让编译器不优化这个变量的存储(这个变量的值可能因为编译器的优化在寄存器中进行改变,而不是在真正的内存区间)。这个问题书上在中断这部分也说明了。
## 5. 实验报告要求
按照群中的实验报告的模板,以及模板中的说明进行。