大家好,今天主要和大家分享一下,如何使用QT中的串口通信方法。
第一:资源简介
在开发板的资源中出厂系统中,默认已经配置了两路串口可用。一路是调试串口UART1(对应用系统里的节点/dev/ttymxc0),另一路是UART3(对应系统里的节点/dev/ttymxc2)。由于UART1已经作为调试串口被使用。所以只能对UART3编程。
第二:应用实例的具体实现
需要在pro项目文件中添加串口模块的支持。
QT += core gui serialport
在头文件“mainwindow.h”的具体代码实现
1 #ifndef MAINWINDOW_H 2 #define MAINWINDOW_H 3 4 #include <QMainWindow> 5 #include <QSerialPort> 6 #include <QSerialPortInfo> 7 #include <QPushButton> 8 #include <QTextBrowser> 9 #include <QTextEdit> 10 #include <QVBoxLayout> 11 #include <QLabel> 12 #include <QComboBox> 13 #include <QGridLayout> 14 #include <QMessageBox> 15 #include <QDebug> 16 17 class MainWindow : public QMainWindow 18 { 19 Q_OBJECT 20 21 public: 22 MainWindow(QWidget *parent = nullptr); 23 ~MainWindow(); 24 25 private: 26 /* 串口对象 */ 27 QSerialPort *serialPort; 28 29 /* 用作接收数据 */ 30 QTextBrowser *textBrowser; 31 32 /* 用作发送数据 */ 33 QTextEdit *textEdit; 34 35 /* 按钮 */ 36 QPushButton *pushButton[2]; 37 38 /* 下拉选择盒子 */ 39 QComboBox *comboBox[5]; 40 41 /* 标签 */ 42 QLabel *label[5]; 43 44 /* 垂直布局 */ 45 QVBoxLayout *vboxLayout; 46 47 /* 网络布局 */ 48 QGridLayout *gridLayout; 49 50 /* 主布局 */ 51 QWidget *mainWidget; 52 53 /* 设置功能区域 */ 54 QWidget *funcWidget; 55 56 /* 布局初始化 */ 57 void layoutInit(); 58 59 /* 扫描系统可用串口 */ 60 void scanSerialPort(); 61 62 /* 波特率项初始化 */ 63 void baudRateItemInit(); 64 65 /* 数据位项初始化 */ 66 void dataBitsItemInit(); 67 68 /* 检验位项初始化 */ 69 void parityItemInit(); 70 71 /* 停止位项初始化 */ 72 void stopBitsItemInit(); 73 74 private slots: 75 void sendPushButtonClicked(); 76 void openSerialPortPushButtonClicked(); 77 void serialPortReadyRead(); 78 }; 79 #endif // MAINWINDOW_H
在mainwindow.cpp中的具体实现
1 #include "mainwindow.h" 2 #include <QDebug> 3 #include <QGuiApplication> 4 #include <QScreen> 5 #include <QRect> 6 7 MainWindow::MainWindow(QWidget *parent) 8 : QMainWindow(parent) 9 { 10 /* 布局初始化 */ 11 layoutInit(); 12 13 /* 扫描系统的串口 */ 14 scanSerialPort(); 15 16 /* 波特率项初始化 */ 17 baudRateItemInit(); 18 19 /* 数据位项初始化 */ 20 dataBitsItemInit(); 21 22 /* 检验位项初始化 */ 23 parityItemInit(); 24 25 /* 停止位项初始化 */ 26 stopBitsItemInit(); 27 }
分析:设置项目使用QT串口提供的方法,对串口进行参数配置就可以实现打开和关闭的功能。
第三:程序运行效果
下面为 Ubuntu 上仿真界面的效果,请将程序交叉编译后到开发板运行,用串口线连接开发板的 UART3 到电脑串口,在电脑用正点原子的 XCOM 上位机软件(或者本程序亦可当上位机软件),设置相同的串口参数,选择串口号为 ttymxc2(注意 ttymxc0 已经作为调试串口被使用了!),点击打开串口就可以进行消息收发了。