Как составить список адресов I2C на Raspberry Pi, используя Python? - PullRequest
0 голосов
/ 04 октября 2018

Моя цель - увидеть список доступных адресов i2c сразу после запуска моей программы.Текущая программа имеет возможность перечислять адреса с помощью ввода пользователем с помощью следующего кода:

while True:  
    if input.upper().startswith("LIST_ADDR"):  
        devices = device.list_i2c_devices()  
        for i in range(len (devices)):
            print devices[i]  

Я смог использовать код только с тремя нижними строками, однако теперь у меня есть пять устройств i2c.в настоящее время прикреплен к пи.Использование только трех строк кода дает мне на IndexError: строковый индекс вне диапазона.Для этого я могу продолжать вызывать программу около четырех или пяти раз, и тогда она будет работать без проблем.Мне просто было интересно, есть ли лучший способ добиться того, что я ищу для программы, без ошибки.

Я все еще новичок в кодировании, поэтому заранее благодарю за терпение.

1 Ответ

0 голосов
/ 15 октября 2018

Если вы просто хотите проверить соединение I2C с Raspberry Pi, то вы можете использовать этот код, который поможет вам обнаружить все адреса 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)

В основном явыполнение команды linux в Python с помощью этого процесса

Надеюсь, это поможет вам

...