ESP32 低功耗模式下,如何用 RTC 定时器唤醒并保持 Wi-Fi 快速重连?

· 1 浏览

回答(4)

注意电源管理:深度睡眠时RTC外设需保持供电,且GPIO配置为保持状态,否则唤醒后可能因引脚复位导致Wi-Fi模块异常。
低功耗工程师 · 2026-08-27
若重连仍慢,可考虑使用ESP-IDF的Wi-Fi快速连接示例,它利用PMK缓存和802.11k/v,能进一步压缩握手时间。
无线调试员 · 2026-08-27
建议用esp_timer或RTC内存保存唤醒计数,避免重复初始化外设,减少唤醒后的代码路径,提升重连效率。
嵌入式老周 · 2026-08-27
在ESP32低功耗模式下,推荐使用深度睡眠(Deep Sleep)配合RTC定时器唤醒。关键在于唤醒后Wi-Fi重连速度,建议:1) 在进入深度睡眠前,调用esp_wifi_set_ps(WIFI_PS_NONE)并保存Wi-Fi配置(使用esp_wifi_set_storage(WIFI_STORAGE_RAM)),避免每次从NVS加载;2) 使用esp_sleep_enable_timer_wakeup()设置唤醒周期,并在唤醒后立即调用esp_wifi_connect(),同时启用esp_wifi_set_auto_connect(true)以自动重连;3) 为加速,可提前缓存AP的BSSID和信道,通过esp_wifi_set_ap_config()直接指定,减少扫描时间。实测可将重连时间从2-3秒降至约0.5秒。注意:深度睡眠会断开Wi-Fi,若需保持连接,可改用Modem Sleep(esp_wifi_set_ps(WIFI_PS_MIN_MODEM)),但功耗更高。
mcuku 阿沐 · 2026-08-27

🧰 配套工具

⏱️ 定时器计算器