回馈开源----史上最强按键驱动

2019-12-09 20:01发布

大家可曾听说过经典的3行代码按键扫描算法?
这个按键扫描算法我一直有在用,但都是零零散散的代码,去年在做项目的时候,为了考虑通用性,对其进行了进一步封装。
该按键驱动使用事件机制上报按键状态,并解耦具体的按键硬件结构,理论上可以支持轻触按键和自锁按键,支持无限按键数量,一次扫描即可获取所有的按键状态。

- 支持单击、双击、长按
- 自动消抖
- 可灵活配置中断以及适配低功耗场景
- 支持按需组合按键
- 可扩展支持矩阵键盘
- C99 编写,支持裸机和任意 OS

源代码资源地址:https://github.com/murphyzhao/FlexibleButton

源代码中的按键扫描部分算法来自网络,仅有三行代码,非常精辟,值得学习,喜欢的朋友,不妨尝试用到自己的项目中,开源免费。算法来自网络,软件包也回馈网络,希望大家不再重复造轮子,以事半功倍。

还请各位大佬不吝指教,感谢
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
99条回答
趁还年轻
2019-12-21 00:58
小白想问一下 如果使用结构体了 就一定要配合链表实现扫描 但是一定要把链表的指针放在按键的结构体里吗? 要不要直接新建一个链表结构 指针可以是void*型 这样可以通用所有的类 比如按键啊 灯啊啥的 然后做一个新的链表 在创建对象时候 直接把这个结构体添加到对应类里面 这样链表结构也可以按照面向对象的写法写 方法就是添加一个链表或者删除一个链表 或者插入链表什么的 这样会不会通用性更强一点? 枚举变量确定数组大小 学习了 感谢

一周热门 更多>