串口测试,监控收发数据

1.概要

2.内容

在 Ubuntu 下测试串口通信程序,可以通过以下方法实现自收自发测试。这里提供两种完整方案:


🛠️ 方案一:使用虚拟串口工具(推荐)

1. 安装虚拟串口工具
sudo apt install socat
2. 创建虚拟串口对
socat -d -d pty,raw,echo=0 pty,raw,echo=0

2023/07/20 14:30:00 socat[1234] N PTY is /dev/pts/2
2023/07/20 14:30:00 socat[1234] N PTY is /dev/pts/3
3. 配置你的Qt程序

// 发送端配置(使用第一个虚拟端口)
QSerialPort serial;
serial.setPortName("/dev/pts/2");
serial.setBaudRate(QSerialPort::Baud115200);
serial.open(QIODevice::WriteOnly);

// 接收端配置(使用第二个虚拟端口)
QSerialPort receiver;
receiver.setPortName("/dev/pts/3");
receiver.setBaudRate(QSerialPort::Baud115200);
receiver.open(QIODevice::ReadOnly);

// 连接接收信号
QObject::connect(&receiver, &QSerialPort::readyRead, [&](){
    QByteArray data = receiver.readAll();
    qDebug() << "Received:" << data;
});

🔄 方案二:硬件回环测试(需要物理串口)

1. 短接串口引脚

用杜邦线连接:

TX (发送端) ↔ RX (接收端)
GND ↔ GND
2. 配置串口参数

// 发送端配置
QSerialPort serial;
serial.setPortName("/dev/ttyUSB0"); // 根据实际设备修改
serial.setBaudRate(QSerialPort::Baud115200);
serial.setDataBits(QSerialPort::Data8);
serial.setParity(QSerialPort::NoParity);
serial.setStopBits(QSerialPort::OneStop);
serial.setFlowControl(QSerialPort::NoFlowControl);
serial.open(QIODevice::ReadWrite); // 读写模式
3. 添加接收逻辑

// 在发送数据后立即读取
QByteArray sendData = "TEST DATA";
serial.write(sendData);

// 等待并读取回显
if (serial.waitForReadyRead(1000)) {
    QByteArray response = serial.readAll();
    if (response == sendData) {
        qDebug() << "✅ 验证成功!";
    } else {
        qDebug() << "❌ 数据不匹配";
    }
} else {
    qDebug() << "⚠️ 接收超时";
}

🔍 验证工具推荐

  1. CuteCom(图形化工具):
    sudo apt install cutecom
    使用方法:
    • 发送端选择 /dev/pts/2
    • 接收端选择 /dev/pts/3
  2. minicom(终端工具):

    sudo apt install minicom
    minicom -D /dev/ttyUSB0 -b 115200

💡 常见问题排查

  1. 权限问题

    sudo usermod -aG dialout $USER # 添加用户到串口组
    newgrp dialout # 立即生效

    波特率不匹配
    确保发送端和接收端使用完全相同的参数:

    // 典型配置
    Baud115200, Data8, NoParity, OneStop

    缓冲区处理

    // 发送端添加延迟
    serial.write(data);
    serial.flush();
    QThread::msleep(10); // 等待硬件缓冲

📊 测试结果验证

成功时应该看到:

Received: "TEST DATA"
✅ 验证成功!

如果失败,检查:

  1. 虚拟端口是否配对正确
  2. 串口线是否连接可靠
  3. 波特率等参数是否完全一致
  4. 是否有其他程序占用串口

建议先用虚拟串口方案测试通过后,再进行硬件连接测试。

3.关联链接

关于串口测试的链接-优快云博客

4.关联知识 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值