zoukankan      html  css  js  c++  java
  • 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*

    我使用了一个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
    
    
    <a href="https://blog.csdn.net/csdn__dongdong/article/details/83105020" target='_blank'>串口绑定</a>
  • 相关阅读:
    POJ-2253 Frogger dijsktra查找间隔最小的路径
    LightOJ-1282 Leading and Trailing 模算数 快速幂 对数的用法
    LightOJ-1341 Aladdin and the Flying Carpet 分解质因数(注意对大素数的优化)
    UVA-10200 Prime Time 素数(注意除法精度)
    POJ-2142 The Balance 扩展欧几里德(+绝对值和最小化)
    ArchLinux 音乐播放客户端ncmpcpp和服务端mpd的配置
    [笔记-统计学习方法]感知机模型(perceptron) 原理与实现
    [Bug]Python3.x AttributeError: libtest.so: undefined symbol: fact
    [Bug]C++ XXX:undefined reference to "xxx"
    ip代理池的爬虫编写、验证和维护
  • 原文地址:https://www.cnblogs.com/shiqi17/p/10799945.html
Copyright © 2011-2022 走看看