当前位置: 首页 > news >正文

ros2--串口通信

开源串口驱动库

链接

系统的串口

查看系统串口设备

ls /dev/ttyS* /dev/ttyUSB* /dev/ttyACM*

eg:

ls /dev/ttyS*
/dev/ttyS0   /dev/ttyS11  /dev/ttyS14  /dev/ttyS17  /dev/ttyS2   /dev/ttyS22  /dev/ttyS25  /dev/ttyS28  /dev/ttyS30  /dev/ttyS5  /dev/ttyS8
/dev/ttyS1   /dev/ttyS12  /dev/ttyS15  /dev/ttyS18  /dev/ttyS20  /dev/ttyS23  /dev/ttyS26  /dev/ttyS29  /dev/ttyS31  /dev/ttyS6  /dev/ttyS9
/dev/ttyS10  /dev/ttyS13  /dev/ttyS16  /dev/ttyS19  /dev/ttyS21  /dev/ttyS24  /dev/ttyS27  /dev/ttyS3   /dev/ttyS4   /dev/ttyS7

你的系统列出了多个 ttyS* 设备,但这并不代表你的电脑真的有这么多物理串口。这是 Linux 内核的常见行为,原因如下:

  1. 内核预分配机制
    Linux 内核会预先创建一组 ttyS* 设备节点(通常 0-31),即使没有对应的物理硬件。这是为了:

    • 兼容可能存在的硬件(如多串口卡)

    • 避免动态创建设备节点的开销

如何确认哪些是真实可用的串口?

# 查看物理串口信息
sudo dmesg | grep ttyS

输出示例(真实串口会显示详细信息):

[    0.123456] serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
[    1.654321] serial8250: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
  • 只有显示具体信息的才是真实存在的串口。

串口名称

ttyS3 是什么?

ttyS3 是 Linux 系统中串行端口(Serial Port)的设备名称,也可以理解为内核给物理串口分配的标识符,通常对应物理 UART 串口(如 RS-232)。

  • 命名规则

    • ttyS0ttyS1, ...:linux中的物理串口(如windows上的 COM1、COM2)。

    • ttyUSB0ttyUSB1, ...:USB 转串口设备(如 PL2303、CH340 等芯片)。

    • ttyACM0ttyACM1, ...:USB CDC ACM 设备(如某些 Arduino、STM32 的 USB 虚拟串口)。

COM 和 ttyS 的区别与关系**

1. COM*(Windows 系统)
  • 定义
    COM1COM2 等是 Windows 系统对串行端口(Serial Port)的命名,对应物理硬件(如主板上的 RS-232 接口)或虚拟串口(如 USB 转串口设备)。

  • 特点

    • 名称固定:COM1COM2...(最大到 COM256)。

    • 直接关联硬件:COM1 通常对应主板上的 9 针串口(DB9 接口)。

    • 虚拟串口:USB 转串口设备会被分配为 COM3COM4 等。

2. ttyS*(Linux 系统)
  • 定义
    ttyS0ttyS1 等是 Linux 系统对物理串口的设备节点命名,位于 /dev/ttyS*

  • 特点

    • 名称动态:ttyS0ttyS1...(内核预分配,可能多达 ttyS31)。

    • 物理串口:ttyS0 通常对应主板上的 UART 端口(如 Intel 8250/16550 兼容芯片)。

    • 虚拟串口:USB 转串口设备在 Linux 中命名为 ttyUSB0ttyUSB1 等(非 ttyS*)。

串口不是USB口

链接

串口使用的是串口通信协议,即(TX--RX接线);

USB使用的是USB协议。

驱动步骤

相关文章:

  • Java开发经验——阿里巴巴编码规范实践解析4
  • 封装一个小程序选择器(可多选、单选、搜索)
  • windows安装启动elasticsearch
  • 数据拟合实验
  • TechCrunch 最新文章 (2025-05-28)
  • 【Halcon】 affine_trans_image 算子详解
  • 构建安全高效的邮件网关ngx_mail_ssl_module
  • 【iOS】源码阅读(五)——类类的结构分析
  • 数字孪生赋能智能制造:某汽车发动机产线优化实践
  • SQL中各个子句的执行顺序
  • 亚远景-ISO 21434标准:汽车网络安全实践的落地指南
  • DBus总线详解
  • c++ 拷贝构造函数
  • vue 中的ref属性
  • Grafana-Gauge仪表盘
  • git配置(1): 根据remote自动选择账号执行commit
  • 【掌握文件操作】(下):文件的顺序读写、文件的随机读写、文件读取结束的判定、文件缓冲区
  • C++异常处理机制
  • :inline=“true“会发生什么
  • 酒店用品源头厂家推荐
  • 建设银行贷款业务网站/成都专业网站推广公司
  • flash网站代码/人际网络营销2900
  • 淮南家政网站建设地址/优化师是做什么的
  • 保定市做网站的公司/广东省人大常委会
  • 什么网站做电子章做得好/seo方式包括
  • 网站如何换服务器/中国seo关键词优化工具