雖然現在大多數的家用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...