在ESP32低功耗模式下,ULP协处理器可在主CPU休眠时监控GPIO边沿,但Wi-Fi连接需主CPU保持活跃。要实现边沿检测且不中断Wi-Fi,建议采用“深度睡眠+定时唤醒”策略:ULP检测到边沿后,通过RTC唤醒主CPU处理事件,同时利用ESP32的Wi-Fi modem sleep(如DTIM间隔)降低功耗,而非完全关闭Wi-Fi。具体操作:1) 配置ULP程序监控GPIO,使用RTC GPIO(如GPIO0-5)并设置边沿触发;2) 在ULP中设置唤醒条件,通过RTC_CNTL触发主CPU唤醒;3) 主CPU唤醒后快速处理事件,并重新进入睡眠,期间保持Wi-Fi连接(启用modem sleep,设置DTIM=1)。注意:深度睡眠会断开Wi-Fi,若需保持连接,只能使用light sleep(主CPU暂停,Wi-Fi保留),此时ULP仍可运行,但功耗较高。实操建议:使用esp_sleep_enable_ulp_wakeup(),并在light sleep下测试,确保Wi-Fi不中断。
mcuku 阿沐 · 2026-08-27