I2C用户总线接口(Python)

概要

小龟小车支持一路用户I2C总线,默认是管脚SCL、SDA,小伙伴也可以自由指定其它管脚。

主控板背面金手指处的I2C总线是系统总线,相关的使用方法请参考系统I2C总线接口章节



打开总线(open)

语法:

说明:

以指定的参数打开用户I2C总线。

如果在使用读写接口前,没有打开用户I2C总线,则小龟小车会以默认参数自动打开总线。

默认速率100kbps,默认SCL管脚为SCL,默认SDA管脚为SDA。


参数:

范例:

#以400kbps速率,SCL对应SCL,SDA对应SDA,方式打开用户总线car.i2c.open(400000, SCL, SDA)




扫描总线(scan)

语法:

说明:

扫描当前用户总线,并返回发现的传感器地址。

大部分传感器是一个传感器一个地址,但也有不少传感器会存在多个地址


参数:

范例:

#扫描用户I2C总线car.i2c.scan()#返回 [0, 11, 59]




读取数据(read)

语法:

说明:

从指定地址的传感器的指定内部数据寄存器位置读入指定数量的数据。

参数:

范例:

#读取地址为109的传感器的内部数据寄存器位置为11处1个字节数据car.i2c.read(109, 11, 1)




不指定寄存器读取数据(read_raw)

语法:

说明:

从指定地址的传感器的读入指定数量的数据。

参数:

范例:

#读取地址为109的传感器的1个字节数据
car.i2c.read(109, 1)




写入数据(write)

语法:

说明:

向指定地址的传感器内部指定位置的数据寄存器写入指定长度的数据。

参数:

范例:

#向地址为105的传感器的第57个内部数据寄存器写入1个字节的数据19car.i2c.write(105, 57, [19])




不指定寄存器写入数据(write_raw)

语法:

说明:

向指定地址的传感器写入指定长度的数据。

参数:

范例:

#向地址为105的传感器写入2个字节的数据19和36
car.i2c.write(105, [19, 36])