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

2019-12-09 20:01发布

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

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

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

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

还请各位大佬不吝指教,感谢
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
99条回答
MurphyZhao
1楼-- · 2019-12-13 20:01
了无 发表于 2019-8-31 22:57
前排支持,我去看看咋样。过几天我也准备回报论坛,也开源一个论坛最强菜单架构。 ...

期待
MurphyZhao
2楼-- · 2019-12-13 23:58
wudicgi 发表于 2019-8-31 23:25
看起来很不错的样子

不过硬件按键是否应该叫 key?

因为 key 的译意太广泛了,在驱动里也多是 button driver,没见过 key driver
MurphyZhao
3楼-- · 2019-12-14 05:21
zyw19987 发表于 2019-9-1 05:17
还是希望莫大这有源码,不知道低功耗是怎么实现,特别是长按事件。

嗯,后面我镜像一份 源码包 过来

低功耗需要结合自己的低功耗特性,如果是 STM32 没有使用低功耗框架的话,可以接一路唤醒中断触发按键扫描启动
ykhuixuesen
4楼-- · 2019-12-14 06:43
 精彩回答 2  元偷偷看……
MurphyZhao
5楼-- · 2019-12-14 08:07
wye11083 发表于 2019-9-1 14:56
长按估计比较难了,因为通常情况下键盘命令有按下、弹起、按住(自动重复)。 ...

低功耗后,可以通过按键触发唤醒,这样本次的按键事件会丢掉(仅用于唤醒)
MurphyZhao
6楼-- · 2019-12-14 09:24
fsmcu 发表于 2019-9-1 09:55
谢谢分享,那3行一直视为经典语句,一直都在使用,不知道这个驱动有没有提供类似键盘的机打输出事件,就是 ...

当时考虑过 Windows 的按键处理机制,但是不确定其用途,没有加上,如果有需求的话,后面这里的按键事件可以用更好的方式实现

一周热门 更多>