代码拉取完成,页面将自动刷新
/* ********************************************************************************************************* * * 【安富莱】STM32-V4 开发板-例程功能说明 * * 例程名称 : V4-001_不一样的跑马灯(软件定时器、状态机) * * 推荐将编辑器的缩进参数和TAB设置为4 来阅读本文件 * ********************************************************************************************************* */ 【1】例程简介 这个程序实现了简单的流水灯功能。流水灯程序(也叫跑马灯)的写法有很多种,每个人都不一样。有简单的有复杂的, 我们写得这个流水灯程序看起来复杂。我们不是简单地教你如何设置1个GPIO输出0和1,我们希望你能从中学到是 ST固件库、状态机编程、软件定时器的用法。 这个流水灯程序实现功能如下: (1)上电时,LED1点亮,闪烁3次,闪烁频率为精确的1Hz。 --- 状态0 (持续3秒) (2)依次点亮4个LED中的一个, 实现流水灯的效果。--- 状态1 (持续5秒) (3)依次熄灭4个LED中的一个,实现第2种流水灯效果。 --- 状态2 (持续5秒) (4)(状态0)-->(状态1)-->(状态2 ) | | -----<----- 这个例子应用1个systick中断实现几个软件定时器,用来控制LED指示灯的闪烁时间。主程序采用了状态机编程方法。 bsp_led.c 文件封装了LED的驱动函数。驱动LED的相关GPIO被配置为推挽输出模式。 bsp_timer.c 文件包含systick中断配置函数,定时周期设置为1ms。中断服务程序实现了4个软件定时器。软件定时器 的个数由bsp_timer.h 中的宏TMR_COUNT来定义。 【2】执行结果 下载完程序之后,复位运行程序。观察开发板上的LED1-LED4 指示灯的状态。 【3】例程修改记录 2015-08-30 V1.0 首版 【4】 2021-08 1、迁移到Nano 开发板适配STM32F103RB; 2、将跑马灯的数量增加到8个; 3、 HardFault_Handler函数使用了beep,但愿程序没有初始化beep,增加beep初始化,并在第一个状态机中和LED同步动作。 4、重写了状态机章节,使用二维数组的方式,更加符合状态机的用法。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。