ubuntu下绑定串口

摘要:
如何将设备绑定到特定的usb串行端口udev是通过在内核生成的设备名称中添加别名来保持统一的设备名称,而不管设备连接的顺序如何。通过lsusb命令,您可以查看连接到外部usb的所有接口设备的描述列表,并获取idproduct和idVENDOR的值以供后续绑定。

查看有哪些设备连接在你的电脑上

lsusb

得到如图:

ubuntu下绑定串口第1张

查看usb串口上连接的信息,得到不一样的信息

dmesg | grep ttyS*

ubuntu下绑定串口第2张

我使用了一个usb扩展器,这边可以看到,被连接在ttyUSB0上的就是我的usb扩展器,我在上面连接了3个外接设备,都是被连接在ttyUSB0上。

如何绑定设备到具体的usb串口

udev 是通过内核产生设备名增加别名的方式来达到 不管设备连接的顺序而维持一个统一的设备名。内核通常会产生自定义的设备名 如sda1 sdb1等

,但是udev可以通过设备的其他信息如总线 ,生产商等不同来区分不同的硬件设备。在/etc的 目录下。

例如 :ubuntu内核中,产生sda 设备名,可以通过制定 udev规则,让udev 除了产生/dev/sda/ 设备文件外, 另外创建 一个符号链接叫 /dev/name ,这样在ros串口处理的程序中,就 可以使用 产生的新的 设备名。

通过lsusb 命令可以查看到所有外接usb的接口设备的描述列表,可以得到id product和id VENDOR的数值,来进行后续的绑定。ls /dev 可以查看所有 外接串口设备的名字列表。

首先 ,所有制定的udev 规则最终 会在 /etc/ udev /rule.d 这个文件夹下面 。

通过芯片的特定码,来产生软链接别名

可以一个脚本如下:

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

绑定 1a86 7523 的串口设备, 会在/etc/udev/rule.d 下 产生 相应的 规则文件,ttyUSB产生新的别名即 dashgo。

---

使修改生效

sudo udevadm trigger

察看绑定是否成功

ls -l /dev/

看看里面是否存在一个叫做dashgo的硬件

如果有的话,那么ros中通信协议的时候硬件名称就可以写上dashgo来代替ttyUSB0等等。

如果想要打开串口时不需要root权限,创建文件/etc/udev/rules.d/70-ttyusb.rules,写入:

KERNEL=="ttyUSB[0-9]*",MODE="0666"

免责声明:文章转载自《ubuntu下绑定串口》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇高并发处理(二)图片服务器分离分布式一致性算法--Raft下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

【Arduino】使用C#实现Arduino与电脑进行串行通讯

在给Arduino编程的时候,因为没有调试工具,经常要通过使用串口通讯的方式调用Serial.print和Serial.println输出Arduino运行过程中的相关信息,然后在电脑上用Arduino IDE的Serial Monitor来查看print出来的信息。Serial Monitor不仅可以接受Arduino发送到电脑的数据,还可以向Ardui...

MODBUS 数据格式相关记录

串口通讯格式:   串口通讯可以分为同步通讯(Synchronous)和异步通讯(Asynchronous)。同步通讯时有一根时钟信号,数据格式中没有起始位和停止位;异步通讯中没有时钟信号,数据格式中包含起始位和停止位。此次记录内容为使用STM32的异步通信配置学习。   串口异步传输一帧数据需要多个位,这些位的描述为 起始位+数据位+校验位+停止位。起始...

CC2540 低功耗串口, POWER_SAVING 模式 下 串口 0 的使用

低功耗 模式 下 使用 串口 ,  因为 PM2 或者 PM3 状态下  32M晶振 是不工作 的,根据手册得知没有32M晶振, 串口是不能工作的,但是可以使用 外部中断,因此,我把  串口的接收引脚设置为外部中断,这样 来唤醒BLE。 这样就牵扯到 串口 和 外设中断  的 来回切换  ,具体操作方法如下: 协议栈版本: ble_sdk_1.4.2.2 ...

Java串口编程学习2-读串口

如果读串口出现乱码,则: 1.可能是波特率设置不对 2.可能是数据编码格式不对 import gnu.io.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowA...

第4步:创建RAC共享磁盘组

第4步:创建RAC共享磁盘组 方法一:使用asmdevices(推荐使用,但不适用EMC Powerpath) (1)查看硬盘的SCSI号,两个机器认到的/dev/sda对应在实际的物理盘可能不是一块,但scsi号肯定是完全一致的。 代码1 [root@sgdb1 ~]# scsi_id -g -u -d /dev/sdc 36000c294cea6...

Linux设置串口波特率等参数

  转自 http://blog.csdn.net/zoomdy/article/details/50921336 mingdu.zheng at gmail dot com stty查看串口参数 stty -F /dev/ttyS0 -a 1 1 查看串口1(/dev/ttyS0)当前的参数,包括波特率、数据位等。 stty设置串口参数 stty -...