我有几个 Arduino 设备,连接到 linux box。它们之间唯一的区别是它们在连接时的回答。它们无法通过lsusb
命令来区分。虽然我不知道如何将输出转换为lsusb
名称ttyUSB?
,但我无论如何都无法找到我的设备:
$ lsusb
Bus 002 Device 004: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter
Bus 002 Device 006: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter
...
但如果我通过 连接到设备cu
,我可以区分它们:
$ cu -l /dev/ttyUSB0 -s 9600
Connected.
OK
~.
Disconnected.
$ cu -l /dev/ttyUSB1 -s 9600
Connected.
Relay module awaiting commands
Command 'help' is for help
~.
Disconnected.
我可以通过cu
bash 脚本或通过任何其他方式获取此类输出,从而能够确定设备吗?
无法通过串口区分 Arduino
# udevadm info -a -n /dev/ttyUSB0 | grep '{serial}'
ATTRS{serial}=="0000:00:1d.0"
# udevadm info -a -n /dev/ttyUSB1 | grep '{serial}'
ATTRS{serial}=="0000:00:1d.0"
答案1
我是这样做的:
devices="/dev/ttyUSB0 /dev/ttyUSB1"
for device in $devices
do
if timeout 10s cat $device | grep -q OK
then
...