0

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

我正在考虑以这种方式做到这一点:

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

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

4

1 回答 1

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();
    }
}
于 2017-09-05T08:24:35.667 回答