0

我搜索了一个在qt中打开多个串口的示例。

我从其他类转发的开放端口功能设置

void MainWindow::openSerialPort(){
    SettingsDialog::Settings p = settings->settings();
    serial->setPortName(p.name);
    serial->setBaudRate(QSerialPort::Baud9600);
    serial->setDataBits(QSerialPort::Data8);
    serial->setParity(QSerialPort::NoParity);
    serial->setStopBits(QSerialPort::OneStop);
    serial->setFlowControl(QSerialPort::NoFlowControl);

if (serial->open(QIODevice::ReadWrite)) { 
    ui->connectAction->setEnabled(false);
    ui->disconnectAction->setEnabled(true);
    ui->settingsAction->setEnabled(false);
    showStatusMessage(tr("Connected to %1 : OK")
                      .arg(p.name));
} else { //gdy sie nie udalo error
    QMessageBox::critical(this, tr("Error"), serial->errorString());

    showStatusMessage(tr("Open error"));
}
}
4

1 回答 1

0

据我记得,如果打开 QSerialPort 的单个实例,它会以独占方式进行,因此没有其他实例可以访问该端口。我猜想创建其他 QSP 并打开其他端口就可以了。

于 2017-10-02T08:30:24.540 回答