- 实战环节
- 目的:使用STM32CubeIDE创建基础工程,实现LED0和LED1均每500ms交替闪烁。
能学到:
- 学会使用宏定义的方式控制LED,让代码更简洁
- 学会在工程中创建文件夹和.c/h文件
接着,开始我们的实践操作!
1.按照配置(默认高电平,上拉模式)
(使用外部时钟)
配置时钟频率为72MHZ
下面来到sys调试接口,选择两线的Serial Wire
接着我们要生成代码,然后我们生成代码不是直接让他生成,而是.c和.h文件分开放。根据下图操作就可以将.c和.h文件分开存放了
配置完之后,就点击上面黄色的小圆筒
这样代码就生成完了。
接着先创建.c/h文件,再在.c/h文件中写代码(使用宏定义的方式控制LED)
右键Drivers➡New➡Folder,然后文件的Folder name就可以自己命名了(我命名BSP)
接下来,我们在led.c中写#include “led.h”
#define LED0(x) x?HAL_GPIO_WritePin(LED0_GPIO_Port,LED0_Pin,GPIO_PIN_SET):\
HAL_GPIO_WritePin(LED0_GPIO_Port,LED0_Pin,GPIO_PIN_RESET)
因为一行语句太长看着不方便,所以加了一个\,回车,变两行
当x是1时,执行分号前面的HAL_GPIO_WritePin(LED0_GPIO_Port,LED0_Pin,GPIO_PIN_SET)
当x是0时,执行分号前面的HAL_GPIO_WritePin(LED0_GPIO_Port,LED0_Pin,GPIO_PIN_RESET)
接下来包含led.h的路径,右键01_LED➡Proerties➡C/C++General➡Paths and Symbols➡Add
根据左侧工程栏里的包含关系可以写下图所示路径,ok后,Apply➡Apply and Close
这时候在main.c中写#include”led.h”就可以编译成功不出错了
也可以像下图所示的绝对路径的方法,#include”../../BSP/led.h”
接下来就可以像下图一样写代码,编译,下载了,下载过程跟上一篇文章下的一样,不知道的看我上一篇发的。