扫码阅读
手机扫码阅读
面向对象与状态机结合的按键驱动模块
166 2024-08-31
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
查看原文:面向对象与状态机结合的按键驱动模块
文章来源:
一起学嵌入式
扫码关注公众号
摘要
本文介绍了一个开源的C语言按键驱动项目XxxSwitchScan_Driver,它是一个使用简单、灵活且解耦的驱动,适用于裸机与操作系统。该驱动使用面向对象思想和状态机编写,将按键及类似的传感器设备抽象为开关量输入设备,实现了多种响应事件。
特性
- 基于链表,动态管理设备
- 完成硬件隔离,适应不同输入条件
- 使用回调机制,业务逻辑分离
- 隔离内存管理,由调用者主导
- 支持裸机与操作系统下的tick
- 功能丰富,支持多种事件响应
- 支持设备的按下消抖与抬起消抖配置
- 支持特殊应用场景如设备间互斥或联系
改进点
由于功能支持多,代码量较大,计划推出精简版。
实际应用场景
已应用于多种场景,如独立按键、矩阵键盘、传感器、异步/事件驱动等。
资源获取
资源可从gitee仓库或公众号后台获取。
格式与文件介绍
项目使用UTF-8编码和doxygen注释格式。包含示例、许可证、说明文档及核心驱动代码文件。
注意事项
考虑连击事件、边沿模式限制、操作系统中的阻塞问题、tick的大小和消抖时长。
使用流程
包括硬件初始化、定义设备对象指针、提供状态读取与事件处理函数、内存分配、设备注册和调用扫描函数。支持多种使用方式,适用于RTOS和裸机环境。
代码说明
提供了详细的头文件和源文件说明,包括数据结构和裁剪配置项。
更新计划
计划上传更多组件和不同场景的例程。
想要了解更多内容?
查看原文:面向对象与状态机结合的按键驱动模块
文章来源:
一起学嵌入式
扫码关注公众号
【玩转开发板】一款X86架构的开发板youyeetoo开箱体验
上一篇
没有了
下一篇
一起学嵌入式的其他文章
加入社区微信群
与行业大咖零距离交流学习
软件研发质量管理体系建设
白皮书上线