当前位置: 首页 > news >正文

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

 

http://www.lryc.cn/news/297887.html

相关文章:

  • 145. 二叉树的后序遍历
  • Postgresql 的编译安装与包管理安装, 全发行版 Linux 通用
  • 【Java EE初阶十】多线程进阶二(CAS等)
  • 与AI对话:编写高效Prompt的指南
  • QML用ListView实现带section的GridView
  • docker之程序镜像的制作
  • Git - 每次 git pull/push 时需要账号和密码解决方案
  • C语言中在main函数之后运行的函数
  • pytorch训练指标记录之tensoboard,wandb
  • C语言——oj刷题——实现字符串逆序
  • 空气质量预测 | Matlab实现基于SVR支持向量机回归的空气质量预测模型
  • Vue中的请求拦截器
  • Java奠基】对象数组练习
  • 排序算法---快速排序
  • 算法||实现典型数据结构的查找、添加和删除数据 并分析其时间和空间复杂度
  • 【蓝桥杯冲冲冲】Invasion of the Milkweed G
  • 【JAVA WEB】 百度热榜实现 新闻页面 Chrome 调试工具
  • Linux——动静态库
  • Vulnhub靶机:hacksudo-search
  • Leetcode 188 买卖股票的最佳时机 IV
  • win32编程系统BUG(Win32 API中的WM_SETTEXT消息)
  • Linux防火墙开放
  • 通过 docker-compose 部署 Flink
  • HarmonyOS ArkTS修改App的默认加载的界面(二十)
  • 【前端高频面试题--Vue基础篇】
  • Spring Boot 实现热插拔 AOP
  • 2月05日,每日信息差
  • 使用Python进行数据的描述性分析,用少量的描述性指标来概括大量的原始数据
  • 【JS逆向三】逆向某某网站的sign参数,并模拟生成仅供学习
  • 移动光猫gs3101超级密码及改桥接模式教程