我想使用 QSerialPort
连接到微 Controller 。我已将线路串行端口添加到我的 .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 中是被禁止的。所以你不能用这个。在你的video作者在 Qt
中打开 com3
但在 teraterm
中打开 com4
,它们是不同的端口,所以你应该使用相同的东西,几个程序没有一个端口。
关注本期节目:com0com
关于c++ - 在QT中连接到串口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26994742/