STM32F745进入Standby模式 两个唤醒事件问题

2019-07-20 10:46发布

项目本意是要设置了两个唤醒源 PA0和PA2 WUKP 事件  进入standby模式后   其中一个唤醒事件(比如PA0上有脉冲)产生会使两个打开的唤醒源 都有唤醒标志位(理论是只有一个有)  因此我做了如下测试,打开一个唤醒关闭一个唤醒 。
按照下面的代码:我在PA0上面输入脉冲也能唤醒CPU,唤醒后通过查看PWR->CSR2的值,发现标志信号置在PA2上面(CPU告诉我是PA2唤醒的,实际上PA都被禁止唤醒了)

新手上路请求各位大咖帮帮忙

void StartCommTask3(void const * argument)    //uart1
{
  uint16_t length;
  int data;
  /* Infinite loop */
   HAL_PWR_DisableWakeUpPin(PWR_WAKEUP_PIN2);
  for(;;)
  {
    Get_Frame(&huart1,uart1_rxbuff,&length);
    data=HAL_GetTick();   

    if(uart1_rxbuff[0]=='s')   
    {
      HAL_PWR_DisableWakeUpPin(PWR_WAKEUP_PIN2);

      /* Clear the related wakeup pin flag */
      __HAL_PWR_CLEAR_WAKEUP_FLAG(PWR_WAKEUP_PIN_FLAG2);

      HAL_PWR_EnableWakeUpPin(PWR_WAKEUP_PIN2);    //打开了PA2 WUKP

      __HAL_PWR_CLEAR_WAKEUP_FLAG(PWR_WAKEUP_PIN_FLAG1);      

      HAL_PWR_DisableWakeUpPin(PWR_WAKEUP_PIN1);    //关闭了PA0 WUKP

      HAL_PWR_EnterSTANDBYMode();
    }

    if(uart1_rxbuff[0]=='p')
    {
       printf("%d  ",data);
      printf("%d  ",PWR->CSR2);
    }


    osDelay(10);
  }   
}



友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。