FlexibleButton icon indicating copy to clipboard operation
FlexibleButton copied to clipboard

矩阵键盘怎么处理呢?

Open WSS201912 opened this issue 7 years ago • 3 comments

涛哥你好,我发现现有的按键库,都是针对一个按键一个pin的硬件处理方式,现在我遇到的情况是30多个按键,有矩阵方式的和用595并转串+spi读的还有用特定芯片用iic或spi去读的。这样就做不到每个按键独立一个按键读函数,他们共用一个读函数。拿矩阵键盘为例,底层扫描该怎么靠上FlexibleButton来!!谢谢了。

WSS201912 avatar Dec 19 '18 02:12 WSS201912

以 595 的方式来说吧

你的 595 芯片接口上,应该已经定义好了每个接口挂哪个按键检测。那么,你封装的 595 read 函数,应该是,一个循环里都去到所有的按键状态,然后你就可以把这些按键状态中的某一个对应到 FB 中的一个按键 read 函数上。

当然,还有一种方式:

直接修改 static void flex_button_read(void) 函数

    for(target = btn_head, i = 0;
        (target != NULL) && (target->usr_button_read != NULL);
        target = target->next, i ++)
    {
        keydata = keydata |
                  (target->pressed_logic_level == 1 ?
                  ((!(target->usr_button_read)()) << i) :
                  ((target->usr_button_read)() << i));
    }

希望可以帮到您

murphyzhao avatar Dec 19 '18 08:12 murphyzhao

https://blog.csdn.net/qq_37214666/article/details/119026318 之前遇到过这个问题,写了一点点东西。有需要可以看一下,写的可能不太好。

luzhichao1997606 avatar Jul 23 '21 02:07 luzhichao1997606

https://blog.csdn.net/qq_37214666/article/details/119026318 之前遇到过这个问题,写了一点点东西。有需要可以看一下,写的可能不太好。

感谢分享,写的非常好。

murphyzhao avatar Sep 13 '21 07:09 murphyzhao