单片机嵌入式按键库

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
        }
    }
相关推荐
长江后浪博客9 小时前
ESP32-SOLO-1 在 ESP-IDF v5.5 下启动不断重启问题分析与解决
单片机·嵌入式硬件·嵌入式·esp32·freertos·esp-idf
单片机仿真设计10 小时前
【proteus仿真】基于 STM32 单片机智能仓库设计(仿真图+程序)
stm32·单片机·嵌入式硬件·proteus·毕设
星游路10 小时前
单片机·电子时钟
单片机·嵌入式硬件
AOI小白新手上路14 小时前
江科协51单片机 7-2 LCD1602显示时钟实验
单片机·嵌入式硬件·51单片机
思麟呀14 小时前
嵌入式入门(一)宏观生态到首次烧录
c语言·嵌入式硬件
runningshark14 小时前
SC32L14GR8PJR
单片机·嵌入式硬件
智购科技无人售货机厂家15 小时前
2026自动售货机备用电池管理系统设计:从充放电保护到健康监测的工程实践~YH
大数据·linux·单片机·嵌入式硬件·微信
智购无人售货机厂家15 小时前
2026自动售货机软硬件版本管理策略:从版本号规范到兼容性矩阵的工程实践~YH
运维·服务器·人工智能·单片机·嵌入式硬件·线性代数·矩阵
花 满 楼15 小时前
RISC-V APLIC 中断模块总结——第二篇
单片机·嵌入式硬件·mcu·risc-v
无损检测小白白16 小时前
【嵌入式面试题一】
c语言·单片机