You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将ESP32-PICO-MINI的GPIO8(SD_DATA_1)上电默认电平设为低?

解决ESP32 GPIO8上电默认低电平的问题

硬件临时方案

  • 若使用开发板,检查GPIO8是否搭载上拉电阻,如有则拆除;若为自研电路板,直接给GPIO8焊接10k-100kΩ的下拉电阻到GND,从硬件层面强制上电低电平。

软件永久解决方案(基于ESP-IDF)

1. 禁用SD卡外设默认初始化

GPIO8默认绑定SD_DATA_1功能,系统启动时会自动初始化SD卡外设导致引脚拉高,需先禁用该默认配置:

  • 在Eclipse中打开ESP-IDF的menuconfig(快捷键:Ctrl+Shift+P → 输入ESP-IDF: Open Configuration Editor)
  • 依次进入Component config → SDMMC/SDIO/SD Host Controller
  • 取消勾选SDMMC peripheral enabled by default选项,保存配置。

2. 启动早期设置GPIO8为低电平

无需等待app_main执行,在系统启动最早期阶段配置引脚:

  • 代码中引入头文件:
    #include "esp_rom_gpio.h"
    
  • 在app_main函数的第一行(或更早的初始化代码中)添加:
    // 初始化GPIO8为输出模式并设置低电平
    esp_early_gpio_init(GPIO_NUM_8);
    esp_early_gpio_set_direction(GPIO_NUM_8, GPIO_MODE_OUTPUT);
    esp_early_gpio_set_level(GPIO_NUM_8, 0);
    

3. 特殊型号的EFUSE配置(可选)

部分ESP32衍生型号(如ESP32-S3)中,GPIO8的默认功能由EFUSE固化,若上述方法无效,可通过EFUSE禁用SD卡引脚默认功能:

  • 注意:EFUSE烧写后无法恢复,操作前确认芯片型号与需求
  • 在终端执行ESP-IDF命令:
    esp-idf.py efuse set SDIO_SLOT 0
    

验证

编译烧录固件后,使用示波器或万用表测量GPIO8上电瞬间的电平,确认无高电平脉冲输出。

内容的提问来源于stack exchange,提问作者peropata

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 01:25:18