免费获取学习方案
ARTICLE DETAIL

资讯详情

深耕编程基础知识与建站技术分享的一线实战洞察。

QT专题之串口编程 -上位机设计

QT专题之串口编程 -上位机设计 目录一、界面设计二、程序设计附件有程序源码三、验证Windows下将QT项目生成可执行文件exe一、界面设计首先正常创建一个新的工程的流程创建完成之后在.pro文件中添加serialport,即在头文件中添加串口类进入UI界面编辑界面的大小为800480先实现一个串口选择实现多个将所有组件进行水平布局设计比例垂直比例设为5:2接下来就要补充下QComboBox的内容波特率停止位数据位校验位如果我们不知道有哪些可以直接去帮助文档里面找即可以搜索例如至此界面设计结束接下来将会进行程序设计二、程序设计附件有程序源码像串口选择这里的QComboBox组件就不能像上面这样一个一个添加进去不行因为串口是未知的。其实QT提供了一个类可供扫描本机或者开发板上的可用串口它会将串口信息储存到一个容器里面遍历这个容器就可以提取这些串口的信息即在头文件中添加QSerialPortInfo串口信息类。那怎么把本机或者开发板上的可用串口添加到QComboBox里面呢遍历有一个方法foreach循环添加串口信息串口名字一个参数var是变量一个参数container是容器。串口信息类会扫描本机或者开发板上的串口会返回一个串口信息类的容器然后我们从这个容器里面读取串口信息。用串口的这个类设置这个串口//mainwindows.cpp void MainWindow::on_pushButton_clicked(bool checked) { if(checked){ //设置要打开的串口名字 serialport-setPortName(ui-comboBox-currentText()); //设置波特率 serialport-setBaudRate(ui-comboBox_2-currentText().toInt()); //设置停止位 serialport-setStopBits(QSerialPort::StopBits(ui-comboBox_3-currentText().toInt())); //设置数据位 serialport-setDataBits(QSerialPort::DataBits(ui-comboBox_4-currentText().toInt())); //设置校验位 switch (ui-comboBox_5-currentIndex()) { case 0: serialport-setParity(QSerialPort::NoParity); break; case 1: serialport-setParity(QSerialPort::EvenParity); break; case 2: serialport-setParity(QSerialPort::OddParity); break; case 3: serialport-setParity(QSerialPort::SpaceParity); break; case 4: serialport-setParity(QSerialPort::MarkParity); break; default: break; } //设置流控为无 serialport-setFlowControl(QSerialPort::NoFlowControl); if(!serialport-open(QIODevice::ReadWrite)) { QMessageBox::about(this, 错误, 串口打开失败可能已经被占用); return; } //打开串口后各选项变为灰色即不可选状态 ui-comboBox-setEnabled(false); ui-comboBox_2-setEnabled(false); ui-comboBox_3-setEnabled(false); ui-comboBox_4-setEnabled(false); ui-comboBox_5-setEnabled(false); ui-pushButton-setText(关闭串口); } else { //关闭串口 serialport-close(); ui-comboBox-setEnabled(true); ui-comboBox_2-setEnabled(true); ui-comboBox_3-setEnabled(true); ui-comboBox_4-setEnabled(true); ui-comboBox_5-setEnabled(true); ui-pushButton-setText(打开串口); } }在使用串口类之前要先实例化对象实例化之后打开串口的槽函数方才生效接下来实现“扫描本机的串口并且添加到下拉框列表”创建一个槽函数连接槽函数最后实现发送和清除发送的槽函数清除发送同理分别编写三、验证Windows下将QT项目生成可执行文件exe生成工程名.exe文件如下找到后将工程名.exe文件复制到一个空的文件夹中点击它并且将命令行工具定位到空的文件夹目录下windeployqt 工程名.exe执行成功后来到空的文件夹下执行后最终效果如下
返回列表