kw_btn库说明
本库主要满足嵌入式按键需求,集成了常用的按键响应事件:高电平、低电平、上升沿、下降沿、单击、双击、长按键事件。可以裸机运行,也可以配合实时操作系统运行。
本库开源连接地址:gitee连接
实现思路
本库采用C语言进行编程,方便移植,用户只需要调用2各函数即可使用。
- 初始化:
初始化需要实现按键触发响应回调和按键是否按下回调。 - 周期循环:
周期循环仅需要实现周期调用即可。
调用示例
-
裸机程序:
C#include "kw_baseDrvCFG.h" static void triggerCB(Btn_Trigger_e t, Btn_Type_e btn) { printf("btn value: %d, trigger value: %d.\r\n", t, btn); } static bool isPushCB(Btn_Type_e btn) { if (btn == BTN_1) { return true; } return false; } void main() { kw_btnInit(triggerCB, isPushCB); while (1) { kw_btnRun(10); delay(10); // 延时10ms } }
-
操作系统程序:
C#include <os.h> #include "kw_baseDrvCFG.h" static void triggerCB(Btn_Trigger_e t, Btn_Type_e btn) { printf("btn value: %d, trigger value: %d.\r\n", t, btn); } static bool isPushCB(Btn_Type_e btn) { if (btn == BTN_1) { return true; } return false; } void btn_threads(void* para) { kw_btnInit(triggerCB, isPushCB); while (1) { kw_btnRun(10); os_delay(10); // 延时10ms } }