在 stm32f4 发现上去抖动
Debouncing on stm32f4 discovery
void EXTI3_IRQHandler(void){
//Clear the EXTI pending bits
NVIC_ClearPendingIRQ(EXTI3_IRQn);
EXTI->PR|=(1<<3);
count++;
}
这是我的中断例程。如果按下按钮,则会发生中断,然后计数会增加。我不知道我如何解决弹跳按钮问题。请帮助我!
这通常涉及在一小段延迟后读取输入。
在您的中断处理程序中,清除挂起位并将标志设置为真。
在您的主循环中,检查标志是否为真。如果是,请添加延迟(例如 20 毫秒),读取您的输入并清除标志。
如果您的应用程序不能接受延迟,请对计时器执行相同的操作。
void EXTI3_IRQHandler(void){
//Clear the EXTI pending bits
NVIC_ClearPendingIRQ(EXTI3_IRQn);
EXTI->PR|=(1<<3);
count++;
}
这是我的中断例程。如果按下按钮,则会发生中断,然后计数会增加。我不知道我如何解决弹跳按钮问题。请帮助我!
这通常涉及在一小段延迟后读取输入。
在您的中断处理程序中,清除挂起位并将标志设置为真。
在您的主循环中,检查标志是否为真。如果是,请添加延迟(例如 20 毫秒),读取您的输入并清除标志。
如果您的应用程序不能接受延迟,请对计时器执行相同的操作。