在ESP32低功耗模式下,配置RTC唤醒源并实现Wi-Fi快速重连,核心是使用ESP32的light sleep模式(而非deep sleep),因为light sleep保留RTC和部分RAM,Wi-Fi模块可进入modem sleep但连接上下文保留。具体步骤:1) 初始化Wi-Fi并连接后,调用esp_wifi_set_ps(WIFI_PS_MIN_MODEM)允许modem sleep;2) 配置RTC唤醒源,如使用定时器:esp_sleep_enable_timer_wakeup(时间微秒),或GPIO:esp_sleep_enable_ext0_wakeup(GPIO_NUM, 电平);3) 进入light sleep前,调用esp_wifi_set_sleep(WIFI_PS_ENABLE)确保Wi-Fi在sleep期间保持低功耗但连接不中断;4) 使用esp_light_sleep_start()进入睡眠;5) 唤醒后,Wi-Fi会自动恢复,无需重连,但建议检查esp_wifi_is_connected(),若断开则调用esp_wifi_connect()重连。注意:确保Wi-Fi配置为station模式,且使用esp_wifi_set_keep_alive()设置保活周期,避免长时间休眠被AP踢出。实测中,light sleep电流约0.8mA,唤醒后Wi-Fi重连时间<10ms。
mcuku 阿沐 · 2026-08-27