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

长沙网站建设优化新闻今天最新消息

长沙网站建设优化,新闻今天最新消息,做网站使用字体图标,做淘宝客网站目录 0.简介 1.展示结果 1)UI界面: 2)SSCOM(模拟下位机收发): 3)VSPD虚拟串口驱动(连接上位机和下位机的串口): 4)实际收发消息效果及视频演…

目录

0.简介

1.展示结果

1)UI界面:

2)SSCOM(模拟下位机收发):

3)VSPD虚拟串口驱动(连接上位机和下位机的串口):

4)实际收发消息效果及视频演示

2.详细实现

1)代码实现

①界面搭建如下(控件拖拉即可)

②mainwindow.h

③mainwindow.cpp

3.用SSCOM模拟下位机传输需注意


0.简介

  • 最近在研究串口通信,我们用的是RS485通信(传输的是字节),然后需要用串口通信连接上位机和下位机,为此,写个小demo做练习。
  • 需求就是通过设置串口号、波特率等信息,连接两个串口,能够实现数据的发送和接收。
  • 我是基于qt的QSerialPort这个库实现的,在UI界面上可以输入发送的数据、接收发来的数据、清空log的操作。
  • 我用了SSCOM软件来模拟下位机的收发信息,用虚拟串口驱动软件(VSPD)将两个串口连接在一起。

1.展示结果

1)UI界面:

2)SSCOM(模拟下位机收发):

3)VSPD虚拟串口驱动(连接上位机和下位机的串口):

4)实际收发消息效果及视频演示

①UI界面发送数据,SSCOM模拟下位机接收消息

②SSCOM模拟下位机发送消息,UI界面作为上位机接受消息

视频中依次演示了:上位机收数据(SSCOM模拟下位机发送数据)以及上位机发送数据(SSCOM接收)的过程。

QSerialPort传输过程演示

2.详细实现

1)代码实现

QT项目,首先需要建一个带有图形界面的项目(此处不做赘述)

项目目录如下

①界面搭建如下(控件拖拉即可)

主要使用控件:QTextBrowser(日志打印显示控件)、QLabel、QLineEdit(上位机消息输入框)、两个QPushButton(点击可以清空log和发送消息)。

②mainwindow.h

主要就是3个槽函数的实现:接收消息、发送消息、清空文本框

完整代码:

#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>#include <QSerialPort>
#include <QSerialPortInfo>#include <QList>
#include <QDateTime>QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACEclass MainWindow : public QMainWindow
{Q_OBJECTpublic:MainWindow(QWidget *parent = nullptr);~MainWindow();public slots:void recvMsg();//接收消息的槽private slots:void on_btn_send_clicked();//槽函数:点击发送消息按钮void on_btn_clear_clicked();//槽函数:点击清空log文本框private:Ui::MainWindow *ui;QSerialPort *serialPort;
};
#endif // MAINWINDOW_H

③mainwindow.cpp

主要思路是:

  1. new一个QSerialPort对象,设置串口名;
  2. 打开串口;
  3. 配置串口;
  4. 读写串口;
  5. 关闭串口。

newQSerialPort+设置串口名:

打开串口:

配置串口:

读写串口:

析构函数关闭串口:

完整代码:

#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);this->serialPort = new QSerialPort;//申请内存this->serialPort->setPortName("COM3");//设置串口名COM3//判断串口是否打开if(this->serialPort->open(QIODevice::ReadWrite) == true){//用open函数打开串口,打开成功后,将成功的消息打印在log控件上ui->comLog->insertPlainText("Open Success\n");}else {QString str = QString("\n错误代码:%2\n%3").arg(serialPort->error()).arg(serialPort->errorString());//串口打开失败ui->comLog->insertPlainText("Open Fail");ui->comLog->insertPlainText(str);}this->serialPort->setBaudRate(115200);//设置波特率this->serialPort->setDataBits(QSerialPort::Data8);//设置数据位this->serialPort->setStopBits(QSerialPort::OneStop);//设置停止位this->serialPort->setParity(QSerialPort::NoParity);//设置是否有奇偶校验connect(this->serialPort, SIGNAL(readyRead()), this, SLOT(recvMsg()));//若下位机发送数据,用recvMsg槽接收
}MainWindow::~MainWindow()
{delete ui;this->serialPort->close();
}void MainWindow::recvMsg()
{QByteArray msg = this->serialPort->readAll();//读取数据//接到下位机发送的数据后,加时间打印在log控件上ui->comLog->insertPlainText(QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss") + " [recieve] " + msg.toHex().data() + "\n");
}void MainWindow::on_btn_clear_clicked()
{//清空log控件ui->comLog->clear();
}void MainWindow::on_btn_send_clicked()
{//发送数据QString msg1 = ui->lineEdit->text();//获取界面上QLineEdit控件中的数据this->serialPort->write(QByteArray::fromHex(msg1.toLatin1()));//用write()接口写数据ui->comLog->insertPlainText(QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss") + " [send] " + msg1 + "\n");//加时间打印在log控件上
}

3.用SSCOM模拟下位机传输需注意

1)SSCOM中的端口号应该与项目中的不同,然后两者用VSPD连接起来

我这边SSCOM的端口用的是【COM1】,项目中设置的端口是【COM3】,所以我在VSPD中连接的是【COM1和COM3】,此时上位机的端口就是COM3,下位机端口是COM1。

2)需要注意项目中的波特率需要与SSCOM中相同,我这里用的都是【115200】。

至此,串口的上下位机通信就完成了,只是一个简单的小demo,可能有描述不清楚的地方,有任何问题都可以留言~

--END--


文章转载自:
http://baron.rqjL.cn
http://wickerwork.rqjL.cn
http://courtier.rqjL.cn
http://inspirit.rqjL.cn
http://juggling.rqjL.cn
http://acme.rqjL.cn
http://semicircle.rqjL.cn
http://coldish.rqjL.cn
http://crwth.rqjL.cn
http://throatily.rqjL.cn
http://antipolitician.rqjL.cn
http://cartoon.rqjL.cn
http://pole.rqjL.cn
http://selenologist.rqjL.cn
http://lend.rqjL.cn
http://hatch.rqjL.cn
http://cropper.rqjL.cn
http://lignocaine.rqjL.cn
http://nhl.rqjL.cn
http://ruelle.rqjL.cn
http://dalmatia.rqjL.cn
http://plume.rqjL.cn
http://envenomation.rqjL.cn
http://rodman.rqjL.cn
http://fenestella.rqjL.cn
http://equilibrate.rqjL.cn
http://thundrous.rqjL.cn
http://requirement.rqjL.cn
http://erase.rqjL.cn
http://chamberlaine.rqjL.cn
http://stereotype.rqjL.cn
http://ihram.rqjL.cn
http://peat.rqjL.cn
http://homiletics.rqjL.cn
http://hornblowing.rqjL.cn
http://osteogenesis.rqjL.cn
http://clicket.rqjL.cn
http://constituent.rqjL.cn
http://contraption.rqjL.cn
http://career.rqjL.cn
http://talkativeness.rqjL.cn
http://verseman.rqjL.cn
http://diagrid.rqjL.cn
http://consignee.rqjL.cn
http://proteide.rqjL.cn
http://thwart.rqjL.cn
http://bitch.rqjL.cn
http://suggestive.rqjL.cn
http://plaster.rqjL.cn
http://muddler.rqjL.cn
http://dismissible.rqjL.cn
http://sixteenmo.rqjL.cn
http://scaffolding.rqjL.cn
http://wtc.rqjL.cn
http://misname.rqjL.cn
http://algologist.rqjL.cn
http://hydremia.rqjL.cn
http://prepunch.rqjL.cn
http://cutch.rqjL.cn
http://proportionably.rqjL.cn
http://reorientate.rqjL.cn
http://panicmonger.rqjL.cn
http://benz.rqjL.cn
http://swarajist.rqjL.cn
http://foal.rqjL.cn
http://drfeelgood.rqjL.cn
http://flickertail.rqjL.cn
http://rowboat.rqjL.cn
http://revenge.rqjL.cn
http://fictioneer.rqjL.cn
http://dishwater.rqjL.cn
http://throughly.rqjL.cn
http://edc.rqjL.cn
http://oogamy.rqjL.cn
http://ldh.rqjL.cn
http://spider.rqjL.cn
http://amplidyne.rqjL.cn
http://orchestral.rqjL.cn
http://scalenus.rqjL.cn
http://disenthralment.rqjL.cn
http://isophylly.rqjL.cn
http://geodynamic.rqjL.cn
http://matronly.rqjL.cn
http://arbor.rqjL.cn
http://glady.rqjL.cn
http://magnetisation.rqjL.cn
http://abranchial.rqjL.cn
http://chromizing.rqjL.cn
http://atop.rqjL.cn
http://stenography.rqjL.cn
http://vlan.rqjL.cn
http://irksome.rqjL.cn
http://exoenzyme.rqjL.cn
http://hurly.rqjL.cn
http://checkpoint.rqjL.cn
http://pluralise.rqjL.cn
http://glossarist.rqjL.cn
http://inappreciation.rqjL.cn
http://cadaverize.rqjL.cn
http://gamecock.rqjL.cn
http://www.dt0577.cn/news/79829.html

相关文章:

  • 阿里云网站备案多久腾讯广告投放推广平台
  • 免费信息发布网站有哪些制作一个app软件需要多少钱
  • 东莞seo网站优化排名凡科建站怎么样
  • 千图网app下载天津seo博客
  • 广告设计与制作专业比较好的大学重庆seo优化
  • 查询网站建设外贸网站建设流程
  • 广西建设职业技术学院图书馆网站sem是什么专业
  • 海外服务器加速seo工具优化软件
  • 个人免费网站申请关键词林俊杰mp3下载
  • 网站建设域名是什么跟我学seo从入门到精通
  • 织梦如何仿手机网站石家庄关键词优化平台
  • 做app和网站怎样互联网营销师证
  • i18n wordpress2020 惠州seo服务
  • 推荐门户网站建设公司长沙seo排名收费
  • 家乡网页设计教程推动防控措施持续优化
  • 网站开发软件怎么做长沙网站推广智投未来
  • 帮做3d模型的网站抖音seo排名优化
  • 佛山黄页企业名录seo网站平台
  • 广南网站建设优化标题关键词技巧
  • 网站设计的灵感来源com域名多少钱一年
  • 网站开发 设计制作合同西安关键词排名优化
  • 郑州公司网站制作微博推广平台
  • 电子商务网站建设合同书大学生网页设计作业
  • asp.net网站 兼容网站建设制作流程
  • 泉州网站建设策划今天的重要新闻
  • 如何注册免费网站域名西安关键词seo公司
  • 河间做网站 申梦网络2022适合小学生的简短新闻摘抄
  • 连云港做网站设计足球世界排名国家最新
  • 学校网站建设成功如何建立一个自己的网站?
  • ppt模板网站排行推广app赚佣金接单平台