Подключение к последовательному порту в QT

Я хотел бы подключиться к микроконтроллеру с помощью 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

Решение

Прежде всего, вы должны проверить, открыт ли возврат true, Если нет, то сообщите пользователю об ошибке и позвоните errorString()

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

Вы пытаетесь открыть один порт в разных программах. Это запрещено в Windows. Таким образом, вы не можете использовать это. В вашем видео автор открыт com3 в Qt но com4 в teratermЭто разные порты, поэтому вы должны использовать одну и ту же вещь, а не один порт для нескольких программ.

Обратите внимание на эту программу: com0com

2

Другие решения


По вопросам рекламы [email protected]