无法使用QSerialPort发送数据

时间:2015-06-05 08:34:44

标签: qt c++11 serial-port uart

我正在尝试编写一个能够使用串行端口与我的嵌入式系统进行通信的QT应用程序。目前我正在使用Null Modem emulator测试配置,因为我还没有准备好嵌入式系统。模拟器工作正常,因为我在其他软件如Terraterm,RealTerm或Putty中测试过。我的问题是我的示例代码不起作用 - 它不会将字符串发送到另一个COM端口。这是我的代码:

void CSettingsDialog::on_pbSerialCheck_clicked()
{
    QSerialPort serial;
    serial.setPortName(ui->cbSerialPort->currentText());

    if (!serial.open(QIODevice::ReadWrite))
    {
        QMessageBox::warning(this, tr("Serial port"),
                             tr("Serial port %1 is busy!")
                            .arg(ui->cbSerialPort->currentText()));
    }
    else
    {
        serial.setBaudRate(QSerialPort::Baud115200);
        serial.setDataBits(QSerialPort::Data8);
        serial.setParity(QSerialPort::NoParity);
        serial.setStopBits(QSerialPort::OneStop);
        serial.setFlowControl(QSerialPort::NoFlowControl);
        serial.write("TEST\n");
        serial.close();
    }
}

我确信我已经正确设置了QT示例。我会帮助你!

1 个答案:

答案 0 :(得分:1)

  

我确信我已经正确地设置了QT   例子。我会帮助你!

在阅读flush文档时,似乎在调用"写"缓冲区,写入可能异步完成。

另请参阅"Certain subclasses of...are asynchronous",并在waitForBytesWritten

上发表评论