Signal readyRead()不执行slot

时间:2017-09-19 19:19:33

标签: c++ qt serial-port tcomport

我有一个相对粗略的设备(两台计算机通过COM端口连接),我必须通过QSerialPort让它工作。这个想法很简单:数据将从每个COM端口从一个comp发送到另一个comp。 发送器工作正常,由侧面软件检查,我有接收数据的问题。我按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()) );

然后我准备抓住这样的数据:


$user->setRelations([]);

并且在插槽change_gear中我还有以下内容: qDebug()<<“已收到数据”,

但这个插槽还没有被执行过! 所以,我只是无法理解这里出了什么问题以及为什么我无法从COM端口读取数据这么简单的方法..

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

1 个答案:

答案 0 :(得分:1)

试试这个

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);

配置端口后打开,信号连接到插槽