目录
3.2 实验02-跑马灯实验
在SmartUnion STM32F103VET6开发板中实现八个LED跑马灯功能。
3.2.1 STM32CubeMX软件配置
1.复制实验1配置完成的CubeMX文件,如下图所示。
2.复制到Demo02文件夹中(没有Demo02文件夹,自己新建即可),并修改为Demo02.ioc,如下图所示。
3.双击打开Demo02.ioc文件,进入STM32CubeMX软件配置。
4.配置LED1~LED8引脚,根据下图原理图可知,LED1通过PB8进行控制,LED2通过PA4控制,LED3通过PA5控制,LED4通过PB8控制,LED5通过PA15控制,LED6通过PD3控制,LED7通过PA11控制,LED8通过PA12控制。
5.PB8在实验1已经配置过,进行其余引脚配置。找到PA4引脚,在标号1处点击鼠标左键,在标号2处选择GPIO_Output(推挽输出)功能。
6. 配置PA5引脚,在标号1处点击鼠标左键,在标号2处选择GPIO_Output功能。
7. 配置PA8引脚,在标号1处点击鼠标左键,在标号2处选择GPIO_Output功能。
8. 配置PA15引脚,在标号1处点击鼠标左键,在标号2处选择GPIO_Output功能。
9. 配置PD3引脚,在标号1处点击鼠标左键,在标号2处选择GPIO_Output功能。
10. 配置PA11引脚,在标号1处点击鼠标左键,在标号2处选择GPIO_Output功能。
11. 配置PA12引脚,在标号1处点击鼠标左键,在标号2处选择GPIO_Output功能。
12. 点击GPIO选项,如下图所示。
13.配置PA4引脚功能,如下图所示,具体表示的配置信息,参考实验1这部分内容有讲述。
13.配置PA5引脚功能,如下图所示,具体表示的配置信息,参考实验一这部分内容有讲述。
14.配置PA8引脚功能,如下图所示,具体表示的配置信息,参考实验一这部分内容有讲述。
15. 配置PA11引脚功能,如下图所示,具体表示的配置信息,参考实验一这部分内容有讲述。
16. 配置PA12引脚功能,如下图所示,具体表示的配置信息,参考实验一这部分内容有讲述。
17.配置PA15引脚功能,如下图所示,具体表示的配置信息,参考实验一这部分内容有讲述。
18.配置PD3引脚功能,如下图所示,具体表示的配置信息,参考实验一这部分内容有讲述。
19.保存CubeMX工程,如下图所示。
20.查看保存路径信息,如下图所示。
21.点击GENERATE CODE,生成STM32工程代码。
(1)等待代码生成完成。
(2)出现如下图信息,则代码生成成功。
3.2.2 代码编写
1.点击Open Folder,如下图所示。
2.出现如下图所示的工程路径。
3.在MDK-ARM目录下找到Demo02.uvprojx文件,双击打开。
4.出现如下图所示界面。
5.展开User项目组。
6.找到User/main.c,双击打开main.c文件,在48行处添加代码,如下图所示。
参考代码如下:
uint16_t LED_Pins[] = {LED1_Pin, LED2_Pin, LED3_Pin, LED4_Pin, LED5_Pin,
LED6_Pin, LED7_Pin, LED8_Pin};
GPIO_TypeDef *LEDS_Port[] = {LED1_GPIO_Port, LED2_GPIO_Port, LED3_GPIO_Port, LED4_GPIO_Port,
LED5_GPIO_Port, LED6_GPIO_Port, LED7_GPIO_Port, LED8_GPIO_Port}
7.在main.c文件,在while循环语句中104行处添加代码,如下图所示。
参考代码如下:
uint8_t i;
for(i=0;i<8; i++)
{
HAL_GPIO_WritePin(LEDS_Port[i], LED_Pins[i], GPIO_PIN_RESET);//依次点亮LED1~LED8
HAL_Delay(1000);//点亮时间延时1000ms
HAL_GPIO_WritePin(LEDS_Port[i], LED_Pins[i], GPIO_PIN_SET);//依次熄灭LED1~LED8
HAL_Delay(1000);//熄灭时间延时1000ms
}
3.2.3 编译与下载程序
1.编译程序,操作步骤如下图所示。
2.查看编译是否成功。
3.程序下载。
请参考前面章节【2.程序下载】https://blog.csdn.net/Wang_Zhi_Hao/article/details/120238876?spm=1001.2014.3001.5502这部分内容。
3.2.4 查看实验结果
观察开发板现象,LED1~LED8依次从上往下每隔1秒钟点亮一个LED。