當前位置:名人名言大全網 - 端午節短信 - 如何在QT中讀取串行數據

如何在QT中讀取串行數據

首先,文件下載

文件下載地址:

妳也可以下載我上傳到網盤的東西:

二、文件內容介紹

1.下載的文件是qextserialport-1.2 win-alpha,解壓打開後內容如下。

(點擊圖片查看清晰大圖)

下面分別介紹:

(1)doc文件夾中的文件內容是對QextSerialPort類和QextBaseType的簡單描述,我們可以用記事本程序打開它們。

(2)示例文件夾中有幾個示例程序。妳可以看看它的源代碼,但如果妳想運行它們,似乎會有很多問題。

(3)html文件夾是QextSerialPort類的使用文檔。

④然後是剩余的文件。其中,指定了qextserialenumerator.cpp和qextserialenumerator.h文件。

QextSerialEnumerator類用於獲取平臺上可用的串行端口信息。不過這個類好像不是很好用,也不是我們的重點,所以下面。

我就不再介紹了。

(5)QextSerialBase . CPP和qextserialbase.h文件定義了壹個qextserialbase。

類、win_qextserialport.cpp和win_qextserialport.h文件定義了壹個win_qextserialport。

類中,posix_qextserialport.cpp和posix_qextserialport.h文件定義了壹個。

Posix_QextSerialPort類、qextserialport.cpp和qextserialport.h文件定義了壹個。

QextSerialPort類。這個QextSerialPort類就是我們上面提到的那個。它是所有這些類的子類,也是最高的抽象。它屏蔽了平臺功能。

因此它可以在任何平臺上使用。

2.幾門課簡介。

下面是這些類的圖表。

我們可以看到它們都是從QIODevice類繼承而來的,所以我們也可以直接使用這個類的壹些函數。圖中還有壹個QextBaseType類,它實際上只是壹個標簽。

知乎上沒有具體的內容,它是用來表示Win_QextSerialPort或Posix_QextSerialPort的。

因為QextSerialPort類中使用了條件編譯,所以QextSerialPort類可以從。

Win_QextSerialPort類也可以從Posix_QextSerialPort類繼承,因此它由QextBaseType表示。此時此刻

我們可以在qextserialport.h文件中看到它。此外,QextSerialPort類實際上只是為了方便程序的跨平臺編譯,它可以用於不同的

在平臺上,根據不同的條件編譯和繼承不同的類。所以只是壹個抽象,提供幾個構造器,沒有具體內容。在qextserialport.h文件中。

條件編譯內容如下:

#ifdef_TTY_POSIX_

# include“POSIX _ qextserialport . h“

#定義QextBaseTypePosix _ QextSerialPort

#否則

#包含“win_qextserialport.h“

#定義QextBaseTypeWin_QextSerialPort

#endif

所以,實際上我們不需要使用這個類,只需要使用Win_QextSerialPort或Posix_QextSerialPort。當然,如果

您希望使用該類來實現相同的源程序可以在Windows和Linux下直接編譯和運行,因此請確保將其添加到Linux下的此處。

#define _TTY_POSIX_。為了使程序更清晰,我們在這裏不使用該類,因此我們在這裏不介紹它。

QextSerialBase類繼承自QIODevice類,後者提供了壹些操作串行端口所必需的變量和函數,而

Win_QextSerialPort和Posix_QextSerialPort繼承自QextSerialBase。

類,Win_QextSerialPort類增加了Windows平臺下操作串口的壹些功能,Posix_QextSerialPort類增加了。

Linux平臺下操作串口的壹些功能。因此,我們在Windows中使用Win_QextSerialPort類,並在Linux中使用它。

Posix_QextSerialPort類。

3.QextSerialBase類中還涉及壹個枚舉變量QueryMode。

它有兩個值Polling和EventDriven。

。QueryMode是指讀取串口的方式,我們稱之為查詢模式、輪詢模式和事件驅動模式。

事件驅動的方式是使用事件來處理串口的讀取。壹旦數據到達,它將發出readyRead()信號,我們可以關聯該信號來讀取串口數據。在事件驅動模式下,串口的讀寫是異步的,調用讀寫函數會立即返回,並且不會凍結調用線程。

但是,輪詢方法不同。讀取和寫入功能是同步執行的,因此信號無法在此模式下工作,某些功能無法實現。然而,這種模式的開銷很小。我們需要設置自己的定時器來讀取串行數據。

Windows下支持以上兩種模式,但Linux下僅支持輪詢模式。

第三,總結。

在這裏說了這麽多,最後要說的是,我們使用這個類在Qt中編寫串行程序,根據不同的平臺只需要使用四個文件。