首先上位机和下位机实现通信才能实现上位机对下位机的控制,这个通信的实现就要利用串口通信。在上位机方面我们使用了QT自带的串口通信模块QSerialPort和QSerialPortinfo。这两个模块结合个可以创建一个串口对象,软件对串口的全部操作都是基于这个串口对象。 首先创建一个串口对象: 在创建一个串口对象之后首先要在计算机中查找可用的端口。实现部分如下: 把查找的端口名放在一个列表里面。在软件中是放在测试专用的界面的串口选择下拉框中,如图: 找到端口以后,比如端口名为COM1,要设置端口属性,比如波特率,停止位,打开模式等等。 然后打开串口 前面步骤做完后就可以实现和下位机实现通信。 发送数据,(用测试窗口发送) 接收数据,(用测试窗口接收,并且显示在调试窗口文本区) 演示: 下面是逻辑实现部分,给下位机依次发送什么样的数据。
基于惠斯通电桥原理实现精确测量电阻的方案
QSerialPort serial; // 全局串口对象
void Test::findSerial() // 查找计算机可用串口 { foreach(const QSerialPortInfo &info,QSerialPortInfo::availablePorts()) { QSerialPort tempSerial; tempSerial.setPort(info); if(tempSerial.open(QIODevice::ReadWrite)) { ui->comboBox_serialSelect->addItem(tempSerial.portName()); tempSerial.close(); } } }
void Test::initSerials() // 初始化串口 { serial.setPortName(ui->comboBox_serialSelect->currentText()); // 设置串口名 serial.setBaudRate(ui->comboBox_baudRate->currentText().toInt()); // 设置波特率 serial.setStopBits(QSerialPort::OneStop); // 设置停止位 serial.setDataBits(QSerialPort::Data8); // 设置数据位 serial.setParity(QSerialPort::NoParity); // 设置校验位 serial.setFlowControl(QSerialPort::NoFlowControl); // 设置流控制 }
serial.open(QIODevice::ReadWrite); // 以可读可写的方式打开串口
void Test::on_pushButton_send_clicked() { serial.write(ui->plainTextEdit_singleSend->toPlainText().toLatin1()); }
void Test::readData() { if(!isMainWindowUse) // 判断是否是主窗口调用 { QByteArray buf; buf = serial.readAll(); if(!buf.isEmpty()) { ui->plainTextEdit_receiveDisplay->appendPlainText(buf); } buf.clear(); } }
// 单次测量 void Test::slot_singleTest() { if(isMainWindowUse && isSingletest) { QByteArray temp = firstData; vis1 = serial.readAll(); // 从串口读取数据放在vis1中 if(i % 3 == 0 && i != 0) { if(i == 3) vis2 = vis1; // 获得第一组测量数据的电桥状态 if(vis2 != vis1) // 获得每组第三次收到的数据与第一组的数据进行比较判断电桥是否平衡 { //emit testDone(R0, R01, R1, R2, Rx); i = 0; return; } } serial.write(temp); vis1.clear(); i++; } }
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算