单片机嵌入式按键库

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
        }
    }
相关推荐
LCG元3 小时前
STM32项目实战:基于STM32F103的智能农业监控系统
stm32·单片机·嵌入式硬件
ACP广源盛139246256733 小时前
IX8024与科学大模型的碰撞@ACP#筑牢科研 AI 算力高速枢纽分享
运维·服务器·网络·数据库·人工智能·嵌入式硬件·电脑
一起搞IT吧4 小时前
Android性能系列专题理论之十:systrace/perfetto相关指标知识点细节含义总结
android·嵌入式硬件·智能手机·性能优化
Truffle7电子5 小时前
STM32CubeIDE/Programmer/Touch GFX 应用
stm32·单片机·嵌入式硬件
constant_LDX6 小时前
步进电机开发(一、硬件设计)
单片机·嵌入式硬件
北山有鸟6 小时前
修改源码法和插件法
嵌入式硬件·学习
richxu202510016 小时前
嵌入式学习之路->stm32篇->(14)通用定时器(上)
stm32·单片机·嵌入式硬件·学习
Deitymoon6 小时前
STM32——串口通信(USART)
单片机·嵌入式硬件
iCxhust6 小时前
微机原理实践教程(C语言篇)---A002流水灯
c语言·开发语言·单片机·嵌入式硬件·51单片机·课程设计·微机原理
Deitymoon8 小时前
STM32——外部中断按键控制led
stm32·单片机·嵌入式硬件