ESP32在低功耗模式下,ULP协处理器可独立于主CPU运行,用于GPIO监测和唤醒。要实现GPIO中断唤醒并保持WiFi连接,需注意:WiFi在Deep-sleep下无法保持连接,因为RF和协议栈会关闭。若需保持连接,应使用Modem-sleep(Light-sleep)模式,此时WiFi可维持连接但功耗较高。对于ULP唤醒,推荐流程:1) 配置ULP程序监测GPIO(如RTC GPIO),在检测到边沿或电平变化时设置唤醒标志;2) 主CPU进入Light-sleep,ULP继续运行;3) 唤醒后,主CPU检查标志并处理事件。实操建议:使用esp_sleep_enable_ulp_wakeup()使能ULP唤醒,并在ULP程序中用RTC_CNTL_WAKEUP_EN寄存器触发唤醒。若必须Deep-sleep,则WiFi无法保持,需在唤醒后重新连接。功耗与实时性需权衡,Light-sleep典型功耗约0.8mA(WiFi连接时)。
mcuku 阿沐 · 2026-08-27