![Raspbian: Чтение USB-порта работает с перебоями](https://rvso.com/image/164706/Raspbian%3A%20%D0%A7%D1%82%D0%B5%D0%BD%D0%B8%D0%B5%20USB-%D0%BF%D0%BE%D1%80%D1%82%D0%B0%20%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D0%B5%D1%82%20%D1%81%20%D0%BF%D0%B5%D1%80%D0%B5%D0%B1%D0%BE%D1%8F%D0%BC%D0%B8.png)
У меня Raspberry Pi под управлением Linux - Raspbian.
Проблема в том, что я наблюдаю странное поведение при попытке чтения USB-порта. Оно дает непостоянные результаты.
Вчера вечером все работало, сегодня утром нет — тот же самый код.
dmesg | grep tty
возвращает-
[ 0.000301] console [tty1] enabled
[ 0.812585] 3f201000.serial: ttyAMA0 at MMIO 0x3f201000 (irq = 81, base_baud = 0) is a PL011 rev2
[ 0.814150] 3f215040.serial: ttyS0 at MMIO 0x0 (irq = 53, base_baud = 31250000) is a 16550
[ 4.867127] cdc_acm 1-1.5:1.0: ttyACM0: USB ACM device
Мое устройство находится в порту ttyACM0
.
Я могу подтвердить, что порт открыт, когда я проверил его с помощью ser.isOpen()
.
Когда я затем открываю терминал Python3, я запускаю следующее:
import serial
port = "ttyACM0"
ser = serial.Serial("/dev/%s" % port, 9600, timeout=0.5)
while True:
line = ser.readline()
print(line)
print(line.decode())
Вчера вечером то, что я писал, вернулось в порт.
Сегодня утром все возвращается:
b''
b''
b''
Я заменил USB-кабель и проверил, записывает ли устройство, подключенное к порту, данные.
Единственное, что я предполагаю, это что-то внутри Linux/Raspbian, но я не уверен.
Есть идеи, как это можно отладить дальше?