十分钟教会你Ubantu下串口识别与串口别名

欢迎阅读此文章,本文章力求用最简单的解释和最保姆级的操作教会你如何完成。如果帮到您希望您能点赞收藏支持一下,让我们开始吧。 

1.为什么需要做串口别名

在Linux系统中,串口(serial port)是一种用于串行数据通信的接口,常用于连接计算机和外部设备(如传感器、物联网设备等)。为了方便使用和管理串口设备,可以通过设置串口别名(serial port alias)来简化串口设备的标识和访问。以下是一些设置串口别名的原因。

        

        1.避免串口调用不稳定:在Linux系统中,串口设备通常被识别为“/dev/ttyACM0”、“/dev/ttyACM1”、"/dev/ttyUSB0”、"/dev/ttyUSB1”等kernel名称。但是其后面的序号0、1、2等是不固定的,这会造成调用串口时的不稳定,需要经常手动调整调用时使用的kernel名称。

串口别名可以为一个串口设备设置稳定且唯一的kernel名称,方便稳定调用。

            2.区分不同功能:通过设置不同的串口别名可以区分不同功能的串口设备,便于用户识别和使用,例如设置"/dev/gps"、"/dev/imu"等别名来表示不同的传感器串口设备。

2.确认对应的串口设备相关信息

在这里推荐一个最简单操作的方法:动态插拔法

动态插拔法

  1. 断开设备与主控的连接
  2. 执行以下命令记录当前设备:
    ls /dev/tty* > before.txt
  3. 重新将设备连接主控
  4. 再次执行命令:
    ls /dev/tty* > after.txt
  5. 进行对比

    diff before.txt after.txt

 得到相关设备kernel名称,例如:/dev/ttyACM0

查看具体串口信息(以/dev/ttyACM0为例):

udevadm info /dev/ttyACM0

udevadm info /dev/ttyACM0 | grep -E "ID_VENDOR_ID|ID_MODEL_ID|ID_SERIAL_SHORT"

 得到厂商ID、产品ID、Kernel名称、串口号等具体信息。

其他常见相关串口设备的说明:

/dev/ttyACM0:常见于STM32的USB虚拟串口(需STM32启用USB CDC模式)。

/dev/ttyAMA0:树莓派板载硬件串口(GPIO 14-TXD、15-RXD)。

/dev/ttyUSB0:USB转串口设备(如使用CH340、CP2102模块)。

         

3.设置串口别名:

手动编辑文件:

sudo nano /etc/udev/rules.d/controller.rules #创建一个文件

写入以下内容(这里以ttyACM0为例子,rosusb是我把这个串口别名后的名称,其他串口的具体信息如MODE,GROUP等信息内容需要您根据自己的实际串口信息进行填写):

KERNEL=="ttyACM0", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="55d4", ATTRS{serial}=="5893009923", MODE:="0777", GROUP:="dialout", SYMLINK+="rosusb"

文件内容的含义是,为kernel名称含ttyACM、厂商ID为1a86、产品ID为55d4、串口号为5893009923的串口设备,赋予777权限、设置到dialout(串口)组,以及最重要的设置串口kernel别名为rosusb。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值