QT开发串口助手(三)——实现接收数据功能

本文档介绍了如何使用QT创建一个串口配置工具,重点在于实现选择波特率功能和串口数据的接收。通过在GUI中添加ComboBox展示波特率选项,设置串口参数并监听串口的readyRead信号来实现实时数据显示。代码示例详细展示了从串口配置到数据接收的完整过程。

上一章我们实现了显示串口号的功能,接下来我们继续完善我们的功能,考虑到我的需求是要做一个串口配置esp8266的上位机, 而往往这类起配置作用的上位机只需要选择串口号和波特率就可以了,并不需要选择数据位,校验位,停止位。这部分是协议规定好的。

一. 实现选择波特率功能

1. 功能规划

在这里插入图片描述
新增一个选择波特率的combox和打开串口的pushbutton

2. 页面布局

在这里插入图片描述
新增一个comboBox用于显示波特率,设置objectName为baudComboBox.
新增一个pushButton, 用于打开串口, 设置objectName为openSerialBtn, 冰并且设置text为打开串口。

3. 代码实现显示波特率

查看帮助手册, 向comboBox中添加元素时可以采用QStringList形式添加
在这里插入图片描述
所以我们在mainwindow.h需要定义一个属性QStringList BaudList;用于存储波特率数据。接着我们在MainWindow中对BaudList进行赋初值,并且利用addItems添加到UI界面。详细代码如下:
mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QPushButton>
#include <QComboBox>
#include <QSerialPort>
#include <QSerialPortInfo>
#include <QDebug>

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    /*显示波特率*/
    this->BaudList << "9600" << "19200" <<"115200";
    ui->baudComboBox->addItems(this->BaudList);
    /*刷新串口*/
    this->refreshPort();
    /* 点击刷新功能显示*/
    connect(ui->refreshPortBtn, &QPushButton::clicked, this, &MainWindow::refreshPort);
}

/*刷新串口处理函数*/
void MainWindow::refreshPort()
{
    qDebug() << "刷新串口";
    /*清除comboxBox的内容,防止显示重复的串口*/
    ui->displayPortComboBox->clear();

    /* 读取可以使用的串口*/
    this->avaiPortsList = QSerialPortInfo::availablePorts();
    /* 提取串口个数*/
    int avaiPortNum = avaiPortsList.length();

    /*逐个显示*/
    for(int i = 0; i < avaiPortNum; i++)
    {
        ui->displayPortComboBox->addItem(this->avaiPortsList[i].portName());
    }
}

MainWindow::~MainWindow()
{
    delete ui;
}

mainwindows.h

#ifndef MAINWINDOW_H
#define
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值