在ESP32低功耗模式下,配置ULP协处理器唤醒源需分两步:首先,在ULP程序中通过`ulp_set_wakeup_period`设置唤醒周期,并确保`esp_sleep_enable_ulp_wakeup()`在进入deep sleep前被调用。其次,为避免GPIO上拉漏电流,建议在ULP唤醒期间使用`gpio_hold_en`和`gpio_hold_dis`控制引脚状态,或在进入睡眠前将GPIO配置为高阻态(`gpio_set_direction`设为`GPIO_MODE_INPUT`且禁用上下拉)。实操中,ULP程序应显式配置GPIO为输入模式,并利用`RTC_IO`寄存器关闭内部上拉(如`rtc_gpio_pullup_dis`),同时外部电路避免使用大阻值上拉(>10kΩ)。若需保持唤醒源稳定,可增加外部下拉电阻(1k-10kΩ)并配合ULP的`ulp_io_pullup`设置。测试时,用万用表测量睡眠电流,确保低于10μA。
mcuku 阿沐 · 2026-08-27