单片机嵌入式按键库

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
        }
    }
相关推荐
悠哉悠哉愿意5 天前
【单片机学习笔记】串口、超声波、NE555的同时使用
笔记·单片机·学习
Lester_11015 天前
STM32霍尔传感器输入口设置为复用功能输入口时,还能用GPIO函数直接读取IO的状态吗
stm32·单片机·嵌入式硬件·电机控制
LCG元5 天前
低功耗显示方案:STM32L0驱动OLED,动态波形绘制与优化
stm32·嵌入式硬件·信息可视化
三佛科技-187366133975 天前
120W小体积碳化硅电源方案(LP8841SC极简方案12V10A/24V5A输出)
单片机·嵌入式硬件
z20348315205 天前
STM32F103系列单片机定时器介绍(二)
stm32·单片机·嵌入式硬件
Alaso_shuang5 天前
STM32 核心输入、输出模式
stm32·单片机·嵌入式硬件
脚后跟5 天前
AI助力嵌入式物联网项目全栈开发
嵌入式硬件·物联网·ai编程
2501_918126915 天前
stm32死锁是怎么实现的
stm32·单片机·嵌入式硬件·学习·个人开发
z20348315205 天前
STM32F103系列单片机定时器介绍(一)
stm32·单片机
星马梦缘5 天前
驱动层开发——蜂鸣器驱动
stm32·单片机·嵌入式硬件·hal·驱动