第一步:打开 i2c 的配置
香橙派(OrangePi)开启i2c的方法是在 /boot/orangepiEnv.txt 中设置 overlays=i2c0 i2c1 就可以同时打开 i2c0 和 i2c1 的配置, 也可以只打开1个。
重启香橙派后生效。
overlays=i2c0 i2c1
其它Linux系统的配置方法我就不知道了。
第二步:安装i2c-tools
终端命令如下:
sudo apt update
sudo apt install i2c-tools
安装完,在板上i2c接口随便连接一个i2c设备,在终端输入命令:
sudo i2cdetect -y 0
(其中 0 表示 i2c0,若是i2c1 需要修改为 i2cdetect -y 1)
如果能检测到连接的 i2c 设备的地址,就说明 i2c 能正常使用,并且连接设备成功
如下图,我的i2c设备地址是0x68

第三步:安装smbus2
终端命令如下:
sudo pip install smbus2
安装成功提示:
Collecting smbus2
Downloading smbus2-0.4.2-py2.py3-none-any.whl (11 kB)
Installing collected packages: smbus2
Successfully installed smbus2-0.4.2
若安装失败,到官网下载安装包:https://pypi.org/project/smbus2/#files
下载页面选择smbus2-0.4.2-py2.py3-none-any.whl下载,
然后复制.whl文件到Linux(香橙派)
在.whl文件所在目录下,终端执行:
sudo pip install smbus2-0.4.2-py2.py3-none-any.whl
第四步:测试
Python的smbus2控制i2c非常简单,只要import smbus2并实例化SMBus对象之后,直接调用其读写函数就可以了。
我这边连接的设备是DS3231M,一个时钟模块,设备地址是0x68。
Python代码如下:
# I2C_test.py
最低0.47元/天 解锁文章
2374

被折叠的 条评论
为什么被折叠?



