为什么linux可以串口命令控制,Linux下串口操作

一、Linux下访问串口

串口位置:/dev/tty**

在Linux系统中,串口设备是通过串口终端设备文件来访问的,也就是通过访问/dev/ttyS0、/dev/ttyS1、/dev/ttyS2、/dev/ttyS3 、/dev/ttyUSB* 这是USB转串口。这些设备文件实现对串口的访问。

1.1.2 查看串口

ls命令:

ls -l /dev/tty*

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

lsusb

产看串口个数以及对应的tty:

dmesg | grep ttyS*

20190501160742149985.png

~~~

我使用了一个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"

查看串口的驱动信息

cat /proc/tty/driver/serial

原文:https://www.cnblogs.com/shiqi17/p/10799945.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值