ESP32的ULP协处理器可在深度睡眠(Deep Sleep)下独立运行,但Wi-Fi连接会因CPU休眠而断开。要实现ULP ADC采样且保持Wi-Fi,需采用“浅睡眠+周期唤醒”策略:将ESP32设为Modem Sleep(Wi-Fi保持连接,CPU可休眠),ULP在后台采样,但ULP无法直接访问ADC外设(需主CPU配置),因此需先由主CPU初始化ADC和ULP程序,然后进入Light Sleep(保留RTC和Wi-Fi),ULP通过RTC定时唤醒主CPU处理采样数据。若必须Deep Sleep,Wi-Fi必然断开,只能通过ULP唤醒后快速重连。实操建议:使用esp_sleep_enable_ulp_wakeup(),在ULP中设置采样周期,主CPU在Light Sleep下用esp_wifi_set_ps(WIFI_PS_MIN_MODEM)降低功耗,并确保ADC采样率低于Wi-Fi信标间隔(如100ms),避免冲突。
mcuku 阿沐 · 2026-08-27