1.将串口设备插入USB口,通过lsusb查看端口信息。例如:
ID 1a86:7523 表示usb设备的ID(这个ID由芯片制造商设置,可以唯一表示该设备)
1a86 usb_device_descriptor.idVendor
7523 usb_device_descriptor.idProduct
2.在/etc/udev/rules.d/下创建任意名称的规则配置文件,如:usb.rules。
KERNEL=="ttyUSB*", ATTRS{idVendor}=="067b", ATTRS{idProduct}=="2303", MODE:="0777", SYMLINK+="user_uart" KERNEL=="ttyUSB*", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", MODE:="0777", SYMLINK+="mcu_uart"
意思就是匹配sys中内核名为ttyUSB*的设备,属性匹配依据生产商编号idVendor和产品号idProduct, 设定读写权限为0777, 符号链接名为user_uart-----PL2303串口转USB, mcu_uart----CH340串口转USB。
idVendor和idProduct由 lsusb -vvv 命令查看。
保存退出后udev规则就生效了,重新拔插两个串口设备,就可以看到/dev/user_uart指向/dev/ttyUSB0, /dev/mcu_uart指向/dev/ttyUSB1. 这样以来,我只要在程序里打开/dev/user_uart或/dev/mcu_uart就可以一直准确的打开指定的串口设备了。
原文:https://www.cnblogs.com/long5683/p/11144420.html