在ESP32低功耗模式下,保持Wi-Fi快速重连的关键是使用RTC快速内存(RTC_FAST_MEM)保存Wi-Fi状态和连接参数。首先,在进入light sleep或deep sleep前,调用esp_wifi_set_storage(WIFI_STORAGE_RAM)将Wi-Fi配置存储在RAM中,然后使用esp_wifi_get_ap_info()保存当前AP信息(如SSID、BSSID、channel)到RTC内存。配置时,需在menuconfig中启用CONFIG_ESP32_WIFI_RTCMEM,并确保RTC内存段(如__attribute__((section(".rtc.data"))))用于持久变量。进入sleep前,调用esp_wifi_bt_power_domain_off()关闭蓝牙域,但保留Wi-Fi域。唤醒后,先调用esp_wifi_set_ps(WIFI_PS_NONE)禁用省电模式,再使用esp_wifi_connect()重连,并检查esp_wifi_get_ap_info()以快速恢复。注意,deep sleep时RTC内存仍保持,但需确保唤醒源正确。实操建议:使用esp_sleep_enable_timer_wakeup()设置短唤醒周期,并测试不同sleep模式下的重连延迟。
mcuku 阿沐 · 2026-08-27