如何从串行到usb设备读取数据?



我有一个传感器设备连接到我的Ubuntu 20机器使用串行到usb电缆。我明白,要从它流数据,我需要运行以下命令:

  1. 使用sudo -I输入root。
  2. 使用stty -F /dev/ttyACM0 9600 cs8 -cstopb -parenb设置虚拟COM端口
  3. 向设备发送命令,通过echo -e "some_string" > /dev/ttyACM0发起数据流。
  4. cat < /dev/ttyACM0流数据

但是,我不能确定我的设备连接为/dev/ttyACM0。我该如何设置呢?目前它的路径是/dev/bus/usb/001/005,尽管每次设备插入时最后一个数字都会改变。

作为对下面评论的回应,以下是我断开设备并运行dmesg | tail(我编辑了一些实际值)时得到的输出:

[89092.291151] usb 1-1: USB disconnect, device number 11
[89100.310893] usb 1-1: new full-speed USB device number 12 using xhci_hcd
[89100.467562] usb 1-1: New USB device found, idVendor=SOME_ID, idProduct=SOME_PRODUCT, bcdDevice=SOME_BCD_DEVICE
[89100.467565] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[89100.467567] usb 1-1: Product: SOME_PRODUCT
[89100.467569] usb 1-1: Manufacturer: SOME_MANUFACTURER
编辑:我刚刚发现我可以使用sudo modprobe usbserial vendor=SOME_ID product=SOME_PRODUCT使ttyUSB0可用。但是,将其插入上述命令并运行screen /dev/ttyUSB0只会返回大量' ' '字符。请注意,当设备拔出时,此操作将停止。

我设法使它工作。命令是:

sudo -i
rmmod ftdi_sio
rmmod usbserial
modprobe ftdi-sio
echo -n VENDOR_ID PRODUCT_ID | sudo tee /sys/bus/usb-serial/drivers/ftdi_sio/new_id
stty -F /dev/ttyUSB0 9600 cs8 -cstopb -parenb
echo -e "uud1r" > /dev/ttyUSB0
screen /dev/ttyUSB0 9600

最新更新