2017-09-05 18 views
0

각 단추를 누를 때 다르게 반응 할 수있는 IRQ 처리기를 만드는 방법이 궁금합니다.하나의 인터럽트를 사용하여 여러 버튼의 입력을 처리하는 방법은 무엇입니까?

내가 이런 식으로 그렇게 생각하고있다 :

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

나는 하나 개의 인터럽트에 여러 버튼을 연결하는 방법을 모르는,이 내 최악의 문제 :(이다

답변

0

입니다 . 원칙은 내가 표준 주변에 너무 익숙하지 않은,하지만 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(); 
    } 
}