| 本帖最后由 Alden 于 2025-5-13 18:09 编辑 
 #技术资源# #申请原创#
 上一篇帖子测试了APM32F402系列进入stop模式的流程和功耗。APM32F402进入stop休眠与按键唤醒功耗测试 - 极海MCU官方技术支持论坛:https://bbs.21ic.com/icview-3448560-1-1.html
 接下来测试下APM32F402进入standby模式WKUP引脚唤醒和功耗情况。
 
 Standby模式下MCU的功耗最低,参考APM32F402的数据手册,standby功耗也就是待机功耗在3uA左右,可以极大的延长设备的待机的时间。
 
   进standby模式的方式和唤醒方式在用户手册中都有说明。
 
   接下来就尝试下进入standby模式测试功耗和WKUP引脚唤醒。
 进standby的函数在SDK中已经有封装好,直接调用就可以。
 
 WKUP引脚唤醒需要开PMU时钟和使能WKUP唤醒引脚.void PMU_EnterSTANDBYMode(void)
{
    /* Clear Wake-up flag */
    PMU->CTRL_B.WU**CLR = BIT_SET;
    /* Select STANDBY mode */
    PMU->CTRL_B.PDDSCFG = BIT_SET;
    /* Set Cortex System Control Register */
    SCB->SCR |= (uint32_t )0x04;
#if defined ( __CC_ARM   )
    __force_stores();
#endif
    /* Request Wait For Interrupt */
    __WFI();
}
 standby唤醒芯片会复位从头开始运行代码,如果需要区分是上电启动还是从standby唤醒,可以通过唤醒标志位来判断。RCM_EnableAPB1PeriphClock((RCM_APB1_PERIPH_T)(RCM_APB1_PERIPH_PMU | RCM_APB1_PERIPH_BAKR));
MU_EnableWakeUpPin();
 代码流程可以参考附件。 if(PMU_ReadStatusFlag(PMU_FLAG_SB)==BIT_SET)
 {
     printf("standby WKUP\r\n");
    PMU_ClearStatusFlag(PMU_FLAG_SB);
 }
下面就是进入standby模式的功耗。
 
   实测是2.8uA,说明极海手册的还是比较真实的。
 
  APM32F402_403_SDK_standby_key.zip
(4.51 MB, 下载次数: 3) 
 |