2017-09-05 7 views
0

IRQハンドラの作り方は、各ボタンを押したときの反応が違うことがあります。1つの割り込みを使用して複数のボタンからの入力を処理する方法は?

私はこの方法でそれを行うに思っている:

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

私は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(); 
    } 
} 
関連する問題