HAL库自学笔记(一)——点亮LED

一、STM32CubeMX配置

STM32CubeMX配置如下:

(一)芯片选型及调试模式

        本次实验设备选用野火开发板指南者,芯片型号STM32F103VET6。

 Debug选用serial wire

(二) 时钟配置

使用高速时钟, Crystal/Ceramic Resonator(石英/陶瓷谐振器)

将系统时钟配置为72Mhz

(三)gpio配置

打开原理图,可知PB5,PB0,PB1分别对应红绿蓝灯,且低电平亮,高电平灭。

 分别配置gpio,下面仅给出PB5配置,PB0,PB1同理。

此处配置输出模式,GPIO_Output。

GPIO Output level:默认电平,因为开发板低电平点亮,默认配置为高电平

GPIO mode:输出模式,有推挽输出和开漏输出两周,这里随意,用推挽输出。

GPIO Pull-up/Pull-down:上拉或下拉,推挽输出没有上下拉,这里配置 no pull-up and no pull-down。

Maximum output speed:最大输出速度,这里是高低电平切换速度,配置为High。

User Label:用户标签,就是重命名,给一个用户想要的名字,这里给LED_R表示该gpio控制红灯。

(四)生成代码

给此项目命名,选择合适的IDE

我习惯生成所有库的内容以适应以后的扩充,生成的文件有独立的.c和.h后期更好修改,如下:

最后点击generate code即可,生成代码如下:

二、点亮LED

(一)调试设置

刚配置完的代码还不能直接使用,需要修改编译器的一些设置,首先在Debug里面修改烧录器选项

 当SW Device有一个小标记出现时,说明连接上了单片机。

此时可以编译了,点击F7或者向下箭头,0 error 0 warning

(二)宏定义

可以在gpio.h中定义一些对LED的操作,如亮灭,翻转等

(三)主函数调用

此时,简易流水灯已经做好