如何从串口转USB设备读取数据?
How to read data from serial-to-usb device?
我有一个传感器设备使用串口转 USB 电缆连接到我的 Ubuntu 20 机器。我知道要从中流式传输数据,我需要 运行 以下命令:
- 用
sudo -I
输入root。
- 使用
stty -F /dev/ttyACM0 9600 cs8 -cstopb -parenb
设置虚拟COM端口。
- 向设备发送命令以使用
echo -e "some_string" > /dev/ttyACM0
启动数据流。
- 使用
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
只有 returns 很多```字符。请注意,当设备被拔出时,这将停止。
我设法让它工作了。命令是:
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 "uud1\r" > /dev/ttyUSB0
screen /dev/ttyUSB0 9600
我有一个传感器设备使用串口转 USB 电缆连接到我的 Ubuntu 20 机器。我知道要从中流式传输数据,我需要 运行 以下命令:
- 用
sudo -I
输入root。 - 使用
stty -F /dev/ttyACM0 9600 cs8 -cstopb -parenb
设置虚拟COM端口。 - 向设备发送命令以使用
echo -e "some_string" > /dev/ttyACM0
启动数据流。 - 使用
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
只有 returns 很多```字符。请注意,当设备被拔出时,这将停止。
我设法让它工作了。命令是:
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 "uud1\r" > /dev/ttyUSB0
screen /dev/ttyUSB0 9600