Duanne
Duanne

Reputation: 137

Connecting to Serial port in QT

I'd like to connect to a microcontroller using QSerialPort. I've added the line serial port to my .pro file, included QSerialPort in my source file and ran qmake. My code is below:

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

When I run the code I get a message saying the device is not open though I've confirmed it's open with TeraTerm. What am I missing? The error message is below:

QIODevice::write: device not open

Upvotes: 1

Views: 9588

Answers (1)

Jablonski
Jablonski

Reputation: 18504

First of all, you should check is open returns true. If no, then tell to user about error and call errorString()

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

You try to open one port in different programs. It is forbidden in Windows. So you can't use this. In your video author open com3 in Qt but com4 in teraterm, it is different ports, so you should use same thing, not one port for few programs.

Pay attention on this program: com0com

Upvotes: 3

Related Questions