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);
相关推荐
ndjnddjxn8 小时前
Rust学习
开发语言·学习·rust
菜鸟‍8 小时前
【后端学习】MySQL数据库
数据库·后端·学习·mysql
陈天伟教授8 小时前
基于学习的人工智能(1)机器学习
人工智能·学习
im_AMBER8 小时前
Leetcode 59 二分搜索
数据结构·笔记·学习·算法·leetcode
专注于大数据技术栈8 小时前
java学习--final
java·开发语言·学习
田里的水稻9 小时前
AI_常见“XX学习”术语速查表
人工智能·学习
Nan_Shu_6149 小时前
学习:Sass
javascript·学习·es6
天殇凉9 小时前
AC自动机学习笔记
java·笔记·学习
AA陈超9 小时前
从0开始学习 **Lyra Starter Game** 项目
c++·笔记·学习·游戏·ue5·lyra
rchmin11 小时前
Prompt Engineering 从入门到精通的系统学习路径
人工智能·学习·prompt