如下图, 当KEY_1、KEY_2、KEY_3三个按键一起按下时,会误触发KEY_4。
P1_0和P1_1为按键的行,默认为低电平,P0_0和P0_1为按键的列,默认为高电平。某个按键按下时,列(P0_0或P0_1)被下拉,产生一个中断,系统会初始化行(P1_0和P1_1),并输出特定长度脉冲信号,系统通过读列来判断具体按下的按键。
KEY_1被按下时,P0_0被P1_0拉低为0;KEY_2被按下时,P0_1被P1_0拉低为0;KEY_3被按下时,P0_0被P1_1拉低为0;故当KEY_1/KEY_2/KEY_3同时按下时,P0_1等同于被P1_1拉低到0,见下图虚线箭头所示,KEY_4也就会被误识别为按下状态。
解决方法:
在每个按键的输入输出之间,加一个肖特基,隔离上图中的导通路径,使KEY_4不会被误触发。
