下面開始介紹串口類的使用。
首先,QT5是自帶QSerialPort這個類的,使用時需要在pro文件里面添加一行:

然后直接引用頭文件就可以了。

在QT5中,串口通信是借助一個QSerialPort的對象來實現(xiàn)的,在設置QSerialPort對象對串口的名稱、波特率、數(shù)據(jù)位、校驗位、停止位等參數(shù)后,方能對串口進行讀寫。
下面,我總結了一下借助QSerailPort對串口進行設置、打開、讀、寫和關閉的過程。
一 設置和打開串口

以上代碼是QSerialPort對象的設置示例,作用是:
設置串口名為 COM3
設置波特率為9600
設置數(shù)據(jù)位為8位
設置沒有奇偶校驗位
設置停止位為1位
設置沒有流控制
以可讀寫的方式打開串口
設置完這些就能進行讀寫操作了。如果遇到不理解的地方,可以選擇QT的類或函數(shù),然后按F1查閱手冊。舉個例子,如果我們想查看QSerialPort的其它的屬性,可以選擇QSerialPort的類名或成員函數(shù),然后按F1。
二 讀取數(shù)據(jù)

串口在收到數(shù)據(jù)后,會將數(shù)據(jù)存入接收緩沖區(qū)。此時,我們可以通過readAll()函數(shù)將接收緩沖區(qū)的數(shù)據(jù)讀出來。當串口的接收緩沖區(qū)有數(shù)據(jù)時,QSerilaPort對象會發(fā)出一個readyRead()的信號。因此,我們可以編寫一個槽函數(shù)來讀數(shù)據(jù),例如:

三 發(fā)送數(shù)據(jù)

使用write函數(shù)便可以把字節(jié)數(shù)組中的字節(jié)發(fā)送出去。
四 關閉串口

串口不用時,可通過close()函數(shù)將其關閉。
接下來是一個實例
1、創(chuàng)建一個新的Widgets Appliaction工程
2、使用QtCreator的ui文件來設計上位機的界面,設計如下:

3、mainwindow.h文件內(nèi)容如下:


4、mainwindow.cpp文件內(nèi)容如下:




5、main.cpp文件內(nèi)容如下:

6、測試(將USB轉(zhuǎn)TTL模塊發(fā)送和接收引腳短接,自己發(fā)自己收)

審核編輯:劉清
-
USB接口
+關注
關注
9文章
715瀏覽量
59049 -
串口通信
+關注
關注
34文章
1662瀏覽量
58012 -
上位機
+關注
關注
27文章
1004瀏覽量
57108 -
TTL模塊
+關注
關注
0文章
4瀏覽量
2555
原文標題:干貨分享 | QT5串口編程——編寫簡單的上位機
文章出處:【微信號:你身邊的機器人專家,微信公眾號:你身邊的機器人專家】歡迎添加關注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
Qt5 學習之路及嵌入式開發(fā)教程14:Qt5主窗口---界面設置
STM32串口通訊
QT實現(xiàn)簡單的上位機軟件
QT串口數(shù)據(jù)接收上位機
qt stm32串口示例以及l(fā)ed上位機
QT5串口編程——編寫簡單的上位機
Qt5實現(xiàn)上位機與串口通信
QT5串口編程—編寫簡單的上位機
評論