1.概要
2.内容
在 Ubuntu 系统中测试串口(如 RS-232、USB 转串口等)通常涉及以下步骤:安装工具、连接设备、权限配置、发送/接收数据测试。以下是详细指南:
一、准备工作
-
确认串口设备存在
插入串口设备(如 USB 转串口适配器)后,通过以下命令查看设备是否被识别:dmesg | grep tty # 或 ls /dev/tty*
通常串口设备会显示为
/dev/ttyUSB0
、/dev/ttyS0
等。 -
安装必要工具
sudo apt install minicom screen cu
minicom
:功能强大的串口调试工具。screen
:轻量级终端复用工具,也可用于串口通信。cu
:简单的串口通信工具。
二、权限配置
普通用户可能没有权限访问串口设备,需将用户加入 dialout
组:
sudo usermod -aG dialout $USER
注销并重新登录使组权限生效。
三、使用工具测试串口
方法 1:使用 minicom
- 启动
minicom
(需超级用户权限):sudo minicom -D /dev/ttyUSB0
-D
指定串口设备(替换为你的设备名,如/dev/ttyS0
)。
- 配置串口参数(首次运行需设置):
- 按
Ctrl+A
→O
进入配置菜单。 - 设置波特率(如 9600)、数据位(8)、停止位(1)、无校验位。
- 保存配置为默认(
Save setup as dfl
)。
- 按
- 测试通信:
- 连接另一台设备(如另一台电脑的串口或虚拟串口)。
- 输入文本并按回车,对方应能收到数据。
方法 2:使用 screen
screen /dev/ttyUSB0 9600
9600
是波特率,根据设备需求调整。- 输入文本后按回车发送,
Ctrl+A
→Ctrl+\
退出。
方法 3:使用 cu
sudo cu -l /dev/ttyUSB0 -s 9600
-s
指定波特率。- 输入文本后按回车发送,
~.
退出。
四、虚拟串口测试(无硬件时)
如果无实际串口设备,可通过 socat
创建虚拟串口对:
-
创建虚拟串口:
socat -d -d pty,raw,echo=0 pty,raw,echo=0
输出类似:
2023/10/01 12:34:56 socat[1234] N PTY is /dev/pts/2 2023/10/01 12:34:56 socat[1234] N PTY is /dev/pts/3
此时
/dev/pts/2
和/dev/pts/3
是虚拟串口对。 -
测试通信:
# 终端 1 screen /dev/pts/2 9600 # 终端 2 screen /dev/pts/3 9600
在任一终端输入文本,另一终端应能实时接收。
五、脚本测试(自动发送/接收)
使用 python
的 pyserial
库可编写自动化测试脚本:
-
安装库:
pip install pyserial
-
示例脚本(发送并接收数据):
import serial ser = serial.Serial('/dev/ttyUSB0', 9600, timeout=1) ser.write(b'Hello, Serial!') response = ser.read(100) # 读取最多 100 字节 print(f"Received: {response.decode()}") ser.close()
六、常见问题排查
- 设备未找到
- 检查连接是否牢固。
- 使用
dmesg | grep tty
确认设备是否被识别。
- 权限不足
- 确保用户已加入
dialout
组。 - 使用
ls -l /dev/ttyUSB0
检查权限,必要时用sudo chmod 666 /dev/ttyUSB0
临时授权。
- 确保用户已加入
- 通信失败
- 确认波特率、数据位、停止位等参数与设备匹配。
- 检查接线是否正确(如 TX/RX 交叉连接)。
通过以上步骤,你可以在 Ubuntu 下高效测试串口通信。
3.关联链接
4.关联知识