serial.readall
在 5.3.1 中返回一个空缓冲区,但同一段代码在 5.3.0 中工作。有人遇到过同样的问题吗?有什么解决方法吗?
我在 MSVC 2010 windows 7 中使用 Qt。我从 Qt 下载页面下载了“Qt 5.3.1 for Windows 32-bit (VS 2010, OpenGL, 537 MB)”。
我的代码:
portname=ui->lineEdit->text();
serial.setPortName(portname);
if(serial.open(QIODevice::ReadWrite))
{
ui->pushButton_5->setText("Device Connected");
ui->pushButton_5->setStyleSheet("background : yellow");
if(!serial.setBaudRate((QSerialPort::Baud115200),QSerialPort::AllDirections))
qDebug()<<serial.errorString();
if(!serial.setDataBits(QSerialPort::Data8))
qDebug()<<serial.errorString();
if(!serial.setParity(QSerialPort::NoParity))
qDebug()<<serial.errorString();
if(!serial.setStopBits(QSerialPort::OneStop))
qDebug()<<serial.errorString();
if(!serial.setFlowControl(QSerialPort::HardwareControl))
qDebug()<<serial.errorString();
}
else
{
qDebug()<<"Serial port not opened. Error: "<<serial.errorString();
QTest::qSleep(2000);
exit(0);
}
serial.write(outbuff, l);
rsp=(serial.readAll()).toHex();
serial.readAll 返回一个空缓冲区。当从不同的工具发送相同的输入时,我得到了来自相同硬件的响应。