QT例項 實現串列埠通訊

2021-10-24 05:41:26 字數 1849 閱讀 3614

①在專案的.pro檔案中新增:

qt += serialport

②引入相關標頭檔案
#include

#include

①要進行串列埠通訊,第一步一定是搜尋可用串列埠咯,可參考下列例項,搜尋當前可用串列埠並將其輸出到乙個qcombobox上。
void widget::

on_btn_work_renew_sperial_clicked()

}//最後通過判斷combobox的項數,若為0則提示未找到串列埠

if(ui-

>cbox_sperial-

>

count()

==0)}

②定義乙個串列埠物件,作為主視窗的私有成員物件
qserialport *serialport;
③開啟串列埠實現函式
void widget::

opensperial()

//新建物件

this

->serialport =

new qserialport;

//設定串列埠名

serialport-

>

setportname

(ui-

>cbox_sperial-

>

currenttext()

);//獲取介面combobox選中的值

//開啟串列埠讀寫功能

serialport-

>

open

(qiodevice::readwrite)

;//設定波特率

serialport-

>

setbaudrate

(9600);

//設定資料位

serialport-

>

setdatabits

(qserialport::data8)

;//其他可選值有qserialport::data7、qserialport::data6、qserialport::data5

//設定校驗位

serialport-

>

setparity

(qserialport::noparity)

;//即無校驗,其他可選值有qserialport::oddparity(奇校驗)、qserialport::evenparity(偶校驗)

//設定停止位

serialport-

>

setstopbits

(qserialport::onestop)

;//1位停止位,其他可選值有qserialport::twostop(2位停止位)

//設定不啟用流控制

serialport-

>

setflowcontrol

(qserialport::noflowcontrol)

;//繫結資料接收訊號,每次接收到資料則觸發read_data槽函式

qobject::

connect

(serialport,

signal

(readyread()

),this

,slot

(read_data()

));}

④傳送資料
void widget::

on_btn_send_data_clicked()

else

}

⑤接收資料
void widget::

read_data()

Qt串列埠通訊

1.在早期的qt版本中,主要是採用第三方類作為qt對串列埠通訊的支援,具體可參考 2.在進入qt5的時代後,串列埠通訊已經作為qt的乙個附件部分,但沒有作為qt的正式模組。使用這樣的串列埠模組時,需要自行編譯串列埠部分,具體可參考 鑑於以上兩種做法都比較複雜,本人一直沒有除錯串列埠通訊部分,直到最近...

Qt 串列埠通訊

開發環境 qt5.5.1 qt creator 3.5.1 1 建立專案 qtserialdemo 2 新增元件 修改 專案名.pro qtserialdemo.pro 新增 qt serialport 3 新增如下使用 qt串列埠 所需的標頭檔案 include include 4 主要串列埠通訊...

Qt 串列埠通訊

1.概述 因為專案需要,對qt的串列埠通訊進行了一些學習,這個專案的乙個需求是將乙個測溫儀器的資料讀取到電腦進行處理,根據這個儀器的通訊協議,每次讀取前都需要對它寫入命令。這裡用到了qt進行了讀寫操作,其中遇到了關於十六進製制write問題並得以解決。使用到的qt庫 qtserialport 2.詳...