在QT中连接到串行端口

时间:2014-11-18 12:48:33

标签: c++ qt serial-port read-write

我想使用QSerialPort连接到微控制器。我已将行串行端口添加到我的.pro文件中,并在我的源文件中包含QSerialPort并运行qmake。我的代码如下:

    serial.setPortName("COM3");
    serial.setBaudRate(QSerialPort::Baud9600);
    serial.setDataBits(QSerialPort::Data8);
    serial.setParity(QSerialPort::NoParity);
    serial.setStopBits(QSerialPort::OneStop);
    serial.setFlowControl(QSerialPort::NoFlowControl);
    serial.open(QIODevice::ReadWrite);
    serial.write("ok*");

当我运行代码时,我收到一条消息,说明设备未打开,虽然我已确认它已打开TeraTerm。我错过了什么?错误消息如下:

QIODevice::write: device not open

1 个答案:

答案 0 :(得分:2)

首先,您应该检查是否打开返回true。如果不是,请告诉用户有关错误并致电errorString()

if(serial.open(QIODevice::ReadWrite))
    serial.write("ok*");
else
{
    //error
    qDebug() << serial.errorString();
}

您尝试在不同的程序中打开一个端口。它在Windows中被禁止。所以你不能用它。在您的video作者com3 Qt com4 teraterm {{1}} {{1}},{{1}},{{1}},{{1}},这是不同的端口,所以你应该使用相同的东西,而不是一个端口程式。

关注此计划:com0com