一.实验工具
STM32CubeMX
KEIL5
STM32C8T6核心板
LED灯
面包板
杜邦线
二.使用STM32CubeMX的HAL库生成代码点亮流水灯
1.首先安装STM32CubeMX软件:
下载安装包之后按步骤进行
最后出现点击DONE即可
2.安装HAL库
到主界面如下图:
在HELP里找到光标显示位置如下图:
选择自己开发板的型号,此处需要自己的账号,没有的需要自己住注册。
上一步完成之后进行参数设置,设置三个输出引脚:
最后打开Project Manager,给工程配置文件名,生成.c文件之后点击GENERATE CODE 生成工程代码,跳转到keil
三.利用keil仿真及电路连接
1.跳转之后找到main文件,在标绿的地方插入代码
代码如下:
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,1); HAL_Delay(1000);//??1s HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,0); HAL_GPIO_WritePin(GPIOA,GPIO_PIN_6,1); HAL_Delay(1000);//??1s HAL_GPIO_WritePin(GPIOA,GPIO_PIN_6,0); HAL_GPIO_WritePin(GPIOA,GPIO_PIN_7,1); HAL_Delay(1000);//??1s HAL_GPIO_WritePin(GPIOA,GPIO_PIN_7,0);
之后进行编译
2.电路连接
GND — GND
3v3 — 3v3
TXD — A10
RXD — A9
红——A6
绿——A7
黄——A5
3.连接STLINK串口,点击烧录运行成功即可
四.结果展示
流水灯循环展示如下:
五.观察GPIO端口的输出波形
1.Target界面中,选择跟正确的晶振大小,使用8MHz的外部晶振。这个选项在软件仿真中起到很重要的作用,如果选择错误,那么波形一定是错误的,因为时间不准确。
2.Debug页面设置
选择Use Simulator和Run to main
之后此页面一定要改最下面两格Parameter,改为自己开发板型号
3.之后进入调试界面:
进入逻辑分析仪:
4.之后找到左上角Setup Logic Analyzer设置要观察的引脚
其中Display Type设置为Bit
5.运行程序,观察波形,结果如下:
六.总结
此次试验学习如何配置STM32的GPIO引脚以控制外部设备,这是嵌入式开发的基本步骤。理解如何使用STM32的HAL库函数,简化了底层硬件控制,减少了代码的复杂性。通过创建项目、编写代码、调试和烧录固件,学习了嵌入式软件开发的整个流程。 通过诊断和解决LED灯工作不正常的问题,提高了调试技能。学会如何添加延时以控制LED流水灯的速度,重要的时间管理技能。 了解了硬件与软件之间的交互,如何在代码中控制外部硬件设备。通过实际项目,将学到的理论知识应用到实际情境,深化了对嵌入式系统的理解。 对STM32微控制器的初学者来说,这是一个很好的入门项目,它可以作为更复杂项目的基础。锻炼了解决问题和调试的能力,这对嵌入式开发者至关重要。
本次的基于HAL库的LED流水灯实验已完成,通过此次课程学习,我更加扎实地掌握了有关基于HAL库的LED流水灯方面的知识,也通过解决一些实际问题发现了我在学习过程中的知识欠缺与经验不足,践行过而能改,善莫大焉的知行观。实践对于嵌入式课程是十分重要的,只有尝试和改正才能助我们修成一门学问。以后无论学习过程有多苦,我都将变苦为乐,在实践中学习更多知识,面对即将到来的挑战。