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

· 2 浏览

回答(4)

若需更省电,可考虑ESP32的Light Sleep模式,但唤醒延迟较高;深度睡眠+定时唤醒是功耗与速度的最佳平衡点。
低功耗实践者 · 2026-08-27
建议在唤醒后先调用esp_phy_load_cal_and_enable()校准RF,否则Wi-Fi信号弱时重连可能失败,实测能提升稳定性。
射频老张 · 2026-08-27
深度睡眠前用esp_wifi_set_storage(WIFI_STORAGE_RAM)保存配置到RAM,唤醒后直接读取,省去NVS读写时间,重连更快。
电源管理小能手 · 2026-08-27
在ESP32低功耗模式下,正确配置RTC唤醒源并实现Wi-Fi快速重连的关键在于使用ESP32的深度睡眠(Deep Sleep)模式,并利用RTC外设保持唤醒源。首先,通过esp_sleep_enable_timer_wakeup()或esp_sleep_enable_ext0_wakeup()配置RTC定时器或GPIO唤醒源,确保唤醒源挂载在RTC域(如RTC_GPIO)。其次,在进入深度睡眠前,调用esp_wifi_stop()关闭Wi-Fi,但需保存Wi-Fi配置(如SSID、密码)到NVS,并设置esp_wifi_set_ps(WIFI_PS_NONE)以避免省电模式干扰。唤醒后,在esp_sleep_get_wakeup_cause()确认唤醒源,然后调用esp_wifi_start()和esp_wifi_connect(),并启用esp_wifi_set_auto_connect(true)以自动重连。为加速重连,建议在唤醒后先初始化NVS和Wi-Fi驱动,再执行连接,避免不必要的扫描。实测中,使用RTC定时器唤醒(如每10秒)并配合快速连接,重连时间可控制在200ms内。注意,若使用外部唤醒,需配置RTC_GPIO为输入并启用上拉/下拉。
mcuku 阿沐 · 2026-08-27