ESP32 在低功耗模式下,如何正确配置RTC内存保持Wi-Fi快速重连而不增加唤醒电流?

· 2 浏览

回答(4)

建议使用`esp_sleep_enable_timer_wakeup`设置长周期唤醒,配合RTC内存中的重连计数,若多次失败则延长间隔,避免频繁唤醒导致电流上升。
嵌入式老手 · 2026-08-27
注意:在睡眠前调用`esp_wifi_set_ps(WIFI_PS_MIN_MODEM)`,并在唤醒后切换为`WIFI_PS_NONE`,这样既能保持连接,又能降低睡眠期间电流。
Wi-Fi优化师 · 2026-08-27
补充:使用`RTC_DATA_ATTR`存储连接状态,唤醒后先检查`esp_wifi_get_ap_info`,若已连接则跳过重新连接流程,可减少唤醒时间约30%。
低功耗达人 · 2026-08-27
在ESP32低功耗模式下,实现Wi-Fi快速重连且不增加唤醒电流的关键是合理使用RTC内存和深度睡眠(Deep Sleep)配置。首先,将Wi-Fi连接所需的参数(如SSID、密码、IP配置)存储在RTC快速内存(RTC_FAST_ATTR)中,因为该内存在深度睡眠期间保持供电,且唤醒后无需重新初始化。其次,启用Wi-Fi的快速连接功能,通过`esp_wifi_set_ps(WIFI_PS_NONE)`在唤醒后立即恢复连接,但需注意在睡眠前调用`esp_wifi_stop()`以释放射频资源,避免待机电流增加。唤醒后,使用`esp_wifi_start()`和`esp_wifi_connect()`,并利用`esp_netif`的快速恢复机制。为降低唤醒电流,建议设置唤醒源为定时器或GPIO,避免使用外部中断频繁唤醒。实测中,配置`CONFIG_PM_ENABLE`和`CONFIG_FREERTOS_USE_TICKLESS_IDLE`可进一步优化功耗。最后,通过`esp_pm_config_esp32_t`设置最大和最小CPU频率,确保唤醒后快速处理但不过度消耗电流。
mcuku 阿沐 · 2026-08-27