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);
相关推荐
●VON2 分钟前
《从零到企业级:基于 DevUI 的 B 端云控制台实战搭建指南》
学习·华为·openharmony·devui·企业级项目
(●—●)橘子……4 分钟前
力扣344.反转字符串 练习理解
python·学习·算法·leetcode·职场和发展
Lynnxiaowen9 分钟前
今天继续学习Kubernetes内容namespace资源对象和pod简介
linux·运维·学习·容器·kubernetes
梯度下降不了班11 分钟前
【mmodel/xDiT】多模态^_^从入门到放弃的学习路径
人工智能·学习·stable diffusion
不羁的木木17 分钟前
【开源鸿蒙跨平台开发学习笔记】Day08:React Native 开发 OpenHarmony —— RN 与原生调用全解析
笔记·学习·harmonyos
冬夜戏雪18 分钟前
【java学习日记】【2025.12.3】【3/60】
学习
LO嘉嘉VE21 分钟前
学习笔记二十四:支持向量机-对偶问题
笔记·学习·支持向量机
爱凤的小光23 分钟前
Git自我学习笔记
笔记·git·学习
玖日大大29 分钟前
基于 Hugging Face Transformers 搭建情感分析模型:从原理到实战
人工智能·学习
其美杰布-富贵-李1 小时前
SpaceClaim 流体域建模学习笔记
笔记·学习