I²C 内部集成电路

使用I²C总线协议,可以通过 i2c 模块与连接到开发板上的设备通信。开发板可以同时连接多个从设备,且每个从设备都有一个唯一的地址识别,可以为设备固有或在其上进行配置。开发板则充当I²C主设备。

由于 此处 所述原因,我们采用7位寻址的方式。

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

你应该如何与设备进行通信,即发送什么字节以及如何解释响应,这取决于所讨论的设备,应在该设备的文档中单独作描述。

函数

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

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

警告

改变I²C引脚的默认值会造成加速度计和电子罗盘工作停止,这是因为它们和这些引脚是从内部相连接的。

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

使用7位寻址 addr 从设备读取 n 个字节。 如果 repeatTrue,则不会发送停止位。

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

使用7位寻址 addrbuf 中的字节写入设备, 如果 repeatTrue,则不会发送停止位。

连接

应该将设备的 SCL 引脚与micro:bit的引脚19相连,并将设备的 SDA 引脚与micro:bit的引脚20相连。还必须将设备的地线与micro:bit的地线(引脚 GND)相连。另外,可能需要外部电源或micro:bit为设备供电。

开发板的I²C线路上内置有上拉电阻,但使用特别长的导线或大量的设备时,你可能需要添加额外的上拉电阻,以确保无噪声通信。