关键词:LED灯状态控制、事件触发、状态转换、占空比、面向数据结构编程

在嵌入式设备上,常常设计有LED指示,用来指示设备的运行状态,如常见的红灯、绿灯、蓝灯,可以用来分别指示电源状态,网络连接状态,通信状态,故障状态等。LED灯物理状态通常只有亮和灭,硬件上使用一个GPIO脚进行拉高、拉低来驱动LED实现亮和灭,是嵌入式开发中最最简单的功能。 但是对于业务层逻辑来说,要在一个LED上实现多种逻辑状态并没有那么简单,还是要花费点功夫做些数据结构和逻辑上的设计,以及要考虑到设备休眠时LED需要熄灭的控制。
一、一灯多状态
比如有个这样的功能需求:设备上有一个绿灯LED,需要实现如下状态:
1.网络未连接时:5秒周期,10%占空比(亮500ms)闪烁
2.网络连接时 :3秒周期,10%占空比(亮300ms)闪烁
3.OTA升级中 :1秒周期,50%占空比(亮500ms)闪烁
4. 串口通信中 :0.5秒周期,50%占空比(亮250ms)闪烁
驱动接口已经实现:<
订阅专栏 解锁全文
12万+

被折叠的 条评论
为什么被折叠?



