驱动库分享整理(1)——用于单片机中的小巧多功能按键支持库

按键在嵌入式开发中,是比较重要的,也是常见的外设,因此,很有必要学习,也要掌握编写基础的按键驱动,通常最基本的情况下,都是使用状态机的框架来出来,因为尽管硬件电路上有滤波电路,但还是要软件滤波的。(软件滤波很多采集系统中都是用到的)。
在学习过程中,可以自己尝试编写简单的单机,组合按键单机等,锻炼思维。当然网上有很多的按键驱动库,值得收藏,其中思想是比较好的,可以学习其思路,同事也可以在了解功能后,移植到自己的项目中。

我这里就自己网上看到的,公众号分享的一些文章,特意整理一下,算是一个收集,以后用到了可以直接参考。

1==、
MultiButton:是一个小巧简单易用的事件驱动型按键驱动模块,可无限量扩展按键,按键事件的回调异步处理方式可以简化你的程序结构,去除冗余的按键处理硬编码,让你的按键业务逻辑更清晰

https://github.com/0x1abin/MultiButton  官网
https://zhuanlan.zhihu.com/p/128961191 比较详细的移植文档

2==、 FlexibleButton:是一个基于标准C语言的小巧灵活的按键处理库,支持单击、连击、短按、长按、自动消抖,可以自由设置组合按键,可用于中断和低功耗场景。

该按键库解耦了具体的按键硬件结构,理论上支持轻触按键与自锁按键,并可以无限扩展按键数量。另外,FlexibleButton使用扫描的方式一次性读取所有所有的按键状态,然后通过事件回调机制上报按键事件。核心的按键扫描代码仅有三行,没错,就是经典的 三行按键扫描算法。使用C语言标准库API编写,也使得该按键库可以无缝兼容任意的处理器平台,并且支持任意 OS 和 non-OS(裸机编程)。

https://gitee.com/RT-Thread-Mirror/FlexibleButton  官网

https://mp.weixin.qq.com/s?src=11&timestamp=1613181394&ver=2887&signature=WN8P7Q1GwWKEI22eOcETmIQqrarmkOT*cBYof1sb3jgsketPgtUrdd8f36e6762DQIYqjTpzrW0crZr-2C7irEYa1GPbbt10-DY3QDbCjAwXGyKIDvMubpKZoxdslH8V&new=1 微信公众号有分享文章

3==、key_board - 用于单片机中的小巧多功能按键支持库(来自痞子衡的半月刊)
key_board 是网友 wei513723 维护的用于单片机中的小巧多功能按键支持库。

项目主页: https://gitee.com/wei513723/key_board

软件采用了分层的思想,并且做到了与平台无关,用户只需要提供按键的基本信息和读写io电平的函数即可,非常方便移植,同时支持多个矩阵键盘及多个单io控制键盘,目前已实现按下触发、弹起触发、长按自动触发、长按弹起触发、多击触发、连续触发等功能,并且能够随意组合(支持状态的同一时间轴和非同一时间轴),后续还会添加更多的功能。

4==、论坛里分享的驱动库
分享一个不错的【程序框架】+【按键状态机】+【LED状态机】程序:
http://www.openedv.com/thread-295380-1-1.html
本帖隐藏的内容

用了几年的前后台程序框架,稳定可靠,保证每次执行的任务都为最高优先级任务,楼下会对该程序框架做一些说明。
按键状态机:支持短按,长按,双击处理,程序简洁,简单易

  • 9
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值