#linux #bash #serial
Linux, Raspbian 8. В USB воткнут преобразователь USB-CAN. Появляется в системе как /dev/ttyUSB0 Сам преобразователь и устройство за ним точно рабочие. Требуется послать в порт 4 байта, подождать 200мс и получить ответ в 4 байта. попробовал вот так: #!/bin/bash PORT="/dev/ttyUSB0" stty -F $PORT 9600 printf '\x0b\x00\x06\x80' > $PORT sleep 0.2 read -rn 4 data < $PORT echo $data На строке с read все зависает. Видимо не получает не каких данных в ответ. Пробовал менять на 1 входящий символ. Но похоже в ответ полная тишина. Правильно ли я вообще работаю с портом? В какую сторону копать? UPDATE 10.03 что-то нахимичил теперь все что, отправляю в порт прилетает обратно. Именно то, что отправил но не то что ожидаю от оборудования еще странная вещь $ stty -F /dev/ttyUSB0 stty: /dev/ttyUSB0: Неприменимый к данному устройству ioctl $ setserial /dev/ttyUSB0 Cannot get serial info: Inappropriate ioctl for device
Ответы
Ответ 1
Для передачи двоичных данных у меня работает следующая настройка порта: stty raw -echo -onlcr -iexten 9600 -F /dev/ttyUSB0 Для usb-serial-преобразователя имя устройства после очередного переподключения иногда может непредсказуемо поменяться с ttyUSB0 на ttyUSB1, ttyUSB2 и т.д.
Комментариев нет:
Отправить комментарий