项目场景:
Qt程序接收i.mx串口数据并使用。
基本实现:
.h
#ifndef MY_SERIAL_H
#define MY_SERIAL_H
#include "qextserialport.h"
#include <QThread>
class MySerialPort:public QextSerialPort{
Q_OBJECT
public:
MySerialPort(QString portName);
QThread *serialThread;
void send(const QByteArray data);
signals:
void sendSync(const QByteArray data);
private slots:
void sWrite(const QByteArray data);
};
#endif
.cpp
#include"myserial.h"
MySerialPort::MySerialPort(QString name):QextSerialPort(name,QextSerialPort::EventDriven)
{
connect(this,&GenericSerialPort::sendSync,this,&MySerialPort::sWrite);
serialThread = new QThread();
serialThread->setObjectName("serialThread");
serialThread->start();
this->setBaudRate(BAUD115200);
this->setFlowControl(FLOW_OFF);
this->setParity(PAR_NONE);
this->setDataBits(DATA_8);
this->setStopBits(STOP_1);
if(this->open(QIODevice::ReadWrite) == true){
this->moveToThread(serialThread);
}
}
void serialThread::send(const QByteArray data) {
emit sendSync(data);
}
void serialThread::sWrite(const QByteArray data) {
this->write(data);
}