MultiButton 是一个小巧简单易用的事件驱动型按键驱动模块,可无限量扩展按键,按键事件的回调异步处理方式可以简化你的程序结构,去除冗余的按键处理硬编码,让你的按键业务逻辑更清晰。 移植过程如下 1 先申请按键结构 2 初始化按键IO 3 初始化按键对象,绑定按键的GPIO电平读取接口read_button_GPIO () ,后一个参数设置有效触发电平 4 注册按键事件 5 启动按键 6 设置一个5ms间隔循环调用后台处理函数button_ticks(),这里可以用定时器做时间基准方式,也可以查询延时的方式,我这里用查询方式展示,后续会改为定时器方式 注意事项 1 在初始化按键对象函数button_init(&btn1,read_button_GPIO, 0, btn1_id)时,需要调用IO读取函数,需要根据实际应用自己实现。 2 按键事件 按键事件处理函数(字符串打印函数,自行实现) 实现效果 实际使用时,还要去看下multi_button.h里的两个宏定义,TICKS_INTERVAL默认是5即5mS,这个与它实例间隔5mS是对应的。DEBOUNCE_TICKS默认是3最大是8,用于按键消抖。长按和短按的时间靠LONG_TICKS和SHORT_TICKS设置或者说优化 附件内有实例源码,在main函数内添加如下函数即可
|