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 qserialport();
connect(ui->pushbutton, signal(clicked()), local_serial, slot(write_data()));
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 include inc...
QT例項 實現串列埠通訊
在專案的.pro檔案中新增 qt serialport 引入相關標頭檔案 include include 要進行串列埠通訊,第一步一定是搜尋可用串列埠咯,可參考下列例項,搜尋當前可用串列埠並將其輸出到乙個qcombobox上。void widget on btn work renew sperial...
串列埠通訊 多執行緒簡單例項
rs 232串列埠 include reg52.h typedef unsigned char uint8 typedef unsigned int uint16 sbit s2 p2 1 sbit en p2 5 uint8 arg uint8 counter 0 void init void 微...