STM32停机模式唤醒死机

wjd85   2012-7-13 13:31 楼主

近日在STM32停机模式下使用按键中断唤醒,多次重复按按键,会出现死机,经多次测试后,发现死机前可进入中断,中断后不能正确返回原来的位置,疑中断中出现其它未知指令,后实验发现在按键中先关闭按键中断,再清中断标志位就不会出现死机现象。

void EXTI15_10_IRQHandler(void)
{
 if(EXTI_GetITStatus(EXTI_Line11) != RESET)
 {
  EXTI->IMR &= ~(1<<11);     //禁能PA11中断,要放在清中断标志指令的前面,防止退出休眠时死机
  EXTI_ClearITPendingBit(EXTI_Line11);  //清中断标志
 }
 else if(EXTI_GetITStatus(EXTI_Line12) != RESET)
 {
  EXTI->IMR &= ~(1<<12);     //禁能PC12中断
  EXTI_ClearITPendingBit(EXTI_Line12);  //清中断标志
 }
 
}

回复评论 (1)

先顶一个,我的是在进入STOP模式后用中断唤醒时偶尔不能进入中断唤醒函数 用GPIO_SetBits(GPIOC,GPIO_Pin_15); 做一个标志都不能进入像是死在中断里了。  void EXTI9_5_IRQHandler(void)
{
  if(EXTI_GetITStatus(EXTI_Line5) != RESET)
  {
    /* Clear the EXTI line 5 pending bit */
    EXTI_ClearITPendingBit(EXTI_Line5);

  GPIO_SetBits(GPIOC,GPIO_Pin_15);     

    if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_5)==0)
    {      
      delay_ms(50);
      if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_5)==0)
      {     
        datacheck_int_flag=1;  
        waking_up=1;
      }
    }
  }
}  

点赞  2014-3-12 09:58
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复