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

标签 c++ qt serial-port tcomport

我有一个相对粗糙的设备(两台计算机通过 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/

相关文章:

c++ - 更新 QTreeView 而不更改选择

c++ - Qt和OpenCV静态库相互冲突

c++ - 在 Xcode 中开发 QT 应用程序?

c++ - Hello World Qt 创建者

c - 从 c 数组索引问题中的串行端口读取该数据

linux - C++串口通信读数据有效但写入失败

c++ - 没有第二个操作数的三元运算符

c++ - 如何将变量从 main 传递给信号和槽宏?

qt - 在 QTextEdit 中绘画而不影响文本

c - 编写 API 以与连接在串行端口上的设备进行通信