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

2019-12-09 20:01发布

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

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

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

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

还请各位大佬不吝指教,感谢
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
99条回答
MurphyZhao
1楼-- · 2019-12-20 19:57
vtouch 发表于 2019-9-13 07:27
谢谢楼主分享,谢谢83楼打包

照顾下没有梯子的
MurphyZhao
2楼-- · 2019-12-20 20:27
贰梓 发表于 2019-9-12 17:18
谢谢分析,收藏学习了,正好最近要做按键的处理

有疑问或者好的点子,可以一起交流
趁还年轻
3楼-- · 2019-12-20 22:34
感谢大佬分享 强烈支持
趁还年轻
4楼-- · 2019-12-21 00:58
小白想问一下 如果使用结构体了 就一定要配合链表实现扫描 但是一定要把链表的指针放在按键的结构体里吗? 要不要直接新建一个链表结构 指针可以是void*型 这样可以通用所有的类 比如按键啊 灯啊啥的 然后做一个新的链表 在创建对象时候 直接把这个结构体添加到对应类里面 这样链表结构也可以按照面向对象的写法写 方法就是添加一个链表或者删除一个链表 或者插入链表什么的 这样会不会通用性更强一点? 枚举变量确定数组大小 学习了 感谢
gzhsh666
5楼-- · 2019-12-21 01:07
 精彩回答 2  元偷偷看……
oooios
6楼-- · 2019-12-21 06:04
谢谢分享 拿来看看

一周热门 更多>