Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt串行读取数据丢失_Qt_Qt5 - Fatal编程技术网

Qt串行读取数据丢失

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

Qt无法读取通过COM端口发送的所有数据。我使用波特率4800。有些数据丢失了。这是为什么。如果我发送20行,就像我只收到15/16一样

代码如下:

  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参数(当您打开端口时)。顺便说一句,这不是答案,请将代码添加到您的问题并删除您的答案。