首先,我相信STM32的外部中断,一定不会出现有时候行,有时候不行。
1、检查一下你的硬件,使用示波器查看,确定外部中断触发条件正常。
2、检查程序,确定你的中断程序是运行了的,而不是程序运行了你认为没有运行。
3、中断触发后,你的总中断确定打开了,同时,没有其他的程序把外部中断的触发标志给清除了。
这个的就从硬件和软件两个方面考虑了
检查硬件电路是否虚焊,虚断,
软件方面 是否有更高级的中断触发,程序优化的是否合理
硬件方面:触发电平是否可靠,用示波器量一下,看下是否上升下降边沿足够,电平变化的时间是多长。
软件方面:是否存在其他中断打断外部中断的运行,程序是否会在某些时刻关闭中断,可以先调外部中断模块这个功能,待功能验证正常后再接入到总的软件框架中去。
要看电路上,这个引脚是不是有干扰
有没有做好保护呢