Qt 串列埠類QSerialPort 使用筆記

2021-08-04 07:08:40 字數 2444 閱讀 3364

雖然現在大多數的家用pc

機上已經不提供

rs232

介面了。但是由於

rs232

串列埠操作簡單、通訊可靠,在工業領域中仍然有大量的應用。

qt以前的版本中,沒有提供官方的對

rs232

串列埠的支援,編寫串列埠程式很不方便。現在好了,在 

qt5.1 

中提供了

qtserialport

模組,方便程式設計人員快速的開發應用串列埠的應用程式。 本文就簡單的講講

qtserialport

模組的使用。

當前的qtserialport

模組中提供了兩個

c++類,分別是

qserialport 

和qserialportinfo。

qserialport 類提供了操作串列埠的各種介面。

qserialportinfo 是乙個輔助類,可以提供計算機中可用串列埠的各種資訊。

先介紹 qserialportinfo 

的使用。下面是乙個簡單的例子,用來列舉出電腦上全部的串列埠裝置。

首先,需要在pro

檔案中增加如下內容:

qt += serialport

cpp 檔案如下:

[cpp]view plain

copy

#include 

#include 

#include 

intmain(

intargc, 

char

*argv)  

return

a.exec();  

}  

在我的電腦上顯示的結果如下:

[plain]view plain

copy

name :  "com1"  

description :  "通訊埠"  

manufacturer:  "(標準埠型別)"  

serial number:  ""  

system location:  "\\.\com1"  

name :  "com5"  

description :  "usb serial port"  

manufacturer:  "ftdi"  

serial number:  "a400g3uxa"  

system location:  "\\.\com5"  

通常,我們需要指定程式使用某乙個確定的串列埠,這時不能只使用串列埠名稱,因為usb

串列埠每次插在不同的

usb口上時獲得的串列埠名稱都可能有變化。這時可以利用串列埠的序列號,這個號碼一般來說是唯一的,比如下面的**,首先遍歷所有的串列埠,找到我們需要的串列埠後就返回。

[cpp]view plain

copy

#include 

#include 

#include 

intmain(

intargc, 

char

*argv)  

}  qdebug() << "name : "

<< com_info.portname();  

qdebug() << "description : "

<< com_info.description();  

qdebug() << "serialnumber: "

<< com_info.serialnumber();  

return

a.exec();  

}  

qserialport 負責具體的串列埠操作。選定串列埠後,要先開啟串列埠,才能設定波特率等引數。這些引數都設定好了就可以使用了。最基本的操作無非是

read() 

和 write()

。需要注意的是這兩個操作都是非阻塞的。

另外有乙個重要的signal 

也需要用到,那就是 

void qiodevice::readyread()

每次串列埠收到資料後都會發出這個signal

。我們的程式中需要定義乙個

slot

,並將其與這個

signal 

相連線。這樣,每次新資料到來後,我們就可以在

slot

中讀取資料了。這時一定要將串列埠緩衝區中的資料全部讀出來,可以利用

readall() 

來實現。

下面的**片段給出了設定串列埠的例子。

[cpp]view plain

copy

m_reader.setport(info);  

if(m_reader.open(qiodevice::readwrite))  

void

dialog::readyreadslot()  

QT實現串列埠除錯功能 QSerialPort類

1 簡介 本博文主要是介紹如何使用qt的串列埠類 qserialport 來實現串列埠的開發,使用這個類來實現串列埠的基本功能,比如如何查詢本機可用串列埠 com 開啟串列埠 設定串列埠波特率 設定資料位 設定校驗位 停止位等視窗屬性。還實現了十六進製制收發顯示資料,經過測試,本工程 可以在win7...

QT的串列埠類QSerialPort

一 串列埠類簡介 當前的qtserialport 模組中提供了兩個 c 類,分別是 qserialport 和qserialportinfo qserialport 類提供了操作串列埠的各種介面。qserialportinfo 是乙個輔助類,可以提供計算機中可用串列埠的各種資訊。先介紹 qseria...

Qt 串列埠類QSerialPort 學習筆記

一 串列埠類簡介 當前的qtserialport 模組中提供了兩個 c 類,分別是 qserialport 和qserialportinfo。qserialport 類提供了操作串列埠的各種介面。qserialportinfo 是乙個輔助類,可以提供計算機中可用串列埠的各種資訊。先介紹 qseria...