ESP32 的 ULP 协处理器可在深度睡眠(Deep Sleep)下运行,但 Wi-Fi 连接在深度睡眠时会被关闭,无法同时保持。要实现 GPIO 边沿触发并保持 Wi-Fi,需采用“浅睡眠(Light Sleep)+ ULP”或“周期唤醒”策略。实操建议:1) 使用 ULP 监控 GPIO 边沿(通过 RTC_GPIO 引脚,配置 RTCIO 中断),当检测到边沿时,ULP 可唤醒主 CPU;2) 在唤醒后,主 CPU 快速恢复 Wi-Fi(使用 ESP-IDF 的 esp_wifi_connect() 或保持 Wi-Fi 模块在 Modem Sleep 模式,此时 Wi-Fi 连接保持但功耗较高);3) 若必须深度睡眠,则无法保持 Wi-Fi,可改用“事件驱动+定时唤醒”方案:ULP 记录边沿事件,主 CPU 周期性唤醒(如每 100ms)检查事件并处理 Wi-Fi 数据。注意:ULP 无法直接操作 Wi-Fi,需主 CPU 配合。建议使用 ESP-IDF 的 ulp_riscv 或汇编编程,并参考官方示例(如 esp-ulp-riscv-example)。
mcuku 阿沐 · 2026-08-27