下面開始介紹串口類的使用。
首先,QT5是自帶QSerialPort這個(gè)類的,使用時(shí)需要在pro文件里面添加一行:
然后直接引用頭文件就可以了。
在QT5中,串口通信是借助一個(gè)QSerialPort的對象來實(shí)現(xiàn)的,在設(shè)置QSerialPort對象對串口的名稱、波特率、數(shù)據(jù)位、校驗(yàn)位、停止位等參數(shù)后,方能對串口進(jìn)行讀寫。
下面,我總結(jié)了一下借助QSerailPort對串口進(jìn)行設(shè)置、打開、讀、寫和關(guān)閉的過程。
一 設(shè)置和打開串口
以上代碼是QSerialPort對象的設(shè)置示例,作用是:
設(shè)置串口名為 COM3
設(shè)置波特率為9600
設(shè)置數(shù)據(jù)位為8位
設(shè)置沒有奇偶校驗(yàn)位
設(shè)置停止位為1位
設(shè)置沒有流控制
以可讀寫的方式打開串口
設(shè)置完這些就能進(jìn)行讀寫操作了。如果遇到不理解的地方,可以選擇QT的類或函數(shù),然后按F1查閱手冊。舉個(gè)例子,如果我們想查看QSerialPort的其它的屬性,可以選擇QSerialPort的類名或成員函數(shù),然后按F1。
二 讀取數(shù)據(jù)
串口在收到數(shù)據(jù)后,會將數(shù)據(jù)存入接收緩沖區(qū)。此時(shí),我們可以通過readAll()函數(shù)將接收緩沖區(qū)的數(shù)據(jù)讀出來。當(dāng)串口的接收緩沖區(qū)有數(shù)據(jù)時(shí),QSerilaPort對象會發(fā)出一個(gè)readyRead()的信號。因此,我們可以編寫一個(gè)槽函數(shù)來讀數(shù)據(jù),例如:
三 發(fā)送數(shù)據(jù)
使用write函數(shù)便可以把字節(jié)數(shù)組中的字節(jié)發(fā)送出去。
四 關(guān)閉串口
串口不用時(shí),可通過close()函數(shù)將其關(guān)閉。
接下來是一個(gè)實(shí)例
1、創(chuàng)建一個(gè)新的Widgets Appliaction工程
2、使用QtCreator的ui文件來設(shè)計(jì)上位機(jī)的界面,設(shè)計(jì)如下:
3、mainwindow.h文件內(nèi)容如下:
4、mainwindow.cpp文件內(nèi)容如下:
5、main.cpp文件內(nèi)容如下:
6、測試(將USB轉(zhuǎn)TTL模塊發(fā)送和接收引腳短接,自己發(fā)自己收)
審核編輯:劉清
-
USB接口
+關(guān)注
關(guān)注
9文章
699瀏覽量
55538 -
串口通信
+關(guān)注
關(guān)注
34文章
1607瀏覽量
55381 -
上位機(jī)
+關(guān)注
關(guān)注
27文章
930瀏覽量
54696 -
TTL模塊
+關(guān)注
關(guān)注
0文章
4瀏覽量
2352
原文標(biāo)題:干貨分享 | QT5串口編程——編寫簡單的上位機(jī)
文章出處:【微信號:你身邊的機(jī)器人專家,微信公眾號:你身邊的機(jī)器人專家】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論