我的设备比较粗(通过COM端口连接了两台计算机),必须通过QSerialPort使它正常工作。这个想法很简单:数据将通过每个COM端口从一个comp发送到另一个comp。
发射器工作正常,这已通过辅助软件检查,我在接收数据时遇到问题。我是通过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);

配置端口并将其信号连接到插槽后打开

10-08 16:28