您的位置:首页 > 游戏 > 游戏 > 海外网购平台排名前十_湖南郴州市区号_网站建设的技术支持_windows优化大师好用吗

海外网购平台排名前十_湖南郴州市区号_网站建设的技术支持_windows优化大师好用吗

2025/1/11 1:49:38 来源:https://blog.csdn.net/mabing993/article/details/144887163  浏览:    关键词:海外网购平台排名前十_湖南郴州市区号_网站建设的技术支持_windows优化大师好用吗
海外网购平台排名前十_湖南郴州市区号_网站建设的技术支持_windows优化大师好用吗

使用 vspd 创建虚拟配对串口,Qt 实现下位机串口模拟器,便于上位机开发及实时调试,适用字符串格式上下位机串口通信,数据包格式需增加自定义解析处理。

通过以下链接下载 vspd 安装包,进行 dll 破解。

链接: https://pan.baidu.com/s/1vMgZKbdx9TF1ZB1QD1vQhg 提取码: 6is9

通过 Add pair 增加一对虚拟串口,vspd 内部已实现串口数据双向关联,直接当成已物理连接的串口使用即可,Add pair 后 vspd 可以关掉,以后使用虚拟串口无需再打开 vspd。

上位机连接配对串口的其中一个,下位机串口模拟器连接另一个。搭建 Qt 环境的基本串口工程,串口模拟器收到上位机命令后,模拟实际业务执行返回对应响应消息。

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QSerialPort>
#include <QSerialPortInfo>
#include <QDateTime>
#include <QTimer>MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);QFont font;font.setPixelSize(16);setFont(font);setWindowTitle(QStringLiteral("下位机串口模拟器"));const QList<QSerialPortInfo> ports = QSerialPortInfo::availablePorts();for (const QSerialPortInfo &portInfo : ports){ui->comboBox->addItem(portInfo.portName());}ui->comboBox->setCurrentText("COM12");ui->label->setText(QStringLiteral("<font color=black>●</font>"));QTimer::singleShot(0, this, SLOT(on_pushButton_clicked()));
}MainWindow::~MainWindow()
{delete ui;
}void MainWindow::receiveData()
{mReceivedData.append(mSerial.readAll());QString tmp = mReceivedData;mReceivedData.clear();ui->textBrowser->append(QStringLiteral("%1 接收:%2").arg(QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss.zzz")).arg(tmp));if (tmp == "cmd\r\n"){sendData("cmd--\r\n");}else if (tmp == "cmd2\r\n"){sendData("cmd2--\r\n");}
}void MainWindow::sendData(QString txt)
{QtSleepSec(1);mSerial.write(txt.toUtf8().data());ui->textBrowser->append(QStringLiteral("%1 回复:%2").arg(QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss.zzz")).arg(txt));
}void MainWindow::on_pushButton_clicked()
{mSerial.setPortName(ui->comboBox->currentText());mSerial.setBaudRate(115200);mSerial.setDataBits(QSerialPort::Data8);mSerial.setParity(QSerialPort::NoParity);mSerial.setStopBits(QSerialPort::OneStop);mSerial.setFlowControl(QSerialPort::NoFlowControl);if (mSerial.open(QIODevice::ReadWrite)){ui->label->setText(QStringLiteral("<font color=green>●</font>"));connect(&mSerial, SIGNAL(readyRead()), this, SLOT(receiveData()));ui->pushButton->setEnabled(false);}else{ui->label->setText(QStringLiteral("<font color=red>●</font>"));}
}void MainWindow::on_pushButton_2_clicked()
{if (mSerial.isOpen()){mSerial.close();}ui->pushButton->setEnabled(true);ui->label->setText(QStringLiteral("<font color=black>●</font>"));
}void MainWindow::on_pushButton_3_clicked()
{ui->textBrowser->clear();
}void MainWindow::QtSleepSec(unsigned int sec)
{QTime dieTime = QTime::currentTime().addSecs(sec);while (QTime::currentTime() < dieTime){QCoreApplication::processEvents(QEventLoop::AllEvents, 100);}
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com