如何使用一个中断处理来自多个按钮的输入?
How to handle input from multiple buttons using one interrupt?
我想知道如何制作 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();
}
}
我想知道如何制作 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();
}
}