2017-09-05 100 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(); 
    } 
} 
相關問題