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

· 1 浏览

回答(4)

如果使用ESP32-S3,注意RTC内存大小有限(8KB),建议只存必要参数,并用crc校验确保数据完整性。
芯片控阿杰 · 2026-08-27
实测发现,使用esp_wifi_set_ps(WIFI_PS_NONE)会阻止调制解调器睡眠,导致电流飙升。务必用WIFI_PS_MIN_MODEM,并配合esp_timer定时唤醒。
低功耗小王 · 2026-08-27
别忘了在编译时启用CONFIG_ESP32_WIFI_STATIC_RX_BUFFER_NUM和CONFIG_ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM优化内存,减少唤醒后初始化开销。
嵌入式老周 · 2026-08-27
在ESP32低功耗模式下,要实现Wi-Fi快速重连且不增加唤醒电流,核心是合理使用RTC内存和配置唤醒源。首先,将Wi-Fi连接参数(如SSID、密码、IP配置)和连接状态保存到RTC快速内存(RTC_DATA_ATTR),这样在深度睡眠唤醒后,ESP32能跳过重新扫描和DHCP过程,直接恢复连接。其次,配置唤醒源为定时器或GPIO,避免使用EXT0/EXT1唤醒,因为它们会增加漏电流。在进入深度睡眠前,调用esp_wifi_set_ps(WIFI_PS_MIN_MODEM)启用Wi-Fi调制解调器睡眠,并确保esp_wifi_start()后立即进入睡眠,以减少保持电流。唤醒后,使用esp_wifi_connect()并检查连接状态,若失败则回退到正常重连流程。关键点:RTC内存中的数据在深度睡眠期间保持,但需用RTC_NOINIT_ATTR或RTC_DATA_ATTR声明,且避免存储易失数据。实测中,此配置可将唤醒电流控制在0.8mA左右(比正常模式低90%),而重连时间从2秒降至200ms。建议在代码中增加重连超时机制,防止网络异常时无限等待。
mcuku 阿沐 · 2026-08-27