下面開始介紹串口類的使用。
首先,QT5是自帶QSerialPort這個類的,使用時需要在pro文件里面添加一行:
然后直接引用頭文件就可以了。
在QT5中,串口通信是借助一個QSerialPort的對象來實現的,在設置QSerialPort對象對串口的名稱、波特率、數據位、校驗位、停止位等參數后,方能對串口進行讀寫。
下面,我總結了一下借助QSerailPort對串口進行設置、打開、讀、寫和關閉的過程。
一 設置和打開串口
以上代碼是QSerialPort對象的設置示例,作用是:
設置串口名為 COM3
設置波特率為9600
設置數據位為8位
設置沒有奇偶校驗位
設置停止位為1位
設置沒有流控制
以可讀寫的方式打開串口
設置完這些就能進行讀寫操作了。如果遇到不理解的地方,可以選擇QT的類或函數,然后按F1查閱手冊。舉個例子,如果我們想查看QSerialPort的其它的屬性,可以選擇QSerialPort的類名或成員函數,然后按F1。
二 讀取數據
串口在收到數據后,會將數據存入接收緩沖區。此時,我們可以通過readAll()函數將接收緩沖區的數據讀出來。當串口的接收緩沖區有數據時,QSerilaPort對象會發出一個readyRead()的信號。因此,我們可以編寫一個槽函數來讀數據,例如:
三 發送數據
使用write函數便可以把字節數組中的字節發送出去。
四 關閉串口
串口不用時,可通過close()函數將其關閉。
接下來是一個實例
2、使用QtCreator的ui文件來設計上位機的界面,設計如下:
3、mainwindow.h文件內容如下:
4、mainwindow.cpp文件內容如下:
5、main.cpp文件內容如下:
6、測試(將USB轉TTL模塊發送和接收引腳短接,自己發自己收)
審核編輯:劉清
-
USB接口
+關注
關注
9文章
702瀏覽量
55832 -
串口通信
+關注
關注
34文章
1627瀏覽量
55733 -
上位機
+關注
關注
27文章
945瀏覽量
55007 -
TTL模塊
+關注
關注
0文章
4瀏覽量
2398
原文標題:干貨分享 | QT5串口編程——編寫簡單的上位機
文章出處:【微信號:你身邊的機器人專家,微信公眾號:你身邊的機器人專家】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
Qt5 學習之路及嵌入式開發教程14:Qt5主窗口---界面設置
![<b class='flag-5'>Qt5</b> 學習之路及嵌入式開發教程14:<b class='flag-5'>Qt5</b>主窗口---界面設置](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
STM32串口通訊
![STM32<b class='flag-5'>串口</b>通訊](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
QT實現簡單的上位機軟件
![<b class='flag-5'>QT</b>實現<b class='flag-5'>簡單</b>的<b class='flag-5'>上位</b><b class='flag-5'>機</b>軟件](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
QT5串口編程——編寫簡單的上位機
![<b class='flag-5'>QT5</b><b class='flag-5'>串口</b><b class='flag-5'>編程</b>——<b class='flag-5'>編寫</b><b class='flag-5'>簡單</b>的<b class='flag-5'>上位</b><b class='flag-5'>機</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
Qt5實現上位機與串口通信
![<b class='flag-5'>Qt5</b>實現<b class='flag-5'>上位</b><b class='flag-5'>機</b>與<b class='flag-5'>串口</b>通信](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評論