
前言很感谢ST中文社区让我体验H7A3ZI-Q这块开发板,但是由于个人原因拖到现在才开始编写这篇体验报告,也很感谢ST中文社区的耐心和支持!!! 本文不是入门教程,更多是个人体验笔记和交流,如果有不懂的地方,可以自行查阅资料或者上B站看视频学习哦。 由于作者技术水平有限,本文可能会有错误的地方,感谢大家热情指出和交流。 介绍:一般来说,单片机学习都是从点亮一个灯开始的,也是一个熟悉编译环境和入门的过程。所以第一个小试验就是点灯,但是单纯的亮一个灯又比较无趣,所以我们可以让灯无序的亮起,然后亮随机的时间,我简称这个为“皮皮灯”。 使用单片机实现上面的功能可能会经过以下流程:
本次实验按照以上步骤来编写。 硬件设计如图所示,PB0,PE1,PB14对应不同颜色的LED灯,故确定本次实验需要配置这三个IO。再者此三个IO是通过NPN三极管控制LED灯的,当IO输出高电平,三极管即导通,电流能通过三极管ec二级流入地,LED导通,并点亮,故也能确定输出高电平点亮LED灯,反之输出低电平熄灭LED灯。 使用CubeMX创建工程并生成代码因为是基于nucleo-H7A3ZI-Q开发板开发的,所以可以直接选择板来创建工程 创建完工程看视图,可以发现其实软件已经帮我们配置好LED灯和SWD等的引脚,因为本开发板是使用板载的ST-LINK V3来实现调试和串口共同一个USB口,十分方便,所以本实验无需修改既可选择直接生成代码,当然你可以自行修改看看有啥不同,比如调整时钟频率,IO速度等,看看会不会和本实验有不同的现象。 ,在while循环里面,产生1-3范围内的随机数,点亮LED1~3(即R\G\B,按你的想法来定义),确定LED等后就翻转LED电平,延时随机数,我的代码为了好观察现象已经配置一个较短的时间了,延时结束后,再翻转LED电平。 应用代码具体的应用需要读者自行编写,这里给出关键代码作为参考。 在给出代码前,读者需要了解stdlib库的srand() , rand()函数,这里给出参考文章: https://c.biancheng.net/view/2043.html 产生1~3范围内的随机数:
可以看到以上代码是利用systick的来"播种"的,故可以通过改变""播种"来源,产生不同的“种子”。 产生随机数:
LED随机延时后翻转
主函数:
实验现象编译工程烧录下载后,可以看到主板上三盏灯会随机的亮起 代码参考有需要的话,可以在git上克隆工程下来看看实验现象 https://github.com/ALanStewart47/Project-H7A3ZI-Q/tree/main/Software/1.Led_Control 后续也附上csdn的下载链接(必须免积分): 自我修改
|
感谢分享6 l( q% ]4 E2 t& t8 }* J |
【2025·STM32峰会】GUI解决方案实训分享5-调通板载的NRF24L01 SPI接口并使用模块进行无线通信(发送和接收)
【2025·STM32峰会】GUI解决方案实训分享4-使用MVP架构从硬件外设读取数据并显示到图形界面、从图形界面发送指令控制硬件外设
【2025·STM32峰会】GUI解决方案实训分享3-搭建空白TouchGFX例程并实现简单的功能(含硬件部分的串口打印)
【2025·STM32峰会】GUI解决方案实训分享2-编译运行TouchGFX咖啡机例程(含桌面仿真)
【2025·STM32峰会】+TouchGFX实现动态进度显示以及界面切换
【2025·STM32峰会】+使用TouchGFX快速创建GUI
【2025·STM32峰会】GUI解决方案实训分享1-对LVGL咖啡机例程的牛刀小试以及问题排查
实战经验 | 关于STM32H7使用LL库生成ADC代码工作异常问题说明
实战经验 | 关于STM32H745的MC SDK电机控制工程问题的解决办法
【H745I GUI】1.GreenHouse 灯光控制