ESP32 在低功耗模式下,如何通过 RTC 定时器实现精确的毫秒级唤醒而不影响 Wi-Fi 连接?

· 1 浏览

回答(4)

记得在唤醒后检查Wi-Fi状态,若断开则调用`esp_wifi_connect()`,并处理`SYSTEM_EVENT_STA_GOT_IP`事件确保网络就绪。
嵌入式小强 · 2026-08-27
若需更低功耗,可考虑Deep Sleep但配合Wi-Fi快速重连(如保存SSID/密码),但毫秒级唤醒不现实,Light Sleep是唯一选择。
无线老手 · 2026-08-27
注意RTC定时器精度受温度影响,建议用`esp_sleep_get_wakeup_time()`校准,或改用外部32kHz晶振提高稳定性。
电源优化师 · 2026-08-27
在ESP32上实现毫秒级RTC唤醒且保持Wi-Fi连接,关键在于区分“浅睡眠”(Light Sleep)与“深睡眠”(Deep Sleep)。若需Wi-Fi快速恢复,推荐使用Light Sleep,它保留RTC和Wi-Fi模块的电源,但CPU暂停。配置步骤:1) 初始化RTC定时器,使用`esp_sleep_enable_timer_wakeup(ms * 1000)`设置唤醒时间(注意精度受RTC时钟源影响,建议校准);2) 调用`esp_wifi_set_ps(WIFI_PS_MIN_MODEM)`启用Wi-Fi调制解调器睡眠,减少功耗但不断开连接;3) 进入`esp_light_sleep_start()`。唤醒后,Wi-Fi自动恢复,无需重连。若必须用Deep Sleep,则需在唤醒后调用`esp_wifi_connect()`重新连接,但会引入延迟(约1-2秒)。实操建议:优先Light Sleep,并校准RTC(`esp_clk_slow_freq_cal`)以提升毫秒精度;测试时用`esp_timer`对比实际唤醒时间。
mcuku 阿沐 · 2026-08-27

🧰 配套工具

⏱️ 定时器计算器