qt学习:串口

头文件

复制代码
#include <QSerialPort>
#include <QSerialPortInfo>

模块

复制代码
QT       += core gui serialport

编程步骤

配置一个ui界面,五个QComboBox和一个按钮和一个QTextEdit

添加一个成员

复制代码
private:
    QSerialPort *serial;

在构造函数中初始化ui端口列表和串口

复制代码
    //获取当前主机上所有可用的端口
    QList<QSerialPortInfo> list = QSerialPortInfo::availablePorts();
    //将获取的端口列表设置到ui界面上
    for(int i=0; i<list.size(); i++)
    {
        ui->comboBox_port->addItem(list.at(i).portName());
    }
    //串口对象
    serial = new QSerialPort;
    //关联串口收到数据就会触发QSerialPort::readyRead信号,然后显示出来
    connect(serial,&QSerialPort::readyRead,this,[&](){
        //读取数据
        QByteArray data = serial->readAll();
        //显示
        ui->textEdit->append(data);
    });

连接按钮点击函数

复制代码
    //设置串口端口
    serial->setPort(QSerialPortInfo(ui->comboBox_port->currentText()));

    //1、设置波特率
    if(ui->comboBox_baud->currentText() == "9600")
    {
        serial->setBaudRate(QSerialPort::Baud9600);
    }
    else if(ui->comboBox_baud->currentText() == "115200")
    {
        serial->setBaudRate(QSerialPort::Baud115200);
    }
    else if(ui->comboBox_baud->currentText() == "38400")
    {
        serial->setBaudRate(QSerialPort::Baud38400);
    }
    //2、设置数据位
    if(ui->comboBox_dataBits->currentText() == "5")
    {
        serial->setDataBits(QSerialPort::Data5);
    }
    else if(ui->comboBox_dataBits->currentText() == "6")
    {
        serial->setDataBits(QSerialPort::Data6);
    }
    else if(ui->comboBox_dataBits->currentText() == "7")
    {
        serial->setDataBits(QSerialPort::Data7);
    }
    else if(ui->comboBox_dataBits->currentText() == "8")
    {
        serial->setDataBits(QSerialPort::Data8);
    }

    //3、设置奇偶校验位
    if(ui->comboBox_parity->currentText() == "None")
    {
        serial->setParity(QSerialPort::NoParity);
    }

    //4、设置停止位
    if(ui->comboBox_stopBits->currentText() == "1.5")
    {
        serial->setStopBits(QSerialPort::OneAndHalfStop);
    }
    else if(ui->comboBox_stopBits->currentText() == "1")
    {
        serial->setStopBits(QSerialPort::OneStop);
    }
    else if(ui->comboBox_stopBits->currentText() == "2")
    {
        serial->setStopBits(QSerialPort::TwoStop);
    }
    //5、打开串口
    serial->open(QIODevice::ReadWrite);
相关推荐
呱呱巨基7 分钟前
c语言 文件操作
c语言·开发语言·c++·笔记·学习
嗯嗯**1 小时前
Neo4j学习1:概述、安装
学习·neo4j·概述·安装·图数据库·jdk21
Century_Dragon2 小时前
新能源汽车教学新体验:大众ID.4结构原理教学软件
学习
yangzheui2 小时前
【VUE2转VUE3学习笔记】-Day1:模板语法
vue.js·笔记·学习
C语言小火车2 小时前
Qt样式实现方式详解:六大方法全面解析
c语言·c++·qt·学习
Timmylyx05182 小时前
类欧几里得学习笔记
笔记·学习·算法
晚霞的不甘2 小时前
Flutter for OpenHarmony构建全功能视差侧滑菜单系统:从动效设计到多页面导航的完整实践
前端·学习·flutter·microsoft·前端框架·交互
d_b_2 小时前
UCIE 笔记(一)
笔记·学习·芯片
悠哉悠哉愿意3 小时前
【强化学习学习笔记】强化学习简介
笔记·学习·强化学习
星火开发设计3 小时前
C++ 输入输出流:cin 与 cout 的基础用法
java·开发语言·c++·学习·算法·编程·知识