如果用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-