标题:qt子线程串口不能接收数据
作者:tonymeng
日期:2021-12-01 23:54
内容:
大家好,我最近在写一个程序,建立了一个子线程,子线程中使用串口进行数据的收发,但是实际测试在串口操作的时候只能发送,无法接收,进一步定位发现readyread信号未被触发,网上的方法基本都试了一遍都不行,想看看大家有没有类似的经历,可以给我提供一些建议,感激不尽!
贴一下代码
子线程
#ifndef APPTHREAD_H
#define APPTHREAD_H
#include
#include
#include
#include
#include
class AppThread : public QObject
{
Q_OBJECT
public:
explicit AppThread(QObject *parent = nullptr);
void AppTask();
QSerialPort *port;
QTimer *portTimer;
QByteArray *dataArray;
quint8 *portRecvData;
bool portSendMsg( quint8* msg ,int msgLen);
int [color=#9cd ..
#1 [tonymeng 12-01 23:55]
主线程cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include
#include
#include "appthread.h"
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
qDebug() start();
//connect(AppT,SIGNAL(started()),App,SLOT(AppTask()));
connect(AppT,&QThread::started,App,&AppThread::AppTask);
}
MainWindow::~MainWindow()
{
delete ui;
}
主线程头文件
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H