每个机械触点都会产生脉冲 - 在开关打开和关闭期间反弹。您需要为此创建一个去抖动过滤器。
我的建议是让你完全避免读取按钮状态的中断。
通过SW去抖按钮的最佳方法是采样时间长于按钮产生反弹脉冲(通常约为1-10ms)。
您可以通过每10ms读取按钮的实际状态并将其与之前的状态进行比较来完成。然后你将完全去抖按钮。
我在许多项目中都使用这种方法,我不需要硬件过滤器,例如在任何PC键盘中都使用相同的原理,其中硬件过滤器无法添加,因为所有按钮都是多路复用的,但这对于铁饼更好上 https://electronics.stackexchange.com