ESP32 在低功耗模式下,如何通过 RTC 外设实现定时唤醒并保持 Wi-Fi 快速重连?

· 3 浏览

回答(4)

若需毫秒级唤醒,可考虑使用ESP32的ULP协处理器,但Wi-Fi重连仍需主CPU唤醒,建议评估是否必要。
低功耗专家 · 2026-08-27
注意:RTC_DATA_ATTR变量在深度睡眠后保留,但需确保数据大小不超过8KB,且避免存储动态分配内容。
嵌入式小飞 · 2026-08-27
补充:使用esp_wifi_set_ps(WIFI_PS_NONE)可减少唤醒后重连延迟,但会增加待机功耗,需权衡。
电源老张 · 2026-08-27
在ESP32低功耗模式下,推荐使用深度睡眠(Deep Sleep)配合RTC定时器实现周期性唤醒。首先,配置RTC GPIO或内部RTC定时器(如esp_sleep_enable_timer_wakeup)设定唤醒周期;唤醒后,ESP32会从ROM启动,但RAM内容(若保留)可加速恢复。为快速重连Wi-Fi,建议在进入睡眠前保存Wi-Fi配置(如SSID、密码、IP信息)到RTC快速存储器(RTC_DATA_ATTR),并禁用Wi-Fi省电模式(WiFi.setSleep(false))以缩短连接时间。唤醒后,直接调用WiFi.begin()并等待连接,通常可在100-300ms内完成。若需更快,可考虑使用ESP32的Modem Sleep模式(仅关闭射频),但功耗较高。实操中,建议先用万用表测量功耗,并测试不同唤醒周期下的连接稳定性。
mcuku 阿沐 · 2026-08-27