如何使用一个中断处理来自多个按钮的输入?
问题描述:
我不知道如何使IRQ处理程序,它可以在推动每个按钮时作出不同的反应。如何使用一个中断处理来自多个按钮的输入?
我想这样做,以这种方式:
void EXTI9_5_IRQHandler(){
if (EXTI_GetITStatus(EXTI_Line_5)){
doThis();
} else if (EXTI_GetITStatus(EXTI_Line_6)) {
doThat();
}
}
我不知道如何将多个按钮连接到一个中断,这是我最糟糕的问题:(
答
也就是说其原理我也不是太熟悉STD外设,但我想知道如果EXTI_GetFlagStatus
将在您的情况最好也不要忘记清除中断标志
您的代码应该是这样的:。
void EXTI9_5_IRQHandler(){
if (EXTI_GetITStatus(EXTI_Line_5)){
EXTI_ClearFlag(EXTI_Line_5);
doThis();
} else if (EXTI_GetITStatus(EXTI_Line_6)) {
EXTI_ClearFlag(EXTI_Line_6);
doThat();
}
}