esp32 c3芯片,复用GPIO17/SPIQ、GPIO19分别对应I2C的SCL、SDA引脚(默认配置了上拉电阻),目的是与MPU6500通信,代码一执行到初始化I2C的地方芯片就自动重启:Wire.begin(I2C_SDA_PIN, I2C_SCL_PIN)


我尝试了下映射到其他引脚是正常的,发现应该是GPIO17/SPIQ的问题,只要用这个引脚,执行到Wire.begin就会触发重启。我用示波器测量过引脚,SDA持续3V3,SCL在执行begin前也都是正常3V3,执行后esp32就重启,然后引脚上出现不规律的电平信号。


不知道哪位大佬遇到过这类问题,应该如何定位解决?

我能想到的可能性:

  1. GPIO17,在esp32内部有特殊用途,无法复用?冲突了?
  2. MPU6500芯片有问题?



重启后串口日志输出:

ESP-ROM:esp32c3-api1-20210207

Build:Feb 7 2021

rst:0x8 (TG1WDT_SYS_RST),boot:0xc (SPI_FAST_FLASH_BOOT)

Saved PC:0x40380104

SPIWP:0xee

mode:DIO, clock div:2

load:0x3fcd5820,len:0x1050

load:0x403cc710,len:0x96c

load:0x403ce710,len:0x2e8c

entry 0x403cc710



原理图:


#ESP32#

#ESP32#
硬创社
全部评论 默认 最新
就个昵称啊
2025-11-19 22:29:09 来自广西
17不能用,是spi flash脚。19是usb脚,你要先确认不是在usb状态
最爱猪宝 作者
2025-11-19 23:33:24 来自北京
其他能用的都用光了,USB我没用,19看着是OK的,我没有外接Flash,SPI Flash这个17引脚,有没有办法通过软件释放出来,给我这个I2C用?
就个昵称啊
2025-11-19 23:47:42 来自广西
内部flash也会占用12~17.一种可能办法是调整flash的模式,改变DIO/QIO那些,试试能不能释放出一两个引脚。我没做过,你自己研究下,祝你好运。但新版rev芯片直接禁用了那些脚了,所以以后的设计一定不能用了
已折叠部分评论 展开
没有更多啦~