1.概要
1.echo cat
2.screen
3.minicom
4.cutecom
2.内容
在 Ubuntu 中测试串口(如 /dev/ttyS2
和 /dev/ttyS6
)的数据收发,可通过以下步骤实现。假设两个串口已通过物理线缆(如零调制解调器线缆)连接,或通过虚拟串口工具模拟连接。
步骤 1:确认串口设备存在
ls -l /dev/ttyS*
输出应包含 /dev/ttyS2
和 /dev/ttyS6
(或其他串口设备)。
步骤 2:安装串口测试工具
sudo apt install minicom screen cutecom # 选择其一即可
步骤 3:配置串口参数
使用 stty
统一设置发送和接收端的参数(以 115200 波特率为例):
# 设置 ttyS2 为发送端
stty -F /dev/ttyS2 115200 cs8 -parenb -cstopb
# 设置 ttyS6 为接收端
stty -F /dev/ttyS6 115200 cs8 -parenb -cstopb
步骤 4:测试串口通信
方法 1:使用 cat
命令(基础测试)
-
发送端(ttyS2):
echo "Hello, Serial Port!" > /dev/ttyS2
-
接收端(ttyS6):
cat /dev/ttyS6
如果通信正常,接收端会输出
Hello, Serial Port!
。
方法 2:使用 screen
命令(交互式测试)
-
启动 screen 会话(接收端):
screen /dev/ttyS6 115200
-
另开终端(发送端):
echo "Test Data" > /dev/ttyS2
接收端的
screen
会话中会显示Test Data
。 -
退出 screen:按
Ctrl+A
后按K
,选择Yes
。
方法 3:使用 minicom
(专业调试工具)
- 配置 minicom:
sudo minicom -s
- 选择
Serial port setup
,设置串口设备为/dev/ttyS6
,波特率为115200
。 - 保存配置(
Save setup as dfl
)。
- 选择
- 启动 minicom:
在发送端输入数据,接收端会实时显示。sudo minicom
方法 4:使用 cutecom
(图形化工具)
- 启动 cutecom:
配置参数:cutecom
- 选择串口设备(如
/dev/ttyS6
)。 - 设置波特率为
115200
,数据位为8
,停止位为1
,无校验。
- 选择串口设备(如
- 发送数据:在文本框输入内容,点击
Send
。
步骤 5:验证数据完整性
方法 1:使用 od
查看二进制数据
echo "Binary Test: 0x00 0xFF" > /dev/ttyS2
od -tx1 /dev/ttyS6 # 以十六进制显示接收数据
方法 2:循环发送与接收
# 发送端(ttyS2)
while true; do echo "Loop Test $(date)" > /dev/ttyS2; sleep 1; done
# 接收端(ttyS6)
cat /dev/ttyS6
常见问题排查
-
无数据输出:
- 检查物理线缆连接(如 TX/RX 交叉)。
- 确认串口参数(波特率、数据位等)一致。
- 使用
dmesg | grep ttyS
查看内核日志。
-
权限不足:
sudo usermod -aG dialout $USER # 添加用户到 dialout 组 newgrp dialout # 立即生效
-
设备未启用:
sudo chmod 666 /dev/ttyS2 /dev/ttyS6 # 临时修改权限(不推荐生产环境)
通过以上步骤,您可以完成 Ubuntu 下串口设备的收发测试。如果需要进一步调试(如分析通信协议),可使用 Wireshark
配合串口转 USB 适配器抓包。