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

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

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

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

串口在收到數(shù)據(jù)后,會(huì)將數(shù)據(jù)存入接收緩沖區(qū)。此時(shí),我們可以通過readAll()函數(shù)將接收緩沖區(qū)的數(shù)據(jù)讀出來。當(dāng)串口的接收緩沖區(qū)有數(shù)據(jù)時(shí),QSerilaPort對(duì)象會(huì)發(fā)出一個(gè)readyRead()的信號(hào)。因此,我們可以編寫一個(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、測(cè)試(將USB轉(zhuǎn)TTL模塊發(fā)送和接收引腳短接,自己發(fā)自己收)

審核編輯:劉清
-
USB接口
+關(guān)注
關(guān)注
9文章
713瀏覽量
58757 -
串口通信
+關(guān)注
關(guān)注
34文章
1661瀏覽量
57834 -
上位機(jī)
+關(guān)注
關(guān)注
27文章
1001瀏覽量
56898 -
TTL模塊
+關(guān)注
關(guān)注
0文章
4瀏覽量
2546
原文標(biāo)題:干貨分享 | QT5串口編程——編寫簡(jiǎn)單的上位機(jī)
文章出處:【微信號(hào):你身邊的機(jī)器人專家,微信公眾號(hào):你身邊的機(jī)器人專家】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
QT串口通信的簡(jiǎn)單使用
Qt5 學(xué)習(xí)之路及嵌入式開發(fā)教程14:Qt5主窗口---界面設(shè)置
基于RS232串口實(shí)現(xiàn)PIC單片機(jī)下位機(jī)與QT上位機(jī)通信
STM32串口通訊
基于QT的簡(jiǎn)單的上位機(jī)
手把手教你編寫一個(gè)上位機(jī)
QT|編寫一個(gè)簡(jiǎn)單的上位機(jī)
QT實(shí)現(xiàn)簡(jiǎn)單的上位機(jī)軟件
QT串口數(shù)據(jù)接收上位機(jī)
qt stm32串口示例以及l(fā)ed上位機(jī)
QT5串口編程——編寫簡(jiǎn)單的上位機(jī)
Qt5實(shí)現(xiàn)上位機(jī)與串口通信
QT5串口編程—編寫簡(jiǎn)單的上位機(jī)
評(píng)論