[AT32F403/403A] AT32F4如何进入深度睡眠模式(Deepsleep Mode)

[复制链接]
551|1
MCU学习帮 发表于 2025-10-15 15:27 | 显示全部楼层 |阅读模式
QuestionsAT32F4如何进入深度睡眠模式(Deepsleep Mode)?
Answer
AT32进入深度睡眠模式(Deepsleep Mode)前需要关闭SysTick定时器,否则会导致进入Deepsleep模式后再次被SysTick定时器唤醒的现象。
AT32F403A代码示例如下,其他型号请参考对应BSP路径\examples\pwc下Deepsleep例程。
  
    /* clear second flag */
  
    rtc_flag_clear(RTC_TS_FLAG);
  
    /* wait for the second flag to be set */
  
    while(rtc_flag_get(RTC_TS_FLAG) ==  RESET);
  
    /* set the wakeup time to 3 seconds */
  
    rtc_alarm_set(rtc_counter_get() + 3);
  
    /* wait for the register write to  complete */
  
    rtc_wait_config_finish();
  
    at32_led_off(LED2);
  
    /* save systick register configuration */
  
    systick_index = SysTick->CTRL;
  
    systick_index &=  ~((uint32_t)0xFFFFFFFE);
  
    /* disable systick */
  
    SysTick->CTRL &=  (uint32_t)0xFFFFFFFE;
  
   
  
    /* congfig the voltage regulator mode */
  
     pwc_voltage_regulate_set(PWC_REGULATOR_LOW_POWER);
  
    /* enter deep sleep mode */
  
    pwc_deep_sleep_mode_enter(PWC_DEEP_SLEEP_ENTER_WFI);
  
    /* restore systick register configuration  */
  
    SysTick->CTRL |= systick_index;
  
    /* wake up from deep sleep mode, congfig  the system clock */
  
    system_clock_recover();
  
    at32_led_on(LED2);
  
    for(index = 0; index < 500000;  index++);
  
类型:MCU应用
适用型号:AT32F4系列
小小蚂蚁举千斤 发表于 2025-10-16 16:27 | 显示全部楼层
AT32进入深度睡眠模式功耗大大降低
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

9

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部