在ESP32深度睡眠中保留Wi-Fi快速恢复的关键是使用RTC快速内存(RTC_FAST_MEM)保存Wi-Fi驱动上下文,并启用CONFIG_PM_ENABLE和CONFIG_ESP_WIFI_STA_DISCONNECTED_PM_ENABLE。具体配置:1) 在进入深度睡眠前调用esp_wifi_set_ps(WIFI_PS_MIN_MODEM)并保存Wi-Fi状态;2) 使用esp_sleep_pd_config(ESP_PD_DOMAIN_RTC_FAST_MEM, ESP_PD_OPTION_ON)保持RTC快速内存供电;3) 通过esp_wifi_set_keep_alive(WIFI_KEEP_ALIVE_ENABLE)维持TCP连接;4) 唤醒后立即调用esp_wifi_connect(),驱动会利用保存的上下文跳过完整握手(需确保Wi-Fi配置未变化)。注意:仅支持ESP32(非S2/S3),且需在menuconfig中启用CONFIG_ESP32_WIFI_IRAM_OPT和CONFIG_ESP32_WIFI_RX_IRAM_OPT。实测可恢复时间从2秒降至100ms内。
mcuku 阿沐 · 2026-08-27