Я хотел бы подключиться к микроконтроллеру с помощью 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
Прежде всего, вы должны проверить, открыт ли возврат true
, Если нет, то сообщите пользователю об ошибке и позвоните errorString()
if(serial.open(QIODevice::ReadWrite))
serial.write("ok*");
else
{
//error
qDebug() << serial.errorString();
}
Вы пытаетесь открыть один порт в разных программах. Это запрещено в Windows. Таким образом, вы не можете использовать это. В вашем видео автор открыт com3
в Qt
но com4
в teraterm
Это разные порты, поэтому вы должны использовать одну и ту же вещь, а не один порт для нескольких программ.
Обратите внимание на эту программу: com0com