[英]Transmit consecutively using I2C on Raspberry Pi, python smbus
[英]How to list I2C address on Raspberry Pi using Python?
我的目标是能够在我的程序运行时立即看到可用的i2c地址列表。 当前程序可以通过以下代码通过用户输入列出地址:
while True:
if input.upper().startswith("LIST_ADDR"):
devices = device.list_i2c_devices()
for i in range(len (devices)):
print devices[i]
我仅使用底部3行就可以使用该代码,但是现在我有5个i2c设备连接到了Pi。 仅使用三行代码就给了我IndexError:超出范围的字符串索引。 为此,我可以继续调用该程序大约四到五次,然后它将正常运行。 我只是想知道是否有更好的方法来实现我正在寻找的程序而不会出现错误。
我对编码还是很陌生,所以在此先感谢您的耐心配合。
如果您只想用树莓派测试I2C连接,则可以使用此代码,它可以帮助您一次性检测所有设备的所有I2C地址。
import os
import subprocess
import time
p = subprocess.Popen(['i2cdetect', '-y','1'],stdout=subprocess.PIPE,)
#cmdout = str(p.communicate())
for i in range(0,9):
line = str(p.stdout.readline())
print(line)
基本上我通过使用此过程在Python中执行linux命令
希望这会帮到你
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.