嵌入式组件-----按键模块
1、模块简介
按键检测模块用于嵌入式系统上实现按键的扫描,实现按键的触发检测,并对短按、长按等状态进行识别检测。
2、需求分析
按键检测需要可以识别多个按键的多种事件触发,并且需要对事件做出响应处理。
功能性需求
- 可以实现多个按键检测
- 实现按键扫描事件检测和事件回调触发
非功能性需求
- 方便移植
- 方便添加按键
- 代码实现简洁易读
本文实现的按键模块主要有以下事件:
- 按下事件
- 释放事件
- 短按事件
- 双击事件
- 长按X秒事件
- 长按保持事件(比如调整音量,连续按音量加减可以持续加减)
组合按键的事件可以在应用层由单一按键事件扩展而来
3、运行流程
A picture is worth a thousand words
按键模块的状态机如下所示
4、编码实现
为了解耦方便移植,使用面向对象的编码风格
等等,我需要把代码精简一下再放上来
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。