gpt4 book ai didi

c++ - Signal readyRead() 不执行槽

转载 作者:行者123 更新时间:2023-11-28 04:59:58 26 4
gpt4 key购买 nike

我有一个相对粗糙的设备(两台计算机通过 COM 端口连接),我必须通过 QSerialPort 让它工作。这个想法很简单:数据将通过每个 COM 端口从一个组件发送到另一个组件。发射器工作正常,通过软件检查,我在接收数据时遇到问题。我是通过 QSerialPort 做的,如下所示:

首先我设置了端口:

QSerialPort *serialport = new QSerialPort();
serialport->open(QIODevice::ReadOnly);
serialport->setPortName("COM1");
serialport->setBaudRate(QSerialPort::Baud19200);
serialport->setDataBits(QSerialPort::Data8);
serialport->setParity(QSerialPort::NoParity);

然后我准备像这样捕获数据:

connect(serialport,SIGNAL(readyRead()),this, SLOT(change_gear()) );

在插槽 change_gear 中,我只有:qDebug()<<"数据已收到",

但是这个槽还没有被执行过!所以,我只是不明白这里出了什么问题以及为什么我不能以这种简单的方式从 COM 端口读取数据..

操作系统 - Windows 8,Qt 5.8.0 MinGW 32

最佳答案

这样试试

QSerialPort *serialport = new QSerialPort();
serialport->setPortName("COM1");
serialport->setBaudRate(QSerialPort::Baud19200);
serialport->setDataBits(QSerialPort::Data8);
serialport->setParity(QSerialPort::NoParity);

connect(serialport,SIGNAL(readyRead()),this, SLOT(change_gear()) );

serialport->open(QIODevice::ReadOnly);

端口配置好,信号连接到slot后打开

关于c++ - Signal readyRead() 不执行槽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46308255/

26 4 0
文章推荐: C++ 使用 "ieee-be"machinefmt 读取二进制文件
文章推荐: c++ - ALSA 在中断前占用 1024 个缓冲区
文章推荐: javascript - 如何在
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com