唤醒事件屏蔽掉RTC,为啥RTC还是能唤醒休眠
 //使能按键和rtc唤醒
  if(0/*gTask_Ctrl.Long_Key_Pwr_Off == 0*/)
  {
//    wake_event|=RB_SLP_RTC_WAKE;
  }
  else
  {
    PWR_PeriphWakeUpCfg( DISABLE, RB_SLP_RTC_WAKE, Edge_LongDelay );
  }
  PWR_PeriphWakeUpCfg( DISABLE, RB_SLP_BAT_WAKE, Level_ShortDelay );
  PWR_PeriphWakeUpCfg( ENABLE, RB_SLP_GPIO_WAKE, Level_LongDelay );


  /*请io中断标记*/
  R16_PA_INT_IF = 0XFFFF;
  R16_PB_INT_IF = 0XFFFF;
  /*清掉rtc中断标记*/
  R8_RTC_FLAG_CTRL = ( RB_RTC_TMR_CLR | RB_RTC_TRIG_CLR );

  SetSysClock( CLK_SOURCE_HSE_6_4MHz );
  LowPower_Sleep( RB_PWR_RAM2K | RB_PWR_RAM16K | RB_PWR_EXTEND );
  SetSysClock( CLK_SOURCE_PLL_60MHz );

进入休眠时候的代码如上,只开启按键唤醒,但是唤醒之后发现是RTC中断唤醒的,RTC是使用周期中断。可以肯定是RTC唤醒的,因为只要把RTC中断关闭,在没有按键之类的io中断,系统是不会从休眠中被唤醒。唤醒后打印出R8_SLP_WAKE_CTRL的值为0x10

蓝牙的代码,rtc会打开的


只有登录才能回复,可以选择微信账号登录