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

[复制链接]
查看11 | 回复2 | 2016-5-13 13:39:11 | 显示全部楼层 |阅读模式
EXTI是边沿触发的。当你按下键时,肯定会出现抖动,那抖动一次就是一个边沿,自然会一次次的触发中断了。我以前也试验过,很不好使。用systick扫描是一个办法,我用这个实现了线反转法扫描4X4的键盘矩阵。设置10ms中断一次,每次进中断首先检查有没有按键,如果没有就pass,如果有就先计个数再退出,重复三次操作确定都有按键(也就完成了消抖),然后翻转线路状态扫描一次确定行列位置,这样就确定键值了。...
回复

使用道具 举报

千问 | 2016-5-13 13:39:11 | 显示全部楼层
我觉得扫描方式比中断好。对每个键,定义一个字节用来消抖,每扫描一次就把键的0或1移位至这个字节,判断这个字节如果是0xff那么这个键被按下,如果0x00那么这个键未被按下,其它值不做操作,这种方法很简单,消抖效果也不错。...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行