Qt 串列埠操作

2022-06-18 15:06:14 字數 1435 閱讀 6999

#include #include
qserialport serial;
//設定串列埠名

serial.setportname("com7");

//設定波特率

serial.setbaudrate(qserialport::baud1152000);

//設定資料位數

serial.setdatabits(qserialport::data8);

//設定奇偶校驗

serial.setparity(qserialport::noparity);

//設定停止位

serial.setstopbits(qserialport::onestop);

//設定流控制

serial.setflowcontrol(qserialport::noflowcontrol);

//開啟串列埠

serial.open(qiodevice::readwrite);

//清空快取

serial.flush();

//讀串列埠

qbytearray buffer;

buffer = serial.readall();

//寫串列埠

serial.write(buffer);

serial.close();
由串列埠裝置主動發出資料,通訊時間是不明確時,可以使用訊號槽繫結串列埠讀就緒訊號,當有資料就緒時自動呼叫槽函式讀取和處理。

建立串列埠物件後,為串列埠的讀就緒訊號新增乙個槽函式。

//連線訊號和槽

qobject::connect(&serial, &qserialport::readyread, this, &mainwindow::serialportreadyread);

編寫槽函式用於讀取資料

void mainwindow::serialportreadyread()

這類通訊邏輯通常是主機傳送指令給裝置,裝置接收指令並完成動作後返回資料。這種情況可以通過等待超時的方式進行資料接收,等待指令回覆的時間根據具體情況設定,當第一次讀取到資料後可再等待短暫的時間來確定訊息是否被接收完畢。

qbytearray mainwindow::serialportread(int ms)}}

return null;

}

通過嘗試以讀寫方式開啟列表中的串列埠,如果能開啟成功說明這個串列埠可用。

qstringlist mainwindow::getenablecommport()

}return commportlist;

}

qt 操作串列埠

目錄介紹 搭建工程 拷貝qextserialbase.cpp qextserialbase.h win qextserialport.cpp和win qextserialport.h到自己的工程下 新增標頭檔案 include win qextserialport.h 新增串列埠定義 win qex...

qt 操作串列埠

目錄介紹 搭建工程 拷貝qextserialbase.cpp qextserialbase.h win qextserialport.cpp和win qextserialport.h到自己的工程下 新增標頭檔案 include win qextserialport.h 新增串列埠定義 win qex...

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...