基于HAL库的LED流水灯

一.实验工具

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流水灯方面的知识,也通过解决一些实际问题发现了我在学习过程中的知识欠缺与经验不足,践行过而能改,善莫大焉的知行观。实践对于嵌入式课程是十分重要的,只有尝试和改正才能助我们修成一门学问。以后无论学习过程有多苦,我都将变苦为乐,在实践中学习更多知识,面对即将到来的挑战。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值