QT5不能同时打开多个串口吗
本帖最后由 Mavis 于 2023-10-10 18:24 编辑打开第二个串口时失败了QSerialPort::UnsupportedOperationError
而且必须重新插拔才可以换另一个串口,是qt5的bug吗?
QT版本:5.14.2环境WINDOWS11、Ubuntu20都不能同时打开两个串口
两个串口COM1和COM2,用串口工具比如secureCRT是可以同时打开并传输正常。
部分代码如下:
QSerialPort *serialPort1 = new QSerialPort();QSerialPort *serialPort2 = new QSerialPort();
serialPort1->setPortName("COM1");
serialPort2->setPortName("COM2");
serialPort1->open(QIODevice::ReadWrite) 成功
serialPort2->open(QIODevice::ReadWrite) 失败了
有人碰到这个问题过吗 QT版本:5.10.0 环境WINDOWS10,使用QextSerialPort class,能同时打开两个串口。
QextSerialPort :https://github.com/qextserialport/qextserialport 肯定可以同时打开的,估计是你的代码或者方式或者设备有问题 可以同时打开;
switch (type) {
case relaySER:
relayserialparameter.relaycomnum = ui->comboBox_ser_relay->currentText();
relayserialparameter.autoAddRnStatus_relay = ui->checkBox_autoRn_relay->checkState();
t_serial_relayser->setPortName(relayserialparameter.relaycomnum);
setPartConfig_serial(relaySER);
if (!t_serial_relayser->open(QIODevice::ReadWrite)) {
QMessageBox::information(NULL, "失败", "串口打开失败");
return false;
} else {
return true;
}
break;
case recordSER:
relayserialparameter.recordcomnum = ui->comboBox_ser_record->currentText();
relayserialparameter.autoAddRnStatus_record = ui->checkBox_autoRn_rec->checkState();
t_serial_recordser->setPortName(relayserialparameter.recordcomnum);
setPartConfig_serial(recordSER);
if (!t_serial_recordser->open(QIODevice::ReadWrite)) {
QMessageBox::information(NULL, "失败", "串口打开失败");
return false;
} else {
return true;
}
break;
default:;
}
页:
[1]