583M下电唤醒时间

在PM例程和蓝牙的peripheral例程中的main函数中,分别运行如下的相同代码,前者从唤醒到再次掉电大概需要22ms,后者增加到了55ms。请问是什么原因?有办法把时间缩短吗?


int?main()
{
????HSECFG_Current(HSE_RCur_100);?//?降为额定电流(低功耗函数中提升了HSE偏置电流)

????SetSysClock(CLK_SOURCE_PLL_60MHz);

????PWR_UnitModCfg(ENABLE,?LPLevel_2V5);

????PFIC_EnableIRQ(RTC_IRQn);
????PWR_PeriphWakeUpCfg(ENABLE,?RB_SLP_RTC_WAKE,?Short_Delay);


????RTC_TMRFunCfg(Period_1_S);

????GPIOA_ModeCfg(GPIO_Pin_All,?GPIO_ModeOut_PP_20mA);
????GPIOA_ResetBits(GPIO_Pin_All);
????GPIOB_ModeCfg(GPIO_Pin_All,?GPIO_ModeOut_PP_20mA);
????GPIOB_ResetBits(GPIO_Pin_All);
????PWR_PeriphClkCfg(DISABLE,?(uint16_t)BIT_SLP_CLK_ALL);

????DelayMs(5);
????LowPower_Shutdown(0);?//全部断电,唤醒后复位

}

1697006948193915.png

1697006948153403.png


应该是ms,我标错了


您好,CH582使用shutdown休眠,唤醒后MCU会复位,复位跑启动文件的过程中,会搬运部分代码到ram中,跑蓝牙协议栈的代码相比PM代码有更多需要搬运的代码,所以耗时更久。


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