乐鑫技术交流
直播中

李星童

7年用户 1022经验值
私信 关注
[问答]

Wemos D1 mini pro - GPIO16禁I2C是为什么?如何解决?

当 D0 (GPIO16) 设置为输出时,我在默认引脚(D1 和 D2)上使用 I2C 时遇到问题。GPIO16 连接到 mosfet 晶体管以驱动两个 LED。通常 GPIO16 运行良好——我可以打开和关闭 LED。问题出在 I2C 上。当我将 D0(GPIO16) 设置为输出时,I2C 接口停止工作。我无法与其他传感器通信。如果我再次将 D0 设置为输入,I2C 将再次工作。为什么 GPIO16 会干扰 I2C?如何解决这个问题?我的设备的架构在附件中。

回帖(1)

王彬

2024-4-9 16:49:50
GPIO16 在 ESP8266 中有一个特殊的功能,它是引脚复位时的默认状态。在 D1 mini pro 上,它被连接到一个晶体管上,因此当它设置为输出时,会影响 I2C 信号。解决这个问题的最简单的方法是使用一个引脚调整器 (level shifter),让 D0 和 I2C 总线之间使用不同的电平。另一个解决方法是在使用 I2C 总线时将 GPIO16 设置为输入模式,这会恢复正常的 I2C 通信。但是在使用 GPIO16 时,必须注意,避免与 I2C 总线冲突。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分