单片机嵌入式按键库

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
        }
    }
相关推荐
✎ ﹏梦醒͜ღ҉繁华落℘1 天前
单片机基础知识---stm32单片机的优先级
stm32·单片机·mongodb
u152109648491 天前
S.S.Audio PRO A2音频隔离器
嵌入式硬件·音视频·实时音视频·视频编解码·视频
zd8451015001 天前
RS485 总线详解
单片机·嵌入式硬件
半条-咸鱼1 天前
【STM32】I2C协议原理、HAL读写与OLED显示操作
嵌入式硬件·c·信息与通信
wohoo_wangzi1 天前
苏州晟雅泰电子:关于W25Q128JVSIQ这个芯片物料的参数,规格及应用领域
嵌入式硬件
✎ ﹏梦醒͜ღ҉繁华落℘1 天前
编程基础 --高内聚,低耦合
c语言·单片机
科芯创展1 天前
1A,1MHz,30VIN,XZ4115,降压恒流LED驱动芯片
单片机·嵌入式硬件
集芯微电科技有限公司1 天前
四通道2A输出集成功率电感降压模块专为紧凑型方案设计
人工智能·单片机·嵌入式硬件·生成对抗网络·计算机外设
踏着七彩祥云的小丑1 天前
嵌入式测试学习第 37 天:异常场景测试:断电、拔插、干扰、非法指令
单片机·嵌入式硬件·学习
望眼欲穿的程序猿1 天前
读取芯片内部温度传感器
嵌入式硬件·rust