首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Qt串行通信

Qt串行通信
EN

Stack Overflow用户
提问于 2019-10-03 21:39:32
回答 1查看 87关注 0票数 0

我刚刚尝试了下面的代码。但是插槽功能不起作用。连接正常,我通过qDubug发现了这一点。控制台输出如下所示。

代码语言:javascript
复制
[ZDSGuard] 32 DllMain hook strProductName2 : C:\qt_example\build- 
serial_test-Desktop_Qt_5_13_1_MinGW_32_bit-Debug\debug\serial_test.exe-1
ddd
ss
ccc

正如您所发现的,aaa没有打印出来。如果插槽功能工作正常,则应将其打印。

如果有人发现问题所在,请让我知道。提前谢谢。

代码语言:javascript
复制
[ZDSGuard] 32 DllMain hook strProductName2 : C:\qt_example\build- 
serial_test-Desktop_Qt_5_13_1_MinGW_32_bit-Debug\debug\serial_test.exe-1
ddd
ss
ccc

串行通信代码

代码语言:javascript
复制
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QtSerialPort/QSerialPort>
#include <QtSerialPort/QSerialPortInfo>
#include <QDebug>
#include <QLabel>


QSerialPort *serial;

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    serial = new QSerialPort();
    serial->setPortName("COM4");
    serial->setBaudRate(QSerialPort::Baud115200);
    serial->setFlowControl(QSerialPort::NoFlowControl);
    serial->setParity(QSerialPort::NoParity);
    serial->setDataBits(QSerialPort::Data8);
    serial->setStopBits(QSerialPort::OneStop);
    if (serial->open(QIODevice::ReadWrite))
       ui->label->setText("bb");
    if (QObject::connect(serial,SIGNAL(readyRead()),this,SLOT(serialReceived())))
        qDebug()<< "ddd";
    //ui->label->setText("aa");
    qDebug() << "ss";
}

MainWindow::~MainWindow()
{

    delete ui;

    serial->close();
}

void MainWindow::serialReceived()
{
    QByteArray BA;
    BA=serial->readAll();
    ui->label->setText("aa");
    //printf(BA);
    qDebug()<<"aaa";//BA;
}
EN

回答 1

Stack Overflow用户

发布于 2019-10-09 03:11:01

QSP在Qt 5.13.1中有bug。使用或Qt 5.13.0,或等待最新版本(5.13.2 / 5.12.6)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58220396

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档