如何修复 MicroPython I2C 无数据
问题:
你已经配置了 MicroPython 的 I2C,类似这样(在我的情况下是在 ESP8266 上,但这适用于许多 MCU):
micropython_i2c_example.py
i2c = machine.I2C(-1, machine.Pin(5), machine.Pin(4))但你在总线上找不到任何设备:
micropython_i2c_scan.py
>>> i2c.scan()
[]解决方案
可能你忘记将引脚配置为上拉。I2C 需要上拉才能工作,许多 MCU(如 ESP8266)提供集成(弱)上拉支持。
micropython_i2c_pullup.py
p4 = machine.Pin(4, mode=machine.Pin.OUT, pull=machine.Pin.PULL_UP)
p5 = machine.Pin(5, mode=machine.Pin.OUT, pull=machine.Pin.PULL_UP)
i2c = machine.I2C(-1, p5, p4)
i2c.scan() # [47]你也可以通过使用万用表或示波器检查来验证:当 I2C 总线上没有通信时,电压应等于 MCU 的电源电压(通常为 3.3V 或 5V - 0V 表示缺少上拉或其他错误)。
Check out similar posts by category:
Electronics, MicroPython, Python
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow