用STM32做矩阵键盘、自己理解的外部中断方式的几个问题。

2025-03-20 04:07:01
推荐回答(3个)
回答1:

EXTI是边沿触发的。
当你按下键时,肯定会出现抖动,那抖动一次就是一个边沿,自然会一次次的触发中断了。我以前也试验过,很不好使。
用systick扫描是一个办法,我用这个实现了线反转法扫描4X4的键盘矩阵。设置10ms中断一次,每次进中断首先检查有没有按键,如果没有就pass,如果有就先计个数再退出,重复三次操作确定都有按键(也就完成了消抖),然后翻转线路状态扫描一次确定行列位置,这样就确定键值了。

回答2:

我觉得扫描方式比中断好。对每个键,定义一个字节用来消抖,每扫描一次就把键的0或1移位至这个字节,判断这个字节如果是0xff那么这个键被按下,如果0x00那么这个键未被按下,其它值不做操作,这种方法很简单,消抖效果也不错。

回答3:

中断相应的及时性 是直接在中断程序进行处理