I2C接口开发手册

概要

小龟小车定制了I2C访问语法,让各位小伙伴能更简单友好快速地使用I2C协议。

注意:如果I2C总线使用默认100K速率时,则以下API都可以直接使用,无需先执行car.i2c.open初始化总线。

API

car.i2c.write(i2c_address:int, [register:int,] data:Any)->bool

向指定的I2C地址发送写指令和数据。

可以省略register仅两个参数。

参数data支持三种类型:bytes、int、list。 

注意:如果在不调用car.i2c.open的情况下,直接调用本函数,则会以100K的默认速率初始化I2C总线。

#往地址为32的设备写入0xff,0xff两个字节的数据
car.i2c.write(32, b"\xff\xff")

#往地址为32的设备写入0xff一个字节的数据
car.i2c.write(32, 0xff)

#往地址为32的设备写入0xff,0xff两个字节的数据
car.i2c.write(32, [0x11, 0x22])

#往地址为32的设备的寄存器15写入0xff一个字节的数据
car.i2c.write(32, 15, 0xff)

参数:


car.i2c.read(i2c_address:int, [register:int,] count:int=1)->bytes

从指定地址的设备读取数据。

可以省略register仅两个参数。

#从地址为32的设备读取一个字节数据
car.i2c.read(32)
#结果:b"\xCF"

#从地址为32的设备读取两个字节数据
car.i2c.read(32, count=2)
#结果:b"\xCF\xD9"

#从地址为32的设备的15寄存器地址读取一个字节数据
car.i2c.read(32, 15)
#结果:b"\xCF"

参数:

car.i2c.open(clock_speed:int=100000)->bool

以指定速率初始化I2C总线,默认速率为100K。

注意:如果期望100K速率的场合,可以不用调用该函数,直接在调用write/read的时候,系统会自动以该速率初始化总线。

#以默认速率初始化I2C总线
car.i2c.open()
#结果:True

#以400K速率初始化I2C总线
car.i2c.open(400000)
#结果:True

参数:

car.i2c.close()

关闭I2C总线。

#关闭I2C总线
car.i2c.close()

car.i2c.scan()

扫描获取I2C总线上的所有设备地址。

#关闭I2C总线
car.i2c.scan()
#结果:[12,60,78]