我想使用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
答案 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