大家在进行MCU项目开发时是否碰到过EXTI外部中断在错误的边沿误触发的情况?比如EXTI配置的为下降沿触发,实际情况在个别上升沿的时候也被误触发了。
这个异常现象编者之前碰到过一次,期望上升沿触发EXTI中断,却概率性的出现下降沿也被误触发了中断,经过排查发现,发生异常情况下的下降沿比较缓,且下降过程中有波动,类似下图情况,该毛刺被MCU捕获到,误识别为一个上升沿进而误触发了EXTI中断。
GD32 MCU的输入高电平识别为高于0.7VDD,低电平识别为低于0.3VDD,在中间电平波动更容易被误触发中断。
解决方法上,可以有以下选择:1、硬件方式解决:增加滤波电容,滤除错误边沿的毛刺;调整边沿斜率,让引脚电平更快跳变,减少在中间电平阶段的时间;2、软件方式解决:增加软件滤波,进入中断后延迟进行读取引脚电平状态,如果为错误的电平状态,即可认为一个异常的毛刺干扰,丢弃当次状态处理。
以上即为本期讲解,如有问题或建议,欢迎评论区讨论。
发表评论 取消回复