Я борюсь с установлением связи с периферийным устройством через USB-порт на моем Linux здесь (fedora 20/64bit), и я, вероятно, пропускаю какой-то шаг:
Я подключаю устройство, правильно отображается порт /dev /ttyUSBx. Я использую python /pySerial do, чтобы управлять им, и вместо ответов, которые устройство должно дать мне, все, что я могу прочитать с последовательного порта, это один нулевой байт ("\x00") каждый раз, когда соединение сбрасывается.
Я пробовал разные адаптеры последовательного интерфейса к USB, разные последовательные кабели и даже разные периферийные устройства (и модели) на другом конце. С программами с закрытым исходным кодом на базе Windows, которые взаимодействуют с периферийным устройством, все, кажется, работает хорошо.
Вот типичный сеанс того, что я пытаюсь:
>>> import serial
>>> s = serial.Serial("/dev/ttyUSB0", timeout=.1)
>>>
>>> s.flush()
>>> s.write("(&S)")
4
>>> s.read()
'\x00'
>>>
(вместо «\x00» здесь я должен получить в качестве ответа строку длиной в несколько символов. (Устройство правильно отвечает на тот же протокол по TCP/IP).
Я пропустил какой-то шаг настройки последовательного порта? Вот мой setserial выход для него:
/dev/ttyUSB0, UART: unknown, Port: 0x0000, IRQ: 0, Flags: low_latency
И конфигурация Pyserial:
Serial<id=0x7f525c5daf10, open=True>(port='/dev/ttyUSB0', baudrate=9600, bytesize=8, parity='N', stopbits=1, timeout=0.1, xonxoff=False, rtscts=False, dsrdtr=False)
(эти параметры те же, что показаны на последовательном порте, настроенном в Windows, где работает устройство, - но на время ожидания)