打印
[应用相关]

AT32F4 如何进入深度睡眠模式(Deepsleep Mode)?

[复制链接]
81|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
TimeRiddle|  楼主 | 2025-4-10 15:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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++);


使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

18

帖子

0

粉丝