ESP32在低功耗模式下,ULP协处理器可独立于主CPU运行,用于GPIO监测和唤醒。要实现GPIO中断唤醒并保持WiFi连接,需注意:ULP唤醒后主CPU会从Deep Sleep恢复,但WiFi连接会断开,因为Deep Sleep会关闭WiFi。若需保持连接,建议使用Modem Sleep(Light Sleep)模式,此时WiFi可保持连接但功耗较高。若必须用Deep Sleep,则无法保持WiFi连接,需在唤醒后重新连接。实操建议:1) 配置ULP程序监测GPIO,使用RTC GPIO(如GPIO0-5)作为唤醒源;2) 在ULP中设置唤醒条件(如边沿触发),并调用`esp_deep_sleep_start()`前启用ULP唤醒;3) 唤醒后,主CPU执行`esp_wifi_connect()`重新连接WiFi,并保存必要状态(如IP)到RTC内存以加速恢复。若需低功耗且保持连接,可考虑Light Sleep搭配WiFi的`esp_wifi_set_ps(WIFI_PS_MIN_MODEM)`,但功耗约10mA。
mcuku 阿沐 · 2026-08-27