1.概要
1.记忆要点
Ubuntu 下串口测试的方法可根据场景选择:
- 快速测试:
screen
、minicom
、picocom
。 - 图形化:CuteCom、GtkTerm。
- 编程控制:Python(pySerial)、C 语言。
- 硬件验证:环回测试、电压测量。
- 系统诊断:
dmesg
、stty
、ls
。
2.内容
在 Ubuntu 系统中,测试串口(如 /dev/ttyS*
、/dev/ttyUSB*
等设备)的常用方法可分为以下几类,具体方法数量可根据功能细分,但核心工具和场景约 10-15 种。以下是详细分类和操作指南:
一、基础命令行工具(无需编程)
1. 使用 screen
终端
screen
是轻量级终端工具,适合快速测试串口通信。
步骤:
# 安装 screen(若未安装)
sudo apt install screen
# 连接串口(示例:/dev/ttyUSB0,波特率 115200)
screen /dev/ttyUSB0 115200
按 Ctrl+A
然后 Ctrl+D
退出,或直接关闭终端。
2. 使用 minicom
配置工具
minicom
是功能更丰富的串口调试工具,需先配置参数。
步骤:
# 安装 minicom
sudo apt install minicom
# 运行并配置(首次需设置波特率、数据位等)
sudo minicom -s
# 选择 "Serial port setup" → 设置设备(A)、波特率(B)等 → 保存为默认(Save setup as dfl)
# 启动(直接使用配置)
sudo minicom
3. 使用 picocom
轻量工具
picocom
是更简洁的命令行工具,适合快速测试。
步骤:
# 安装 picocom
sudo apt install picocom
# 连接串口(示例:波特率 115200)
picocom -b 115200 /dev/ttyUSB0
按 Ctrl+A
然后 Ctrl+X
退出。
4. 基础 echo
+ cat
组合
无需额外工具,直接通过重定向读写串口(适合简单数据测试)。
步骤:
# 向串口发送数据(示例:发送 "hello")
echo "hello" > /dev/ttyUSB0
# 读取串口数据(需另一终端或设备回传)
cat < /dev/ttyUSB0
5. hexdump
查看二进制数据
结合 cat
和 hexdump
可查看十六进制格式的串口数据。
步骤:
# 实时读取并显示十六进制
cat /dev/ttyUSB0 | hexdump -C
二、图形化工具(适合新手)
1. CuteCom
图形化串口调试工具,界面友好,支持参数配置。
步骤:
# 安装 CuteCom
sudo apt install cutecom
# 运行 CuteCom → 选择串口设备、波特率等 → 发送/接收数据
cutecom
2. GtkTerm
轻量级 GTK 图形化串口工具,适合简单测试。
步骤:
# 安装 GtkTerm
sudo apt install gtkterm
# 运行 GtkTerm → 配置串口参数 → 开始通信
gtkterm
三、编程方法(自定义测试逻辑)
1. Python + pySerial
通过 Python 脚本控制串口,适合复杂测试场景。
步骤:
# 安装 pySerial
pip install pyserial
# 示例脚本(发送并接收数据)
import serial
ser = serial.Serial('/dev/ttyUSB0', 115200, timeout=1)
ser.write(b'test') # 发送数据
print(ser.read(10)) # 读取最多10字节
ser.close()
2. C 语言(系统调用)
通过底层系统调用(open
、read
、write
)操作串口,适合深入调试。
示例代码:
#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>
#include <termios.h>
int main() {
int fd = open("/dev/ttyUSB0", O_RDWR | O_NOCTTY);
struct termios tty;
tcgetattr(fd, &tty);
cfsetospeed(&tty, B115200);
cfsetispeed(&tty, B115200);
tcsetattr(fd, TCSANOW, &tty);
write(fd, "test", 4); // 发送数据
char buf[10];
read(fd, buf, 10); // 读取数据
close(fd);
return 0;
}
编译运行:gcc -o serial_test serial_test.c && ./serial_test
四、硬件级测试方法
1. 环回测试(Loopback Test)
通过短接串口的 TX(发送) 和 RX(接收) 引脚,验证串口硬件是否正常。
步骤:
- 用导线短接串口的 TX(如 Pin3)和 RX(如 Pin2)引脚。
- 使用
echo
或工具发送数据,若能接收到相同数据,则硬件正常。
echo "loopback" > /dev/ttyUSB0 && cat /dev/ttyUSB0
2. 电压测量(万用表)
使用万用表测量串口的 TX 引脚电压(空闲时为负电压,发送时为正电压),判断硬件是否工作。
五、系统诊断工具
1. 检查串口设备是否存在
通过 dmesg
或 ls
查看串口是否被系统识别。
# 查看内核日志(插入设备后)
dmesg | grep tty
# 列出所有串口设备
ls /dev/tty* | grep -E "ttyS|ttyUSB|ttyACM"
2. stty
配置串口参数
通过 stty
命令直接配置串口参数(如波特率、数据位等)。
# 设置串口参数(示例:115200 8N1,关闭回显)
stty -F /dev/ttyUSB0 115200 cs8 -cstopb -parenb -echo
总结
Ubuntu 下串口测试的方法可根据场景选择:
- 快速测试:
screen
、minicom
、picocom
。 - 图形化:CuteCom、GtkTerm。
- 编程控制:Python(pySerial)、C 语言。
- 硬件验证:环回测试、电压测量。
- 系统诊断:
dmesg
、stty
、ls
。
共约 10-15 种具体方法,覆盖从简单命令到深度调试的全场景。
3.关联链接
4.关联知识