FlexibleButton
FlexibleButton copied to clipboard
矩阵键盘怎么处理呢?
涛哥你好,我发现现有的按键库,都是针对一个按键一个pin的硬件处理方式,现在我遇到的情况是30多个按键,有矩阵方式的和用595并转串+spi读的还有用特定芯片用iic或spi去读的。这样就做不到每个按键独立一个按键读函数,他们共用一个读函数。拿矩阵键盘为例,底层扫描该怎么靠上FlexibleButton来!!谢谢了。
以 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));
}
希望可以帮到您
https://blog.csdn.net/qq_37214666/article/details/119026318 之前遇到过这个问题,写了一点点东西。有需要可以看一下,写的可能不太好。
https://blog.csdn.net/qq_37214666/article/details/119026318 之前遇到过这个问题,写了一点点东西。有需要可以看一下,写的可能不太好。
感谢分享,写的非常好。