起因
今天也是换一个标题吧,把“自学STM32历程”改成“STM32HAL库编程”,因为我现阶段是以HAL库学习为主。今天也是发布第一个HAL库项目——点亮一颗LED,这也是所有嵌入式学习的开始吧!
因为HAL库编程和固件库编程的区别不大,只是HAL库编程能帮助我们初始化,而固件库要我们自己初始化而已,但它们的编译原理是一样的,都是间接控制寄存器,而且都可以控制同一个芯片,只是编译方式不同而已。
实验流程
第一步——创建工程
选择芯片STM32F103C8系列,然后建立工程。
第二步——配置时钟、Debug
时钟选择外部晶振时钟,Debug选择Serial Wire。
第三步——配置引脚
因为是以STM32C8T6最小系统板进行开发的,并没有添加多余外设,所以设置引脚也十分自由。在这里我们设置PA1来连接LED。这里的电平可以高,也可以低。这里我们设置为低。然后LED的正极接VCC,负极接PA1,正进负出实现点亮。
如果是输出的话,一般是推挽输出GPIO_MODE_OUT_PP
不用选择上拉输入或下拉输入,因为我们是输出。
速度的话选择高速也就是50MHZ。
第四步——生成代码
配置这两个。之后的项目中,第四步就直接一句话带过了。
生成代码
第五步——打开生成文件
这里有两个点,第一就是MDK-ARM,这就是生成的代码,进去就可以用KEIL5打开了。
第二个就是蓝色图标led.ios,这就是HAL库文件,如果还想添加引脚,就直接点击重新配置就行,但是要将写的代码放到指定区域Begin……代码……end哈。
第五步之后也一句话带过了。
第六步——keil5配置
点击魔术棒,修改烧录方式,这里我这里选用ST-Link,蓝桥杯选择的是CMSIS-DAP。
然后再点击Setting,修改烧录方式为下载即重新烧录,就是勾选Reset and Run。
这里蓝桥杯还要修改下面的flash,选择STM32G43x-4x 128KB Flash;
第六步以后就一句话带过了哈。
第七步——编译
在开始自己写代码之前先编译一遍,为了出现代码提示以及检测HAL库有没有搞错。
下图是编译成功后的现象:
这次实验就到这里了。不需要再添加其他代码。
其实只要能点亮一颗LED灯,那就已经算入门了!