188610329 发表于 2022-3-13 15:04 长见识了!! |
lkc8210 发表于 2022-3-9 23:56 大哥牛逼 |
在任何一个实际项目中, 按键应该都是最后考虑的东西, 因为实现方法太多了,应该根据实际有的资源,最后决定按键方案,你其他东西都设计好了, 还剩 12个以上IO 就什么都不要想,直接通通独立按键。 如果 还剩 4~6个IO 就用 板凳的方法, 如果 还剩 1个IO 并且,可以ADC 那么就用10楼的方法。 如果 没有剩余IO, 但是有用 TM1650 之类的 LED 驱动芯片,那么直接用 TM16系列LED芯片自带的 按键识别功能,就可以了。 包括IO复用方案,单IO无DAC,电容充放电方案,等等等等,方法很多很多,单纯的讨论按键实现方法,不考虑应用场景,来确定哪个方案好,没有太大的实际意义。 |
矩阵键盘四乘三 |
用上个ADC口扫描,可以串到你不想要 |
Y8FPWR9A24@CJB@)Y%`USLP.png (50.17 KB, 下载次数: 58)
矩阵键盘四乘三,这样不对 |
串电阻用ADC识别,8个键用两个IO口就能实现。 |
wulin 发表于 2022-3-8 21:13 确切的说是3*(3+gnd),只要6个IO |
如果按你图上画的3个一组,必须是4组的话,就可以用4个ADC口线引脚;每一组接一个STM32的ADC口线,每个按键上加上不同的电阻,根据采样电压不同,区分不同的按键;理论上一个ADC口线就可以接多个按键(理论上1个ADC口线就可以做出12个按键;当然要看看AD采样的精度和键与键之间的电压余量,尽可能的键与键之间余量多些,这样就不至于把键采集错误); |
矩阵扫描键盘 3*4 但不是你这样的接法 |
lkc8210 发表于 2022-3-9 23:56 当年数理逻辑肯定学的好。 |
不加二极管只需6个IO![]() 加二极管只需4个IO,但要消耗12颗二极管,不合算 原理是每次单片机只拉低一根脚 然后测量其它脚有没有被拉低 |
12个按键3*4矩阵需要7个IO口 |