I²C

i2c 模块允许您使用 I²C 总线协议与连接到您的电路板的设备进行通信。可以同时连接多个从设备,每个从设备都有自己唯一的地址,该地址要么固定在设备上,要么配置在设备上。您的电路板充当 I²C 主机。

由于 此处所述的原因,我们对设备使用 7 位寻址 。

这可能与其他 micro:bit 相关解决方案不同。

您应该如何准确地与设备通信,即发送哪些字节以及如何解释响应,取决于相关设备,并且应在该设备的文档中单独描述。

职能

microbit.i2c.init(freq=100000, sda=pin20, scl=pin19)

使用 freq指定的sdascl引脚上的指定时钟频率重新初始化外设。

警告

在 micro:bit V1 板上,更改 I²C 引脚的默认值将使加速度计和指南针停止工​​作,因为它们在内部连接到这些引脚。此警告不适用于 micro:bit的 V2版本,因为它具有 用于运动传感器和边缘连接器的单独 I²C 线

microbit.i2c.scan()

扫描总线以查找设备。返回与响应扫描的那些设备对应的 7 位地址列表。

microbit.i2c.read(addr, n, repeat=False)

n 从具有 7 位地址的设备读取字节addr。如果repeatTrue,则不会发送停止位。

microbit.i2c.write(addr, buf, repeat=False)

将字节从 buf 7 位地址写入设备 addr。如果 repeatTrue,则不会发送停止位。

连接

您应该将设备的 SCL引脚连接到 micro:bit 引脚 19,将设备的SDA 引脚连接到 micro:bit 引脚 20。您还必须将设备的地连接到 micro:bit 地(引脚GND)。您可能需要使用外部电源或 micro:bit 为设备供电。

电路板的 I²C 线上有内部上拉电阻,但对于特别长的电线或大量设备,您可能需要添加额外的上拉电阻,以确保无噪声通信。