USB设备绑定固定端口
电脑每次关机重启,串口号都会变。例如电脑重启之后,USB串口会从/dev/ttyUSB1变成/dev/ttyUSB0,但是我的程序又写死了串口路径,这就导致重启或者拔插之后,经常会无法正常获取数据。
这时候,端口绑定就派上用场了。
-
查看USB设备命令:
lsusb
终端会返回一堆设备,可以插拔两次,判断是哪一个。Lin@Lin:~$ lsusb Bus 001 Device 010: ID 10c4:ea60 Cygnal Integrated Products, Inc. CP210x UART Bridge / myAVR mySmartUSB lightHFI B9 IMU是这个Bus 001 Device 011: ID 10c4:ea60 Cygnal Integrated Products, Inc. CP210x UART Bridge / myAVR mySmartUSB light
重点是10c4:ea60
-
进入驱动设备管理的文件夹命令:
cd /etc/udev/rules.d -
添加并修改文件
-
有vim的话:
sudo vim usb_imu.rules -
没有vim的话:
sudo gedit usb_imu.rules -
将
KERNEL=="ttyUSB*", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", MODE:="0777", SYMLINK+="ttyUSB_IMU"写入文件,保存退出。
同理,我们也可以将其他USB设备绑定串口号,只要注意
ATTRS{idVendor}、ATTRS{idProduct}和SYMLINK的修改即可.例如,我将IMU设备绑定了
ttyUSB_IMU。 -
-
重启服务:
-
service udev reload -
service udev restart -
拔插USB设备。
这样以后无论是插拔还是重启,只要是这个设备,就会绑定
ttyUSB_IMU这个串口号。 -
电脑关机重启或拔插USB设备后,串口号会改变,导致程序无法正常获取数据。可通过查看USB设备命令判断设备,进入驱动设备管理文件夹添加并修改文件,将设备绑定串口号,有vim或无vim操作不同,最后重启服务,实现设备与串口号的固定绑定。

1万+

被折叠的 条评论
为什么被折叠?



