STM32F103中按下释放按钮时EXTI线得到odd/even中断计数

EXTI line got odd/even interrupts count when push-release button in STM32F103

我遇到了问题。

我用的是STM32F103。一条 EXTI 线用于检查按钮的按下和释放。 EXTI 线设置为由下降沿和上升沿触发。

我知道推底会有毛刺。问题是,当我按下然后释放按钮时,中断计数有时是奇数,有时是偶数。据我了解,它应该是偶数,因为无论如何,您将 return 到您的原始信号值(可以说是高)。例如,如果您在推式释放中有 2 个毛刺,则应该有 4 次中断(HIGH(原点)->LOW->HIGH->LOW->HIGH)。我不明白为什么。

感谢您的帮助!

处理中断需要时间。因此,如果输入引脚上的下一次转换发生在中断标志被清除之前,则不会触发额外的中断。事件(转换)丢失。

如果在中断处理程序中尽早清除中断标志,您可以略微改善这种情况。但如果转换可以快速连续发生,它并不能完全解决问题。只需一个按钮,他们就可以做到。所以你必须相应地调整你的代码。