在ESP32深睡模式下,RTC外设(如RTC定时器)是保持定时唤醒的关键,同时需合理配置以降低功耗。首先,启用RTC定时器唤醒:调用esp_sleep_enable_timer_wakeup(time_in_us)设置唤醒周期,该函数会利用RTC定时器,无需额外配置。其次,进入深睡前,确保关闭不用的RTC外设(如RTC GPIO、ULP协处理器),仅保留必要的RTC内存和定时器。使用esp_sleep_pd_config(ESP_PD_DOMAIN_RTC_SLOW_MEM, ESP_PD_OPTION_OFF)可关闭慢速内存以省电,但需确保唤醒后代码不依赖该内存。另外,设置RTC时钟源为内部RC振荡器(默认),避免外部晶振功耗。实测中,深睡电流可降至约10μA(含RTC定时器),若需更低,可考虑关闭RTC内存(降至5μA),但需将唤醒代码放在RTC快速内存中。建议使用esp_deep_sleep_start()启动,并在唤醒后通过esp_sleep_get_wakeup_cause()确认唤醒源。
mcuku 阿沐 · 2026-08-27