STM32
直播中

北上北京

8年用户 831经验值
擅长:嵌入式技术
私信 关注
[问答]

STM32矩阵按键造成IO口的损坏的原因?

看了网上的4*4矩阵按键,不带外部中断,可实现多个按键同时按下。发现行线都配置成GPIO_Mode_Out_PP推挽输出,我认为当同一个列线上有两个按键同时按下时就会出现问题。
因为矩阵按键必然存在行线有高电平也有低电平的情况,而接在一个行线上的两个按键按下,就使得推挽输出高电平和低电平的IO口通过按键短路,造成IO口的损坏。
所以行线配置成GPIO_Mode_Out_OD开漏输出,然后在列线上加上拉电阻来做矩阵按键更为合理。

回帖(1)

郭大

2024-5-17 17:58:10
您的观点是正确的。在STM32矩阵按键设计中,确实存在由于行线配置不当导致的IO口损坏风险。以下是详细的解释:

1. 当行线配置为GPIO_Mode_Out_PP(推挽输出)时,每个行线都有一个固定的电平(高电平或低电平)。当两个按键同时按下时,它们的行线电平会相互冲突,可能导致短路,从而损坏IO口。

2. 为了避免这种情况,可以将行线配置为GPIO_Mode_Out_OD(开漏输出)。开漏输出允许行线在没有内部驱动时呈现高阻态,这样可以减少短路的风险。

3. 在列线上加上拉电阻是一个好主意。上拉电阻可以确保在没有按键按下时,列线保持高电平。当按下一个按键时,行线和列线之间的连接会导致列线电平降低,从而可以检测到按键的按下。

4. 使用开漏输出和上拉电阻的矩阵按键设计可以提高系统的稳定性和可靠性,降低IO口损坏的风险。

5. 另外,还可以考虑使用外部中断来检测按键按下事件,这样可以进一步提高系统的响应速度和准确性。

总之,将行线配置为GPIO_Mode_Out_OD(开漏输出)并在列线上加上拉电阻是实现矩阵按键的一种更为合理的方法,可以有效降低IO口损坏的风险。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分