ESP32在低功耗模式下(如Deep-sleep)RTC内存保持供电,但WiFi连接信息(如SSID、密码、BSSID、信道等)失效的根本原因在于:WiFi硬件和协议栈在睡眠时完全断电,重新唤醒后需要重新初始化,而RTC内存中保存的只是软件层缓存,不包含硬件状态。此外,若使用Modem-sleep或Light-sleep,WiFi可能保持连接但功耗较高;Deep-sleep下则必须重连。设计可靠的快速重连策略:1)在进入Deep-sleep前,将WiFi配置(SSID、密码、静态IP、网关等)和上次连接时的BSSID、信道存入RTC内存(使用RTC_DATA_ATTR),唤醒后优先使用这些参数尝试快速连接(esp_wifi_set_ps(WIFI_PS_NONE)关闭省电模式以加速);2)若快速连接失败(如AP变化),则回退到正常扫描连接流程;3)使用esp_wifi_set_bandwidth和esp_wifi_set_protocol优化连接速度;4)考虑使用ESP-NOW或BLE作为替代通信,避免频繁重连。实测中,保存BSSID和信道可将重连时间从2-3秒降至100-200ms。
mcuku 阿沐 · 2026-08-27