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

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

在QT5中,串口通信是借助一個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查閱手冊。舉個例子,如果我們想查看QSerialPort的其它的屬性,可以選擇QSerialPort的類名或成員函數(shù),然后按F1。
二 讀取數(shù)據(jù)

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

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

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

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

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文章
715瀏覽量
59037 -
串口通信
+關(guān)注
關(guān)注
34文章
1662瀏覽量
57994 -
上位機(jī)
+關(guān)注
關(guān)注
27文章
1002瀏覽量
57080 -
TTL模塊
+關(guān)注
關(guān)注
0文章
4瀏覽量
2555
原文標(biāo)題:干貨分享 | QT5串口編程——編寫簡單的上位機(jī)
文章出處:【微信號:你身邊的機(jī)器人專家,微信公眾號:你身邊的機(jī)器人專家】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
Qt5 學(xué)習(xí)之路及嵌入式開發(fā)教程14:Qt5主窗口---界面設(shè)置
基于RS232串口實(shí)現(xiàn)PIC單片機(jī)下位機(jī)與QT上位機(jī)通信
STM32串口通訊
手把手教你編寫一個上位機(jī)
QT實(shí)現(xiàn)簡單的上位機(jī)軟件
QT串口數(shù)據(jù)接收上位機(jī)
qt stm32串口示例以及l(fā)ed上位機(jī)
QT5串口編程——編寫簡單的上位機(jī)
Qt5實(shí)現(xiàn)上位機(jī)與串口通信
QT5串口編程—編寫簡單的上位機(jī)
評論