2017-09-05 71 views
0

我不知道如何使IRQ处理程序,它可以在推动每个按钮时作出不同的反应。如何使用一个中断处理来自多个按钮的输入?

我想这样做,以这种方式:

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

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

回答

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(); 
    } 
} 
相关问题