STM32上升和下降按键中断检测

STM32上升和下降按键中断检测

问题描述:

我有按钮中断: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

是的,这是可能的。您必须将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); 
    } 

} 

注意:上面的行为正确与连接到按钮的下拉。随着上涨,上涨和下跌将被倒置。