安装 stm32CubeMX,配合Keil,分别尝试使用寄存器地址方式(汇编或C,不限) 和HAL库这两种方式,完成下列任务:
1、重做上一个LED流水灯作业,即用GPIO端口完成3只LED红绿灯的周期闪烁。
2、完成一个STM32的USART串口通讯程序(查询方式即可,暂不要求采用中断方式),要求:
1)设置波特率为115200,1位停止位,无校验位;
2)STM32系统给上位机(win10)连续发送“hello windows!”。win10采用“串口助手”工具接收。
一、HAl库实现流水灯
1.安装cubeMX
安装教程:STM32CubeMX系列教程02_STM32CubeMX工具、HAL库下载、安装说明
按照以上教程安装好后开始下一步
2.创建项目
打开cubeMX
选择New Project下的第一个选项access to mcu那一个
在左上的part number中输入对应芯片名,中间出现对应的芯片后双击进入编辑
选择PA4,PB5,PC14三个引脚,都选择GPIO_Output选项
点击左侧system core选项,选择sys,右方debug选择serial write
接着点击GPIO设置
点击上方Project Manager
输入项目名称,application Structure选择basic,ide选择mdk,版本对应keil版本,最后点击右上方generate code
代码创建好后点击open即可keil打开项目
修改while循环实现流水灯,编译创建hex文件
烧录hex文件
效果:HAL库实现流水灯
3.波形图
可以看到按照A4、B5、C14的顺序依次先高电平再低电平,时间间隔约为1s。
二、USART串口通讯
1.创建项目
项目创建与前面步骤一致
在AZ选项中选择usart1并进行图中配置
然后generate code,manager选项与前面也一致
keil打开项目
修改while循环
PA4端口在每次发送信息后亮0.1秒后熄灭,等待0.9秒后继续循环上述步骤。
烧录hex
2.实现效果
三、总结
通过使用HAL库可以大大减少我们配置对应引脚的时间和代码量,在操作方面也方便了许多,不需要再翻资料查找每一个寄存器的基地址了。而且HAL库可以一键帮我们配置串口输出参数,很方便编程。