从零开始实现自己的串口调试助手(2) - 实现串口配置和收发数据

串口调试助手XCOM和UartAssist安装与使用 串口助手是一种用于测试和调试串口通信的工具。它可以通过串口与外部设备进行通信,并提供了界面来监视和控制串口数据的发送和接收。串口通信调试:串口助手可以帮助你验证串口通信是否正常工作。你可以使用串口助手打开串口并发送指令或数据给外部设备,然后观察外部设备的回应,以验证通信是否成功、数据是否正确交互。如果出现问题,你可以通过串口助手查看发送和接收的数据,帮助发现并排除故障。数据监测:串口助手可以实时显示串口接收到的数据,方便你监测外部设备发送的数据。 阅读详情

串口助手添加参数选项

串口常用信息

效果演示

根据上面串口常用信息,填写进对应的ComboBox里面

注意根据调节ComboBox的(max/min)Size 一致来 实现整齐划一

    

                  

自动检测串口号:
 

使用说明:

不只是添加头文件

qmake(.pro文件) 里面还得添加: QT += serialport

API : 

这个函数判断系统中的可用串口:

  1. addItem 方法:addItem 是QComboBox类(Qt中组合框的类)的一个方法,用于向组合框中添加一个新的选项。这个方法接受一个字符串作为参数,该字符串将成为下拉列表中的一个新项。
  2. serialInfo.portName():这里假设serialInfo是某种对象(可能是你自定义的类或来自某个库的类),并且它有一个portName方法,该方法返回一个字符串。这个字符串很可能代表了一个串行端口的名称或标识符

实现程序

    // 实现串口自动检测,并且显示到需要串口号的ComboBox 里面
    QList<QSerialPortInfo> serialList = QSerialPortInfo::availablePorts(); // 检测系统可行的串口,添加到列表中
    for(QSerialPortInfo serialInfo : serialList){ //遍历我们得到的列表
        qDebug() << serialInfo.portName();
       ui->comboBox_serialNum->addItem(serialInfo.portName());//将我们得到的串口名字,添加到ComboBox选项中
    }

ui->comboBox_serialNum->addItem(serialInfo.portName());

将serialInfo对象的portName方法返回的字符串作为一个新项添加到comboBox_serialNum组合框中

实现效果 

打开串口

先创建串口对象

头文件声明:

源文件实例化

QSerialPort里面的源码

校验位

在ui界面右击 "打开串口"按钮,转到槽,给他添加槽函数

配置并且打开槽函数实现

void Widget::on_btnCloseOrOpenSerial_clicked()
{

//    1.选择端口号
     serialPort->setPortName(ui->comboBox_serialNum->currentText());
//    2.配置波特率   注意把String ->int
     serialPort->setBaudRate(ui->comboBox_Baudrate->currentText().toInt());
//    3.配置数据位
     serialPort->setDataBits(QSerialPort::DataBits(ui->comboBox_dataBit->currentText().toInt()));
//    4.配置校验位
     switch (ui->comboBox_checkBit->currentIndex()) // 根据下标来匹配
     {
      case 0:
         serialPort->setParity(QSerialPort::NoParity);
         break;
     case 1:
        serialPort->setParity(QSerialPort::EvenParity);
        break;
     case 2:
       serialPort->setParity(QSerialPort::MarkParity);
        break;
     case 3:
        serialPort->setParity(QSerialPort::OddParity);
        break;
     case 4:
        serialPort->setParity(QSerialPort::SpaceParity);
        break;
     default:
         serialPort->setParity(QSerialPort::UnknownParity);
         break;

     }



//    5.配置停止位
     serialPort->setStopBits(QSerialPort::StopBits(ui->comboBox_stopBit->currentData().toInt()));
//    6.流控
     if(ui->comboBox_fileCon->currentText() == "None")
           serialPort->setFlowControl(QSerialPort::NoFlowControl);

    // 配置完毕,打开串口
    if(serialPort->open(QIODevice::ReadWrite)){ // open -- 能成功打开,返回true
    qDebug()<<"serial open success!";
    }

 效果演示

实现自发自收

插入 我们的CH340,注意要用跳线帽连接tx,rx -->这样就完成了自发自收的前期准备

(没有跳线帽的可以用一根杜邦线)

发送数据槽函数


void Widget::on_btnSendContext_clicked()
{
    const char * sendData = ui->lineEdit_SendContext->text().toStdString().c_str();//QString->String(C++)->char*

    serialPort->write(sendData);
    qDebug()<<"Send: "<<sendData;
}

 实现接收

当串口收到数据的时候会发出一个信号,我们去捕捉这个信号,并且去实现他的槽函数,实现接收

 connect(serialPort,&QSerialPort::readyRead,this,&Widget::on_SerialData_readToRead);

接收槽函数的实现


void Widget::on_SerialData_readToRead()
{
  QString recvMessage = serialPort->readAll();
  qDebug()<<"get Message: "<<recvMessage;
  ui->textEditRev->append(recvMessage);
}

效果演示

单独发送

实现自发自收

A_A05_002 sscom33串口调试助手使用 阅读详情

相关推荐

QT从零开始作单片机上位机-串口调试助手+波形显示-实现串口模块的配置

实现串口模块的配置 完成了基本的界面设计后,我们就要着手实现功能。 这一章我们首先看串口数据收发的功能怎么实现。 一、首先我需要阐明的是,由于做嵌入式开发,大部分人学习的是C语言,而QT用的是C++,那么用C语言的知识能否完成这个上位机的工作呢?我的回答是可以的。 逐步来分析整个实现过程: 先列举需要思考的问题: 怎么实现点击刷新按钮后,串口工具可以自动发现可用的COM口,并将com口显示在Combobox1? 如何添加所有可用的波特率?同样给其他Combobox添加相关的值? 如何在点击“

xiaoeleis的专栏 9655

UartAssist串口调试工具使用指南 (附UartAssist工具包)

UartAssist串口调试助手软件,是Windows平台下的串口通信调试工具,广泛应用于工控领域的数据监控、数据采集、数据分析等工作,是串口应用开发及调试工作必备的专业工具之一,可以帮串口通信项目的应用设计、开发、测试人员检查所开发的串口通信应用软/硬件产品的数据收发状况,提高开发速度,简化开发复杂度,是串口通信应用开发调试的得力助手。UartAssist串口调试助手是绿色软件,无需安装,只有一个执行文件,适用于各版本Windows操作系统,不需要微软dotNet框架支持。

悦分享 25万+

从零开始,教你写一个串口调试助手

相信很多小伙伴都没接触过QT,如果想用QT写一个调试助手,首先是要会一点C++语法。只要能看得懂C++的代码,就能很快的写一个串口调试助手。下面先推荐两个视频教程,感兴趣的可以看一看!

m0_61687959的博客 2693

串口调试助手和网络调试助手使用总结

本质上,串口工具接收到的是一个一个的二进制位,此时,串口中用十六进制显示,就显示的是对应的十六进制,如果不用十六进制显示,就要看此时十六进制有没有对应的字符,如果有,就可以显示出来,如果没有,就显示不出来,所以,这种情况下,就会经常出现各种各样的乱码。收到一种编码,然后根据编码来显示对应的字符,实际显示字符时,就需要向屏幕打点或者做出对应的动作,如果是可显示字符,就打点显示,如果不是可显示字符,比如换行,就让屏幕进行换行操作。以上程序向串口发送时使用的十进制,那么,如果直接就发的是十六进制呢?

qq_28576837的博客 1万+

WinForm串口调试助手开发实战:从界面设计到数据收发优化

本文详细介绍了使用C# WinForm开发串口调试助手的完整实战过程。从用户界面设计、串口参数自动配置,到实现稳健的数据收发核心功能,并重点讲解了如何彻底解决中文乱码与数据不完整等常见顽疾。文章旨在帮助开发者打造一个稳定、高效且功能可自定义的调试利器,适用于单片机、传感器及工业设备通信调试。

weixin_29212429的博客 480

Qt串口通信实战:用QSerialPort从零搭建一个串口调试助手(附完整源码)

本文详细介绍了如何使用Qt的QSerialPort模块从零构建一个功能完备的串口调试助手,涵盖环境配置、核心功能实现、高级功能扩展及常见问题解决方案。通过实战代码示例,帮助开发者快速掌握串口通信技术,适用于嵌入式开发和工业控制领域。

weixin_29209805的博客 385

WinForm串口调试助手开发实战:从界面设计到数据收发完整指南

本文详细介绍了使用WinForm开发串口调试助手的完整流程,从界面设计到数据收发功能实现。涵盖串口参数配置、中文乱码处理、数据记录分析等核心功能,并提供性能优化和异常处理方案,帮助开发者快速构建专业级串口调试工具,提升工业控制和物联网设备调试效率。

weixin_30485379的博客 556

用QSerialPortInfo和QSerialPort打造一个跨平台的串口调试助手(Qt/C++)

本文详细介绍了如何使用Qt框架中的QSerialPortInfo和QSerialPort类开发一个跨平台的串口调试助手。从环境搭建、串口设备发现、参数配置到数据收发功能的实现,涵盖了串口通信的核心技术点,并提供了高级功能扩展思路和跨平台注意事项,帮助开发者快速构建高效的串口调试工具。

weixin_42665725的博客 388

Qt框架打造轻量级串口调试助手教程

串口通信是嵌入式开发中基础而关键的调试手段,通过UART协议实现设备间的数据交换。Qt框架的SerialPort模块封装了底层串口操作,开发者可以快速构建跨平台的串口工具。本教程详细讲解如何使用Qt Creator开发环境,从界面设计到核心功能实现,打造一个支持文本/十六进制收发、定时发送、数据记录等实用功能的串口调试助手。项目采用QSerialPort类处理底层通信,通过信号槽机制实现高效的数据收发,特别适合嵌入式开发者和Qt初学者学习串口编程与Qt实战开发。

weixin_35756130的博客 582

C# WPF串口调试助手开发实战:从零搭建工业级通信工具(附完整源码)

本文详细介绍了使用C#和WPF框架从零开发工业级串口调试助手的实战过程。文章深入探讨了基于MVVM架构的异步串口通信模块设计、WPF数据绑定与高性能界面构建,并扩展了Modbus协议解析、数据可视化等高级功能,旨在提供一套完整的工程化开发思维与可复用的源码解决方案。

tech5的博客 741

汇川AM402与串口调试助手的RS485自由协议通信实战

本文详细介绍了汇川AM402 PLC与串口调试助手通过RS485自由协议进行通信的完整实战流程。内容涵盖硬件连接(RS485转232模块与USB转232线)、PLC工程配置(设置自由协议模式与数据缓冲区)以及PC端串口调试助手设置,并通过数据收发实战演示了如何实现稳定可靠的双向通信,为工控通信应用提供清晰指导。

weixin_29181861的博客 330

使用Qt/C++开发专业串口调试助手:从零到一完整实现

本文介绍了使用Qt/C++开发一款专业串口调试助手的全过程。该工具具备自动扫描串口、多格式数据收发(ASCII/HEX/十进制/二进制)、虚拟串口模拟、实时数据曲线绘制、命令轮询发送等核心功能,采用模块化设计,通过QSerialPort实现串口通信,QCharts实现数据可视化。文章详细阐述了系统架构、核心功能实现、UI设计、关键技术难点及解决方案,并提供了测试验证结果。项目代码约2000行,实现了配置持久化、中文乱码处理等实用特性,可作为嵌入式开发的实用工具或Qt学习的参考项目。

zqg282504061的博客 1383

虚拟串口模拟器和串口调试助手使用教程

虚拟串口(虚拟 COM 端口),应该很多人都知道,也就是一种模拟物理串行接口的 软件 。 它完全复制了硬件 COM 接口的功能,并且将被操作系统和串行应用程序识别为真实端口。 以前的电脑,基本标配都包含一个串口。但现在的电脑,基本都没有配置串口了。如果要使用串口的功能,基本就要用一个USB转串口的硬件模块。 现实生活中,虚拟串口用处很多。比如:你的应用程序检测串行输入数据的时候,方便调试。还比如:多个有应用程序之间使用串口通信。 虚拟串口软件推荐:强大的虚拟串口软件 串口调试助手软件有很多,随便选一个自己

qq_41854911的博客 3万+

从零开始实现自己的串口调试助手(3) - 显示底部收发,优化串口打开/关闭

if(!serialStatus){ //串口没有被打开 --> 配置参数,打开串口// 1.选择端口号// 2.配置波特率 注意把String ->int// 3.配置数据位// 4.配置校验位switch (ui->comboBox_checkBit->currentIndex()) // 根据下标来匹配case 0:break;

mx_jun的博客 1072

从零开始自制串口调试助手实战项目

典型的串口调试流程通常包含以下几个步骤:设备发现:用户插入USB转串口适配器或连接物理串口后,程序自动列出可用端口。参数配置:选择波特率、数据位、校验方式等通信参数,确保与目标设备一致。打开连接:尝试打开选定端口,建立通信链路。数据收发- 发送文本或十六进制指令;- 实时接收返回数据并在界面显示。辅助功能:清屏、保存日志、周期发送、自动换行添加等。异常处理:断线重连、权限提示、资源释放等。

weixin_42153793的博客 566

基于Visual C++6.0的串口调试助手开发实战

简介:串口通信是嵌入式系统与工业自动化中设备间数据交换的基础方式。Visual C++6.0凭借其强大的MFC框架和MSComm控件,为串口应用开发提供了高效支持。本文详细介绍如何使用VC6中的Comm控件构建一个功能完整的串口调试助手,涵盖串口参数配置、数据收发、事件处理及用户界面设计。项目注重实践应用,帮助开发者掌握串口编程核心技能,提升程序健壮性与用户体验,适用于智能硬件调试与工业通信场景。

weixin_42515842的博客 1092

Qt Widgets从零实现串口调试助手V1.0完整指南

串口通信是单片机、嵌入式设备与PC交互的基础方式,凭借简单可靠的特性,在工业控制、数据采集和硬件调试中占据重要地位。Qt作为跨平台C++开发框架,提供的QSerialPort模块封装了底层串口操作,支持波特率、数据位、校验位等参数配置,配合信号槽机制可实现高效的数据收发。理解readyRead信号与readAll的配合原理,能帮助开发者构建实时接收的数据通道,而Hex收发功能在协议调试中尤为关键。串口调试助手作为上位机开发的入门实践,也是嵌入式工程师的必备工具,广泛应用于设备调试、日志监控和自动化测试场景。

weixin_31815843的博客 317

青藏高原冻土数据实战:如何用QGIS分析1961-2020年冻土退化趋势(附完整操作步骤)

本文详细介绍了如何使用QGIS分析1961-2020年青藏高原冻土退化趋势,包括数据准备、预处理、时空分析和模型验证等全流程操作。通过TTOP模型和Stefan方程,揭示了冻土退化的空间差异和海拔依赖性,为环境研究提供科学依据。

weixin_29276847的博客 127
上一篇: 从零开始实现自己的串口调试助手(1) - ui界面搭建
下一篇: 智能家居3 - 实现烟雾报警模块
mx_jun
博客等级 码龄5年 1605粉丝 148原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值