Linux I2C 的使用
更新时间 | 负责人 | 内容 | 备注 |
---|---|---|---|
2022年1月4日 | Rui | 初次编写文档 | --- |
2022年1月8日 | Rui | 修改文档的编写方式 | 使用 Jupyter notebook 进行编写文档 |
2022年1月18日 | Rui | 修改文档 | 测试了 MaixII-Dock MaixPy3 IDE 0.4.0 |
简介
I2C 是一种串行通信总线,在总线上可以挂多个主设备,多个从设备,可以和单片机、I2C 传感器等进行通讯
目前 MaixPy3 所封装的 I2C 只能设置为主机模式
准备
使用之前需要将硬件连接好,将 SCL 和 SDA 的两个数据线连接到开发板上的对应的 SCL 和 SDA 的管脚上。通过查看开发板上的 管脚定义图 ,确定所接上的 I2C 总线的序号,一般是以 I2C-x 或者是 SCL.x、SDA.x 的形式标示,x为总线序号。
使用 MaixSense 的 I2C 的需要外接一个4.7k的电阻,用来过滤数据
连接
扫描设备
查看总线上的设备地址(返回十进制的数据)
In [1]:
from maix import i2c
print(i2c.scan())
[ rpyc-kernel ]( running at Wed Jan 5 17:22:45 2022 )
[38]
实例化设备
/dev/i2c-x
是指所使用的 I2C 总线序号
In [1]:
from maix import i2c
i2c = i2c.I2C('/dev/i2c-2', 0x26)
[ rpyc-kernel ]( running at Wed Jan 5 17:22:49 2022 )
读取设备寄存器信息
In [1]:
from maix import i2c
i2c = i2c.I2C('/dev/i2c-2', 0x26)
print(i2c.read(0x1, 1))
[ rpyc-kernel ]( running at Wed Jan 5 17:24:48 2022 )
bytearray(b'\x13')
了解更多
MaixPy3 中的 i2c 是基于 libi2c 进行封装的,想要了解更多可以查看m2dock i2c 的开发记录,也可以查阅 libi2c 的实现。