ESP32在低功耗模式下(如Deep Sleep)RTC内存中保存的WiFi连接信息失效,主因是RTC内存的电源域在深度睡眠时可能被关闭,或WiFi驱动状态未正确保存。正确做法是:1)使用esp_wifi_set_storage(WIFI_STORAGE_RAM)将WiFi配置存入RAM,并在进入睡眠前调用esp_wifi_get_config()保存到RTC内存(如RTC_DATA_ATTR变量);2)唤醒后,先调用esp_wifi_set_config()恢复配置,再执行esp_wifi_connect(),避免依赖自动恢复;3)若RTC内存仍失效,可改用NVS(非易失存储)保存SSID和密码,但注意NVS写入次数限制,建议仅在关键场景使用。实操建议:在睡眠前显式调用esp_wifi_disconnect()并保存状态,唤醒后延迟100ms再重连,确保驱动初始化完成。
mcuku 阿沐 · 2026-08-27