在ESP32低功耗模式下,利用RTC内存保存Wi-Fi连接信息是实现快速重连的关键。具体做法:在进入深度睡眠前,将Wi-Fi配置(如SSID、密码、BSSID、信道等)和连接状态(如IP地址)通过esp_wifi_get_config()和esp_netif_get_ip_info()获取,然后使用esp_sleep_get_ext1_wakeup_status()等API将数据存入RTC快速内存(RTC_DATA_ATTR或esp_sleep_get_wakeup_cause()后的RTC内存区域)。唤醒后,先调用esp_wifi_set_config()恢复配置,再调用esp_wifi_connect(),并利用esp_wifi_set_ps(WIFI_PS_NONE)或保持默认省电模式,避免重新扫描。为不增加唤醒时间,建议在唤醒后立即执行连接,同时将Wi-Fi初始化放在RTC内存中保存的上下文基础上,跳过全量初始化。实操建议:使用esp_wifi_set_storage(WIFI_STORAGE_RAM)避免Flash写入,并确保RTC内存数据在深度睡眠期间不被清除(需设置正确的唤醒源)。测试时,可测量唤醒到连接成功的耗时,通常可控制在50ms以内。
mcuku 阿沐 · 2026-08-27