如果用qt写程序作为上位机,然后通过和usb和下位机通信的时候,就需要用到qt中的串口通信了。
0、界面:

1、代码:
1).pro 添加:
QT +=serialport
2)主函数 main.cpp 添加:
#include "mywidget.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
myWidget w;
w.show();
return a.exec();
}
3)myWidget.h 添加:
#ifdef WIN32
#pragma execution_character_set("utf-8")
#endif
#ifndef MYWIDGET_H
#define MYWIDGET_H
#include <QWidget>
#include <QSerialPort>
#include <QSerialPortInfo>
#include <QDebug>
#include <QMessageBox>
namespace Ui {
class myWidget;
}
class myWidget : public QWidget
{
Q_OBJECT
public:
explicit myWidget(QWidget *parent = 0);
~myWidget();
void initUI();
public slots:
void receiveInfo();
private slots:
void on_m_OpenPortButton_clicked();
void on_btn_Send_clicked();
private:
Ui::myWidget *ui;
private:
QStringList getPortNameList(); // 获取所有可用的串口列表
QSerialPort* m_serialPort; // 串口类
QStringList m_portNameList; // 端口名列表
private:
void sendInfo(char* info,int len);
void sendInfo(QString &info);
void convertStringToHex(const QString &str, QByteArray &byteData);
char convertCharToHex(char ch);
};
#endif // MYWIDGET_H
4)myWidget.cpp 添加:
#include "mywidget.h"
#include "ui_mywidget.h"
myWidget::myWidget(QWidget *parent) :
QWidget(parent),
ui(new Ui::myWidget)
{
ui->setupUi(this);
m_serialPort = new QSerialPort();
this->setWindowTitle("QSerialPort");
// 设置默认选项
ui-

本文介绍了如何在QT环境中创建一个上位机程序,利用串口通信与USB连接的下位机进行交互。详细展示了从界面设计到代码实现的全过程,包括.pro文件的修改、main.cpp、myWidget.h及myWidget.cpp的代码添加。
最低0.47元/天 解锁文章
1786

被折叠的 条评论
为什么被折叠?



