如何使用一个中断处理来自多个按钮的输入?

时间:2017-09-05 07:02:30

标签: interrupt-handling stm32f4 coocox

我想知道如何制作IRQ处理程序,它可以在按下每个按钮时做出不同的反应。

我想以这种方式做到这一点:

void EXTI9_5_IRQHandler(){
    if (EXTI_GetITStatus(EXTI_Line_5)){
        doThis();
    } else if (EXTI_GetITStatus(EXTI_Line_6)) {
        doThat();
    }
}

我不知道如何将多个按钮连接到一个中断,这是我最糟糕的问题:(

1 个答案:

答案 0 :(得分:0)

这就是原则。我对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();
    }
}