2014-09-19 63 views
0

我有按鈕中斷:STM32上升和下降按鍵中斷檢測

void EXTI0_IRQHandler(void) 
    { 
     if (EXTI_GetITStatus(EXTI_Line0) != RESET){ 

      if (/* BUTTON IS RELEASED */) { 
       /* do something */   
      } 
      if (/* BUTTON IS PRESSED */) { 
       /* do something else */ 
      } 
     EXTI_ClearITPendingBit(EXTI_Line0); 
     } 

    } 

是否有可能來檢查呢?

+2

你是什麼意思「檢查這個」?此外,您應該遵循STM32 GPIO/EXTI示例尋求幫助,並填寫您使用的確切代碼。如果可以的話,請同時指定您的平臺(處理器,評估板,您放置/焊接的任何連接/連接等)。 – bunkerdive 2014-09-19 20:31:37

回答

2

是的,這是可能的。您必須將EXTI觸發方法設置爲EXTI_Trigger_Rising_Falling。所以STM32在上升和下降沿時輸入ISR。在ISR中,您可以控制GPIO引腳。如果GPIOPın置1,則必須是上升沿,否則它必須處於下降沿。

void EXTI0_IRQHandler(void) 
{ 
    if (EXTI_GetITStatus(EXTI_Line0) != RESET){ 

     if (PIN==1) {//Rising so pressed 
      /* do something */   
     } 
     if (PIN==0) {Falling so released 
      /* do something else */ 
     } 
    EXTI_ClearITPendingBit(EXTI_Line0); 
    } 

} 

注意:上面的行爲正確與連接到按鈕的下拉。隨着上漲,上漲和下跌將被倒置。