ubuntu上绑定串口设备

使用串口设备的时候系统会随机分配设备名称,为了使用串口通信的时候不改代码,可以对其进行绑定。
查看自己设备的dVendoridProduct

$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 005: ID 0bda:565a Realtek Semiconductor Corp.  Bus 001 Device 004: ID 27c6:538c   
Bus 001 Device 003: ID 248a:8367  
Bus 001 Device 006: ID 8087:0aaa Intel Corp.  
Bus 001 Device 016: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

我们可以看到ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter Bus,即dVendor1a86idProduct7523

创建一个脚本

$ touch usb_rename.sh
$ gedit usb_rename.sh

在文件中添加如下内容

echo  'KERNEL=="ttyUSB*", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="2303", MODE:="7523", GROUP:="dialout",  SYMLINK+="stm32base"' >/etc/udev/rules.d/usb_rename.rules

service udev reload
sleep 2
service udev restart

运行脚本

$ sudo sh usb_rename.sh

最后
将设备拔下在插上,就可以查看效果

$ ls -l /dev |grep ttyUSB
lrwxrwxrwx  1 root root           7 4月  28 12:22 **stm32base -> ttyUSB0**
crwxrwxrwx  1 root dialout 188,   0 4月  28 12:22 ttyUSB0

在ros中使用设备名称

rosrun rosserial_python serial_node.py /dev/stm32base

另外还有
很多厂商由于特殊原因,在串口芯片上,写入的设备号的名字 都是一样的,没有办法区分。所以要用到另外一个办法,就是指定的硬件端口的名称,即从这个usb口插入的设备名称会固定。

首先查看设备的具体信息

$ udevadm info --attribute-walk --name=/dev/ttyUSB0
 looking at device '/devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0/ttyUSB0':
	KERNEL=="ttyUSB0"
	SUBSYSTEM=="usb-serial"
	DRIVER=="ch341-uart"
	ATTR{port_number}=="0"
	
looking at parent device '/devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0':
	KERNELS=="1-1:1.0"
	SUBSYSTEMS=="usb"
	DRIVERS=="ch341"
	ATTRS{authorized}== "1"  
	ATTRS{bAlternateSetting}==" 0"
	ATTRS{bInterfaceClass}=="ff"
	ATTRS{bInterfaceNumber}=="00"
	ATTRS{bInterfaceProtocol}=="02"
	ATTRS{bInterfaceSubClass}=="01"
	ATTRS{bNumEndpoints}=="03"
	ATTRS{supports_autosuspend}=="1"

可以看到KERNELS=="1-1:1.0",将上文脚本中的KERNEL=="ttyUSB*"替换为KERNELS=="1-1:1.0"即可

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值