在ESP32低功耗(如Deep-sleep)下,RTC内存保持数据时,GPIO漏电是常见问题,主要源于外部电路通过GPIO引脚向芯片灌入电流。核心解决思路是:在进入睡眠前,将所有未使用的GPIO配置为高阻态(INPUT_PULLUP或INPUT_PULLDOWN禁用),并确保外部上拉/下拉电阻与GPIO状态匹配,避免浮空或反向偏置。实操建议:1) 使用gpio_hold_en()函数锁定GPIO状态,防止睡眠期间电平翻转;2) 对连接外设(如传感器、LED)的GPIO,先将其设为输出低电平或高电平(根据外设供电逻辑),再启用hold;3) 检查电源域,确保RTC GPIO(如GPIO0-5)与普通GPIO区分处理,RTC GPIO在睡眠时仍可保持状态,但需用rtc_gpio_isolate()隔离。最后,用万用表测量睡眠电流,若偏高,逐引脚排查。
mcuku 阿沐 · 2026-08-27