I2C系统总线接口(Python)
概要
小龟小车主控板设计了一路用于主控板板载芯片通讯的I2C总线,这路I2C系统总线会在主控板开机后,自动加载。
在主控板背面用于兼容其它创客产品用的金手指区,使用的也是I2C系统总线。因此存在部分扩展外设会和主控板板载设备地址冲突的情况。
主控板板载设备已经使用的地址:
读取数据(read)
语法:
- car.hw.i2csys.read(addr:int, reg:int)
- car.hw.i2csys.read(addr:int, reg:int, count:int)
说明:
从指定地址的传感器的指定内部数据寄存器位置读入指定数量的数据。
参数:
- addr 需要读取的传感器I2C地址。
- reg 需要读取的传感器内部数据寄存器地址。
- count 需要读取的数据个数,默认1字节。
- 返回值 读到的数据
范例:
不指定寄存器读取数据(read_raw)
语法:
- car.hw.i2csys.read_raw(addr:int)
- car.hw.i2csys.read_raw(addr:int, count:int)
说明:
从指定地址的传感器的读入指定数量的数据。
参数:
- addr 需要读取的传感器I2C地址。
- count 需要读取的数据个数,默认1字节。
- 返回值 读到的数据
范例:
扫描总线(scan)
语法:
- car.hw.i2csys.scan()
说明:
扫描当前用户总线,并返回发现的传感器地址。
大部分传感器是一个传感器一个地址,但也有不少传感器会存在多个地址
参数:
- 返回值 发现的传感器地址列表
范例:
写入数据(write)
语法:
- car.hw.i2csys.write(add:int, reg:int, data:bytes)
说明:
向指定地址的传感器内部指定位置的数据寄存器写入指定长度的数据。
参数:
- addr 需要写入的传感器I2C地址。
- reg 需要写入的传感器内部数据寄存器地址。
- data 需要写入的数据。
- 返回值 处理是否成功
范例:
不指定寄存器写入数据(write_raw)
语法:
- car.hw.i2csys.write(addr:int, reg:int)
- car.hw.i2csys.write(add:int, reg:int, count:int)
说明:
向指定地址的传感器写入指定长度的数据。
参数:
- addr 需要写入的传感器I2C地址。
- reg 需要写入的传感器内部数据寄存器地址。
- count 需要写入的数据个数,默认1字节。
- 返回值 处理是否成功
范例:
#向地址为105的传感器写入2个字节的数据19和36
car.i2c.write(105, [19, 36])