1、从理想情况出发
理想的按键驱动效果是:
- 支持单击、双击、三击,甚至四击(实际上四击按出来很不爽)
- 支持长按区分秒数
2、从百度出发
首先吐槽一点,乐鑫官方ADF的按键驱动有点简陋,虽说内存占用跟IDF差不多,5k左右。但并未发现支持多击的接口,翻 sdk也没有收获。service玩法
果断百度发现两个支持功能比较全的驱动:
- 红旭按键驱动
- esp_iot_solution按键驱动
试用之后吐槽下优缺点,红旭按键驱动需要稳定的低电平,即按键按下电压不要太高,1.6V以下足够了。倘若电压不够稳还跳变,纵然红旭的消抖处理已经很妙了也无济于事。
至于esp_iot_solution提供的按键驱动,初看时感觉平平,直接用文档示例完成长按切分秒数,体验很流畅很爽。遗憾就是没有看到支持多击的接口。
3、从思绪反刍出发
直到深夜反思,索性起身翻看文档,发觉esp_iot_solution文档列出了8个左右按键事件,联想到Linux、Windows操作系统原理甚至Qt的事件驱动,果断根据事件关键词查询多击接口。
奥利给,GET到了!!!