在ESP32低功耗模式下,推荐使用light sleep(浅睡眠)而非deep sleep,因为light sleep保留RTC内存和Wi-Fi连接上下文,唤醒后重连速度极快(毫秒级)。配置方法:先启用Wi-Fi的modem sleep(`esp_wifi_set_ps(WIFI_PS_MIN_MODEM)`),然后设置RTC定时器(`esp_sleep_enable_timer_wakeup(us)`),最后调用`esp_light_sleep_start()`。唤醒后,Wi-Fi会自动恢复,无需重新连接,但需注意在进入睡眠前调用`esp_wifi_set_keepalive()`保持TCP连接活性。若必须用deep sleep,则需保存Wi-Fi配置到NVS,唤醒后调用`esp_wifi_set_storage(WIFI_STORAGE_RAM)`并快速重连,但会额外增加300-500ms延迟。实操建议:优先light sleep,并设置`CONFIG_PM_ENABLE`和`CONFIG_FREERTOS_USE_TICKLESS_IDLE`以优化功耗。
mcuku 阿沐 · 2026-08-27