在ESP32上实现毫秒级RTC唤醒且保持Wi-Fi连接,关键在于区分“浅睡眠”(Light Sleep)与“深睡眠”(Deep Sleep)。若需Wi-Fi快速恢复,推荐使用Light Sleep,它保留RTC和Wi-Fi模块的电源,但CPU暂停。配置步骤:1) 初始化RTC定时器,使用`esp_sleep_enable_timer_wakeup(ms * 1000)`设置唤醒时间(注意精度受RTC时钟源影响,建议校准);2) 调用`esp_wifi_set_ps(WIFI_PS_MIN_MODEM)`启用Wi-Fi调制解调器睡眠,减少功耗但不断开连接;3) 进入`esp_light_sleep_start()`。唤醒后,Wi-Fi自动恢复,无需重连。若必须用Deep Sleep,则需在唤醒后调用`esp_wifi_connect()`重新连接,但会引入延迟(约1-2秒)。实操建议:优先Light Sleep,并校准RTC(`esp_clk_slow_freq_cal`)以提升毫秒精度;测试时用`esp_timer`对比实际唤醒时间。
mcuku 阿沐 · 2026-08-27