这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » 【墨水屏电子书】过程贴-按键采集

共3条 1/1 1 跳转至

【墨水屏电子书】过程贴-按键采集

高工
2024-08-06 17:47:00     打赏

        本部分主要实现是按键控制LED,开发板上只有一个复位键显示是不能用的,结合着墨水屏模块才能实现,墨水屏模块上有三个用户按键可以使用,咱们根据编码定义为A、B、C,通过检测者三个按键的输出,编程实现按键控制LED灯的亮灭(按下一次LED亮,再按一次LED灭) 。

        我们看一下墨水屏模块的硬件原理部分:

image.png

        按键按下的事后对应的引脚为低电平,SWA对应GP12,SWB对应GP13,SWC对应GP14.

        有一点比较好的就是不管是开发板板还是模块对于引脚都明显标注出来了,这样我们就可以快速进行配对了,我们创建按键对应的宏定义:

#define INKY_KEYA_PIN 12
#define INKY_KEYB_PIN 13
#define INKY_KEYC_PIN 14

        按键采集程序增加了延时防抖以及抬起等待,避免循环判断:

char get_key(char key_pin){
    if(gpio_get(key_pin) == 0){
        MY_DEV_Delay_ms(10);
        if(gpio_get(key_pin) == 0){
            while(gpio_get(key_pin) == 0);
            return 1;
        }
        else
            return 0; 
    
    }
    else{
        return 0; 
    } 
}

        主程序中但凡检测到按键动作(ABC均可)就翻转LED:

if(get_key(INKY_KEYA_PIN) == 1 || get_key(INKY_KEYB_PIN) == 1 || get_key(INKY_KEYC_PIN) == 1) 
    LED_Toggle();
        效果如下:

image.png



专家
2024-08-06 19:13:46     打赏
2楼

感谢分享


专家
2024-08-06 19:42:00     打赏
3楼

感谢分享


共3条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]