单片机嵌入式按键库

kw_btn库说明

本库主要满足嵌入式按键需求,集成了常用的按键响应事件:高电平、低电平、上升沿、下降沿、单击、双击、长按键事件。可以裸机运行,也可以配合实时操作系统运行。

本库开源连接地址:gitee连接

实现思路

本库采用C语言进行编程,方便移植,用户只需要调用2各函数即可使用。

  1. 初始化:
    初始化需要实现按键触发响应回调和按键是否按下回调。
  2. 周期循环:
    周期循环仅需要实现周期调用即可。

调用示例

  1. 裸机程序:

    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
        }
    }
  2. 操作系统程序:

    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
        }
    }
相关推荐
busideyang31 分钟前
为什么推挽输出不能接收串口数据,而准双向口可以?
c语言·stm32·单片机·嵌入式硬件·嵌入式
济6171 小时前
STM32定时器进阶:从模式控制器完全指南,一文学会TRGI/TRGO---STM32 HAL库专栏
stm32·单片机·嵌入式·stm32hal库编程
鲨辣椒100861 小时前
单片机在线演绎《当幸福来敲门》------ 中断机制
单片机·嵌入式硬件
小白学电子_4 小时前
proteus仿真51单片机通过定时器控制红绿灯
嵌入式硬件·51单片机·proteus
鲨辣椒100865 小时前
51单片机初相识
单片机·嵌入式硬件·51单片机
独处东汉5 小时前
freertos开发空气检测仪之完结_Air_check_App 工程概览与使用说明
stm32·单片机·嵌入式硬件·freertos
爱喝纯牛奶的柠檬8 小时前
基于STM32的4*4矩阵软键盘驱动
stm32·嵌入式硬件·矩阵
电子工程师成长日记-C518 小时前
51单片机低频信号发生器
单片机·嵌入式硬件·51单片机
望酹江月8 小时前
HNU-RFID与传感器原理实验
c语言·单片机
GodKK老神灭8 小时前
FOC中PLL的点乘法
单片机