一、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*

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

串口绑定

Linux下串口操作的更多相关文章

  1. Linux下串口操作之数据拼接

    串口操作中,特别以非阻塞的方式读取和发送数据,做好进程之间的同步很重要.有时我们会发现这样一个问题,在进行read操作时,一次read不能获得一个完整的数据帧,这就好比你买了一个电脑,送货的先把显示器 ...

  2. Linux下串口编程入门

    简介: Linux操作系统从一开始就对串行口提供了很好的支持,本文就Linux下的串行口通讯编程进行简单的介绍. 串口简介  串行口是计算机一种常用的接口,具有连接线少,通讯简单,得到广泛的使用.常用 ...

  3. linux下串口通信与管理

    linux下的串口与windows有一些区别,下面将介绍一下linux下串口通信管理 查看是否支持USB串口: #lsmod | grep usbserial 如果没有信息:sudo apt-get ...

  4. Linux下串口編程遇到的接收数据错误及原因(0x0d,0x11接收错误)

    摘要:Linux下串口编程遇到的接收数据错误及原因 来源:https://dotblogs.com.tw/k/2012/07/24/73572 近日在调试串口的时候发现,另一设备向我ARM板的串口发送 ...

  5. linux下串口的阻塞和非阻塞操作

    有两个可以进行控制串口阻塞性(同时控制read和write):一个是在打开串口的时候,open函数是否带O_NDELAY:第二个是可以在打开串口之后通过fcntl()函数进行控制. 阻塞的定义: 对于 ...

  6. Linux下串口编制【转】

    串行口是计算机一种常用的接口,具有连接线少,通讯简单,得到广泛的使用.常用的串口是RS-232-C接口(又称EIA RS-232-C)它是在1970年由美国电子工业协会(EIA)联合贝尔系统.调制解调 ...

  7. Linux下串口编程【转】

    本文转载自:http://blog.csdn.net/w282529350/article/details/7378388 /************声明:本人只是见到这篇文章对我帮助很大才转载的,但 ...

  8. Linux下串口配置初步探寻

    一.在struct termios结构体中,对串口进行基本配置(如波特率设置,校验位和停止位设置 等). (一): struct termios   //串口的设置主要是设置struct termio ...

  9. liunx学习(一):linux下目录操作大全

    Linux C函数之文件及目录函数(全):http://blog.sina.com.cn/s/blog_695e489c01013ldd.html linux目录操作发:http://www.cnbl ...

随机推荐

  1. SQL Server 数据库启动过程(用户数据库加载过程的疑难杂症)

    前言 本篇主要是上一篇文章的补充篇,上一篇我们介绍了SQL Server服务启动过程所遇到的一些问题和解决方法,可点击查看,我们此篇主要介绍的是SQL Server启动过程中关于用户数据库加载的流程, ...

  2. BJFU-216-基于链式存储结构的图书信息表的修改

    #include<stdio.h> #include<stdlib.h> #define MAX 100 typedef struct Book{ double no; cha ...

  3. 微信小程序获取微信绑定的手机号

    怎么获取微信绑定手机号呢?我们授权登录的时候,我们只能获取微信登录人员的头像,昵称,性别之类的,而手机号需要二次授权才可以,那么获取手机号都需要哪些条件呢?来看官方文档 获取手机号 获取微信用户绑定的 ...

  4. CKEditor图片上传问题(默认安装情况下编辑器无法处理图片),通过Base64编码字符串解决

    准备做一个文章内容网站,网页编辑器采用CKEditor,第一次用,默认安装情况下,图片无法插入,提示没有定义上传适配器(adapter),错误码提示如下: 根据提示,在官网看到有两种途径:一使用CKE ...

  5. CentOS7安装Grafana(Yum)

    一.概述 Grafana是一个跨平台的开源的分析和可视化工具,可以通过将采集的数据查询然后可视化的展示,并及时通知. 其特点: 丰富的可视化显示插件,包括热图.折线图.饼图,表格等等. 多数据源,支持 ...

  6. python_并行与并发、多线程

    问题一: 计算机是如何执行程序指令的? 问题二: 计算机如何实现并发的? 轮询调度实现并发执行 程序1-8轮询完成,才再CPU上运行 问题三: 真正的并行需要依赖什么? 并行需要的核心条件 多进程实现 ...

  7. CentOS7安装MySQL(完整版)

    在CentOS中默认安装有MariaDB,这个是MySQL的分支,但为了需要,还是要在系统中安装MySQL,而且安装完成之后可以直接覆盖掉MariaDB. 1 下载并安装MySQL官方的 Yum Re ...

  8. ComPtr的介绍以及使用

    ComPtr是为COM而设计的智能指针.它支持WindowsRT,也支持传统Win32.相比ATL里的CComPtr类,它有了一些提升. ComPtr包含在Windows 8.x SDK and Wi ...

  9. 有关ajax跨域问题

    写在前面 JQuery ajax支持get方式的跨域,采用了jsonp来完成.完成跨域请求的有两种方式实现.一种是使用Jquery ajax最底层的Api实现跨域的请求,而另一种则是JQuery aj ...

  10. C语言知识点拾遗

    sleep() abort() fflush() getimeofday() sigaction() Linux 进程学习(四)------ sigaction 函数 malloc() 如何实现一个m ...