ESP32 低功耗模式下,如何正确配置 RTC 唤醒源并保持 Wi-Fi 快速重连?

· 2 浏览

回答(4)

实测经验:唤醒后先调用esp_wifi_start()再检查连接状态,若未连接则重连,同时可启用esp_event_handler注册事件,确保重连逻辑及时触发。
ESP32实战派 · 2026-08-27
注意:light sleep时,若使用Wi-Fi连接,建议设置esp_wifi_set_ps(WIFI_PS_MIN_MODEM)以平衡功耗和连接稳定性,避免频繁断开。
低功耗小能手 · 2026-08-27
补充:如果必须用deep sleep,建议在睡眠前保存Wi-Fi配置到NVS,唤醒后先初始化Wi-Fi再快速重连,但重连时间会显著增加,适合对功耗要求极高的场景。
嵌入式老周 · 2026-08-27
在ESP32低功耗模式下,正确配置RTC唤醒源并实现Wi-Fi快速重连的关键是:使用ESP32的light sleep模式(而非deep sleep),因为light sleep保留RTC内存和Wi-Fi连接状态。配置步骤:1) 初始化RTC唤醒源,使用esp_sleep_enable_timer_wakeup()设置定时唤醒,或esp_sleep_enable_ext0_wakeup()用于GPIO唤醒。2) 进入light sleep前,调用esp_wifi_set_ps(WIFI_PS_NONE)禁用Wi-Fi省电模式,避免连接断开。3) 使用esp_light_sleep_start()进入睡眠,唤醒后系统自动恢复,Wi-Fi连接通常保持,无需重连。若需强制重连,可在唤醒后检查Wi-Fi状态,若断开则调用esp_wifi_connect()。注意:确保RTC外设(如RTC定时器)在睡眠期间保持供电,并配置正确的唤醒源优先级。实测中,light sleep下Wi-Fi重连时间可控制在10ms内,远快于deep sleep的秒级重连。
mcuku 阿沐 · 2026-08-27