Qt之串列埠程式設計 使用事件驅動來觸發接收資料

2022-07-15 03:00:14 字數 569 閱讀 3888

在使用的時候,我定義了乙個win_qextserialport類的物件mycom,要想執行mycom.open(qiodevice::readwrite)之前必須先執行mycom.setportname(n)來設定串列埠的名字,不然會返回錯誤。之後就可以設定波特率一些引數,使用中發現波特率之類要在open之後才有效,如果在open之前就設定了,可能這個設定會無效,看了原始碼發現在設定之前會用isopen()判斷。

還有個比較好用的設定就是:

mycom.setquerymode(qextserialbase::eventdriven);//

設定事件驅動

預設的設定都是用qextserialbase::polling,這種我只能用定時器來做了,還有該設定也要放在open之前

這樣我們就可以用: 

connect(&wincom.mycom,signal(readyread()), this,slot(disreivedata()));//

收到資料

將mycom的readyread訊號和實現接受資料的槽連線,這些每當有資料接收的時候就可以呼叫這函式來現實了。

如何使用事件

事件有很多,比如說滑鼠的事件 mousermove,mouserdown等,鍵盤的事件 keyup,keydown,keypress。有事件,就會有對事件進行處理的方法,而事件和處理方法之間是怎麼聯絡起來的呢?委託就是他們中間的橋梁,事件發生時,委託會知道,然後將事件傳遞給處理方法,處理方法進行相應...

qt串列埠程式設計

本帖被 xchinux 執行加亮操作 2008 04 22 serial.cpp int main int argc,char argv mainwindow.h ifndef main window h define main window h include class qlabel class...

qt串列埠程式設計

開啟串列埠後要重新設定一遍波特率,資料位,校驗位等,否則這些都是預設的。連線串列埠 void mainwindow on opencomn clicked ui opencomn settext 開啟串列埠 return qstring comnarg ui comnarg currenttext ...