在我做开发的时候有时候发现按键不够用,就想到单击、连击的按键。后来我查阅文档发现一个按键的驱动程序。通过定时器扫描以及参数的设定来识别不同的按键状态。
整个工程将按键作为一个链表作为管理,并且表示按键状态的结构体使用了位域大大节省了存储空间。在初始化时需要自己先定义好按键状态的回调函数,在程序中当触发条件时调用回调函数。
通过这一按键驱动我实现了一个按键控制三个LED的状态并且长按一秒可以关闭所用灯光。最开始使用的时候我担心这个驱动没有消抖的步骤,不过通过对代码的分析在它的宏定义中找到了一段如下的代码,完美的解决了这一问题。