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);

 

相关推荐

  1. Qt 简单使用串口

    2024-02-09 00:42:02       13 阅读
  2. C++ QT串口通信(1)-串口模块QtSerialPort详解

    2024-02-09 00:42:02       22 阅读
  3. 使用 Qt API 获取串口信息

    2024-02-09 00:42:02       39 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-09 00:42:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-09 00:42:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-09 00:42:02       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-09 00:42:02       20 阅读

热门阅读

  1. 常见的Web前端开发框架推荐

    2024-02-09 00:42:02       34 阅读
  2. Linux 文件连接:符号链接与硬链接

    2024-02-09 00:42:02       31 阅读
  3. rust给py写拓展如此简单

    2024-02-09 00:42:02       37 阅读
  4. 记录分享Spring Boot集成MQTT(配有简单实现示例)

    2024-02-09 00:42:02       37 阅读
  5. 常用的 Linux 命令

    2024-02-09 00:42:02       31 阅读
  6. Day42 474一和零 完全背包理论基础 518零钱兑换II

    2024-02-09 00:42:02       33 阅读
  7. Go基础学习笔记-知识点

    2024-02-09 00:42:02       25 阅读
  8. chrome扩展插件常用文件及作用

    2024-02-09 00:42:02       30 阅读
  9. csapp-chapter3--mov指令

    2024-02-09 00:42:02       29 阅读
  10. 【Nginx介绍和使用——详细讲解】

    2024-02-09 00:42:02       32 阅读
  11. FATFS学习笔记——FATFS写文件的两种方式

    2024-02-09 00:42:02       33 阅读