Qt串行读取数据丢失
Qt无法读取通过COM端口发送的所有数据。我使用波特率4800。有些数据丢失了。这是为什么。如果我发送20行,就像我只收到15/16一样 代码如下:Qt串行读取数据丢失,qt,qt5,Qt,Qt5,Qt无法读取通过COM端口发送的所有数据。我使用波特率4800。有些数据丢失了。这是为什么。如果我发送20行,就像我只收到15/16一样 代码如下: if (arduino - > canReadLine()) { QByteArray serialData = arduino->readLine () ; QString serialBuffer = QString :: fromStdString(SerialData.toStdString()); ui->list
if (arduino - > canReadLine())
{
QByteArray serialData = arduino->readLine () ;
QString serialBuffer = QString :: fromStdString(SerialData.toStdString());
ui->listWidget->addItem(serialBuffer) ;
}
if (arduino - > canReadLine())
{
QByteArray serialData = arduino->readLine () ;
QString serialBuffer = QString :: fromStdString(SerialData.toStdString());
ui->listWidget->addItem(serialBuffer) ;
}
我的listWidget只显示少数传入数据,其余数据丢失
Qt Serial Port Settings :
Baud Rate = 4800
Data Bits = Data8
Flow Control = NoFlowControl
Parity = NoParity
Stop Bits = OneStop
Arduino (Transmitter) baud rate = 4800
.以下是代码:
if (arduino - > canReadLine())
{
QByteArray serialData = arduino->readLine () ;
QString serialBuffer = QString :: fromStdString(SerialData.toStdString());
ui->listWidget->addItem(serialBuffer) ;
}
if (arduino - > canReadLine())
{
QByteArray serialData = arduino->readLine () ;
QString serialBuffer = QString :: fromStdString(SerialData.toStdString());
ui->listWidget->addItem(serialBuffer) ;
}
我的listWidget只显示少数传入数据,其余数据丢失 请在COM参数中添加一些代码。并添加正在读取的设备的COM参数。我的代码如下所示wuse
QString serialBuffer=serialData代码>不要通过std::string传递它。仍然相同。某些数据丢失传输和接收的波特率相同。那么为什么数据会丢失呢?如果我使用readAll()而不是readLine(),我会收到所有数据,但数据对齐错误,即出现虚线。这不会显示COM参数(当您打开端口时)。顺便说一句,这不是答案,请将代码添加到您的问题并删除您的答案。