使用QtCreator C++编写串口调试助手

这篇具有很好参考价值的文章主要介绍了使用QtCreator C++编写串口调试助手。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Qt小白一枚,喜欢嵌入式应用,以前都是使用别人的串口调试助手,学习了C++以后,自己也尝试着做了简单的串口调试助手,分享给大家吧,希望能帮助到大家,如果有错误,请大家指正。话不多说开干!

1.首先看一下我设计的界面(我这里比较简单,大家可根据自己的需求进行设计)

(界面设计的过程中,每一个控件的名称最好进行修改,便于后续控件太多不好区分,给控件命名的时候一定要就针对性,一下明白这个控件是干什么的。)

使用QtCreator  C++编写串口调试助手

 2.首先看一下准备工作。在pro文件中添加串口需要的文件

使用QtCreator  C++编写串口调试助手

 3.widget.h文件 (看看代码一睹为快)文章来源地址https://www.toymoban.com/news/detail-457143.html

#ifndef WIDGET_H
#define WIDGET_H
#include <QSerialPort>
#include <QWidget>

namespace Ui {
class Widget;
}

class Widget : public QWidget
{
    Q_OBJECT

public:
    QSerialPort *serialport;
    explicit Widget(QWidget *parent = nullptr);
    ~Widget();

private slots:
    //打开串口槽函数
    void on_port_openBt_clicked();
    //关闭串口槽函数

    void on_port_closeBt_clicked();
    //自定义的槽函数的声明
    void serialreadtext();
//数据发送槽函数
    void on_data_sendBt_clicked();
//数据接受区和数据发送区清空槽函数
    void on_rev_clearBt_clicked();

private:
    Ui::Widget *ui;
};

#endif // WIDGET_H

4.widget.cpp文件
#include "widget.h"
#include "ui_widget.h"
#include<QSerialPortInfo>
#include <QMessageBox>
#include <QString>
Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{   serialport = new QSerialPort(this); //创建一个串口对象
    ui->setupUi(this);
    //这样我们就获取到 可用的串口名字了
    QStringList m_serialPortName;
    foreach(const QSerialPortInfo &info,QSerialPortInfo::availablePorts())
    {
        m_serialPortName << info.portName();
    }
    //添加串口到conbox控件中
    ui->port_comboBox->addItems(m_serialPortName);
    //接收数据需要自己关联槽函数
    connect(serialport,SIGNAL(readyRead()),this , SLOT(serialreadtext()));
}

Widget::~Widget()
{
    delete ui;
}
//读数据
void Widget::serialreadtext()
{
    QString buffer;
    buffer=QString(serialport->readAll());
    ui->revEdit->appendPlainText(buffer);
}
void Widget::on_port_openBt_clicked()
{
    QSerialPort::BaudRate baudRate;
    QSerialPort::DataBits dataBits;
    QSerialPort::Parity parity;
    QSerialPort::StopBits stopbits;
    //波特率
    if(ui->rate_comboBox->currentText()=="115200")
    {
        baudRate=QSerialPort::Baud115200;
    }else if(ui->rate_comboBox->currentText()=="9600")
    {
        baudRate=QSerialPort::Baud9600;

    }else {
        baudRate=QSerialPort::Baud4800;
    }
    //数据位
    if(ui->data_comboBox->currentText()=="8")
    {
        dataBits=QSerialPort::Data8;

    }else if(ui->data_comboBox->currentText()=="7")
    {
        dataBits=QSerialPort::Data7;
    }else if(ui->data_comboBox->currentText()=="6")
    {
        dataBits=QSerialPort::Data6;
    }else if (ui->data_comboBox->currentText()=="5")
    {
        dataBits=QSerialPort::Data5;
    }

    //停止位
    if(ui->stop_comboBox->currentText()=="1")
    {
        stopbits= QSerialPort::OneStop;
    } else if(ui->stop_comboBox->currentText()=="2")
    {
        stopbits= QSerialPort::TwoStop;
    }else if(ui->stop_comboBox->currentText()=="1.5")
    {
        stopbits= QSerialPort::OneAndHalfStop;
    }
    //校验位
    if(ui->cheak_comboBox->currentText()=="None")
    {
        parity=QSerialPort::NoParity;
    }

    //1.配置端口号
    serialport->setPortName(ui->port_comboBox->currentText());
    //2.配置波特率
    serialport->setBaudRate(baudRate);
    //设置数据位
    serialport->setDataBits(dataBits);
    //设置校验位
    serialport->setParity(parity);
    //停止位
    serialport->setStopBits(stopbits);
    if(serialport->isOpen())//如果串口已经打开了 先给他关闭了
    {
        serialport->clear();
        serialport->close();
    }

    if(serialport->open(QIODevice::ReadWrite)==true)
    {
        QMessageBox::information(this ,"提示","串口打开成功");
    }else
    {
        QMessageBox::critical(this ,"提示","串口打开失败");
    }
}
//关闭串口
void Widget::on_port_closeBt_clicked()
{
    QMessageBox::information(this ,"提示","串口关闭成功");
     serialport->close();
}
//发送数据
void Widget::on_data_sendBt_clicked()
{
    serialport->write(ui->sendEdit->text().toLocal8Bit().data());
}
//清空接受区
void Widget::on_rev_clearBt_clicked()
{
    ui->revEdit->clear();
}
5.好啦,完成上面的步骤,一个简单的串口调试助手就完成了,大家快行动起来吧。
 

到了这里,关于使用QtCreator C++编写串口调试助手的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • QT编写的串口助手

    创建UI界面工程 找帮助文档 添加串口的宏

    2024年02月15日
    浏览(26)
  • 【ESP01S】使用串口调试助手,发送AT指令收回的是乱码/重复一遍AT指令发回的问题

    在使用ESP01S,外观如下图所示: 使用串口调试助手,发送AT指令出现异常情况,比如返回乱码或者重复一遍用户发送的内容 根据文章的问题推测,原因主要有以下两点: 1、硬件供电不足 2、固件烧录问题 USB转串口模块的驱动能力很弱,所以首先就排除了用此模块供电的方式

    2023年04月21日
    浏览(54)
  • VOFA+ 串口调试助手

    人生如逆旅,我亦是行人。 最近看学习视频看到一位博主用了一个十分酷、之前都没怎么见过的串口调试助手,深深地被吸引了,然后去了解了一下,发现这款串口调试助手软件还挺不错的,最起码比我之前用过的都要更酷,而且适合用来显示波形,与我最近需要用到的数据

    2024年02月15日
    浏览(32)
  • 【用MFC写串口调试助手】

    ID Type Member 说明 IDC_BUTTON_SERCHSEL 检测串口按钮 IDC_BUTTON_OPENSEL 打开串口按钮 IDC_BUTTON_CLOSESEL 关闭串口按钮 IDC_BUTTON_CLEARGETDATA 清空接收区按钮 IDC_BUTTON_SENDDATA 发送数据按钮 IDC_BUTTON_CLEARSENDDATA 清空发送区按钮 IDC_COMBO_CHOOSESEL CComboBox m_COMBO_ChooseSel 串口选择下拉框 IDC_COMBO_BOTRAT CCo

    2024年02月07日
    浏览(29)
  • 串口调试助手 安卓版 附下载地址

    平时工作中和硬件同事对接的比较多,软件和硬件的通讯,串口用的也比较多的。在网上找了很多串口调试工具,大都年代久远,没有继续更新维护的了。 于是,自己抽空写了一个:串口调试助手。基于Android-SerialPort-Api修改, 最低支持安卓5.x, 支持armeabi-v7a, arm64-v8a, x86, x

    2024年02月05日
    浏览(31)
  • 关于串口调试助手上面的DTR和RTS

    开发调试过程中,突然XCOM串口调试助手无法接发数据,而用了sscom却可以实现正常功能,emo了很久,对比了两个软件对串口的设置,包括波特率,停止位,校验位等设置,也没发现异端,以为是sscom这个软件禁用了XCOM。。。。。。。。。 后来仔细比对发现,XCOM的DTR选型被取

    2024年02月11日
    浏览(34)
  • 蓝牙串口调试助手通过PC蓝牙发送数据给ESP32同时在串口上显示

    OK,好久没有更新Blog啦 今天把之前积累的代码放上,给需要学习的程序猿们使用 我还是不太喜欢写文字,倒是比较喜欢客套,哈哈 硬件图: ESP32和USB-micro-B数据线一根 蓝牙串口调试助手通过PC蓝牙发送数据给ESP32同时在串口上显示 具体代码如下:

    2024年02月09日
    浏览(33)
  • Rust UI开发(四):iced中如何添加菜单栏(串口调试助手)

    注:此文适合于对rust有一些了解的朋友 iced是一个跨平台的GUI库,用于为rust语言程序构建UI界面。 这是一个系列博文,本文是第四篇,前三篇链接: 1、Rust UI开发(一):使用iced构建UI时,如何在界面显示中文字符 2、Rust UI开发(二):iced中如何为窗口添加icon图标 3、Rust

    2024年02月03日
    浏览(60)
  • QT串口调试助手开发教程:上位机接收数据解析数据帧+多通道波形显示+数据保存

    在该设计中主要需要解决的问题就是接收单片机采集到的数据并在上位机将数字实时的通过波形显示出来,然后上位机要有保存下数据文件的功能,便于后续的软件读取数据做进一步的分析处理。有些人吃相难看,无底线,无道德,鉴于串口上位机会被广泛使用,撰写该教程

    2024年02月07日
    浏览(37)
  • 【友善串口调试助手Serial Port Utility以ASCII形式发送字节数据显示0D的问题】

    在做DS18B20温度检测时自己想通过UART串口接收上位机发出的指令来进行相应的操作,但是第一次上板未能成功,所以回过头来逐步排查问题 自己考虑FPGA与DS18B20数据交互对DS18B20的控制可分为三类:复位、写操作与读操作,每种操作后面还需跟相应具体的指令,如SKIP ROM [CCh]、

    2024年04月28日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包