1

我有一个相对粗糙的设备(两台计算机通过 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()<<"Data has beed received",

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

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

4

1 回答 1

0

像这样试试

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

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

于 2017-09-19T19:52:48.823 回答