qt下無論是rs232、rs422、rs485的串列埠通訊都可以使用統一的編碼實現。本文把每路串列埠的通訊各放在乙個執行緒中,使用movetothread的方式實現。
用serialport類實現串列埠功能,widget類呼叫串列埠。
serialport.h如下
#include #include #include #include #include #include #include #include class serialport : public qobject
;
serailport.cpp如下
#include "serialport.h"
serialport::serialport(qobject *parent) : qobject(parent)
serialport::~serialport()
void serialport::init_port()
else
connect(port, signal(readyread()), this, slot(handle_data()), qt::queuedconnection); //qt::directconnection
}void serialport::handle_data()
void serialport::write_data()
widget.h的呼叫**
#include "serialport.h"
public slots:
void on_receive(qbytearray tmpdata);
private:
serialport *local_serial;
widget.cpp呼叫**
//建構函式中
local_serial = new serialport();
connect(ui->pushbutton, signal(clicked()), local_serial, slot(write_data()),qt::queuedconnection);
connect(local_serial, signal(receive_data(qbytearray)), this, slot(on_receive(qbytearray)), qt::queuedconnection);
//on_receive槽函式
void widget::on_receive(qbytearray tmpdata)
本文例子實現的串口號是 /dev/ttys1(對應windows系統是com1口),波特率38400,資料位8,停止位1,無校驗位的串列埠通訊。當然,使用串列埠程式前,需要在.pro檔案中新增 qt += serialport,把串列埠模組加入程式。 Qt下實現多執行緒串列埠通訊
qt下無論是 rs232 rs422 rs485 的串列埠通訊都可以使用統一的編碼實現。本文把每路串列埠的通訊各放在乙個執行緒中,使用 movetothread 的方式實現。用 serialport 類實現串列埠功能,widget 類呼叫串列埠。serialport.h如下 include incl...
QT例項 實現串列埠通訊
在專案的.pro檔案中新增 qt serialport 引入相關標頭檔案 include include 要進行串列埠通訊,第一步一定是搜尋可用串列埠咯,可參考下列例項,搜尋當前可用串列埠並將其輸出到乙個qcombobox上。void widget on btn work renew sperial...
QT下的多執行緒
一.多執行緒的使用 繼承qthread類,重寫protected void run 函式,則此run函式即為多執行緒將執行的函式,ui類組合此類,呼叫start 函式即開啟此執行緒,並執行run函式 h class test1 public qthread cpp void test1 run vo...