2016-04-09 14 views
0

Qt kann nicht alle Daten lesen, die über den COM-Port eingehen. Ich benutze Baudrate 4800. Einige Daten fehlen. Warum das. Wenn ich 20 Zeilen sende, bekomme ich nur 15/16. HierQt Seriell Daten lesen

ist der Code:

if (arduino - > canReadLine()) 
{ 
QByteArray serialData = arduino->readLine() ; 
QString serialBuffer = QString :: fromStdString(SerialData.toStdString()); 
ui->listWidget->addItem(serialBuffer) ; 
} 

Mein listWidget zeigt nur wenige eingehende Daten, Ruhe verloren.

Qt Serial Port Settings : 
Baud Rate = 4800 
Data Bits = Data8 
Flow Control = NoFlowControl 
Parity = NoParity 
Stop Bits = OneStop 


Arduino (Transmitter) baud rate = 4800 

. Hier

+2

Bitte geben Sie einen Code mit Ihren COM-Parametern ein. Und fügen Sie die COM-Parameter des Geräts hinzu, von dem Sie lesen. – Ilya

+0

Mein Code ist unten gezeigt –

+0

Verwenden Sie 'QString serialBuffer = serialData;' übergeben Sie es nicht über Std :: String. – MKAROL

Antwort

0

ist der Code:

if (arduino - > canReadLine()) 
{ 
    QByteArray serialData = arduino->readLine() ; 
    QString serialBuffer = QString :: fromStdString(SerialData.toStdString()); 
    ui->listWidget->addItem(serialBuffer) ; 
} 

Mein listWidget zeigt nur wenige eingehende Daten, Ruhe verloren.

+0

Das zeigt nicht Ihre COM-Parameter (wenn Sie den Port öffnen). BTW, das ist keine Antwort, fügen Sie den Code zu Ihrer Frage hinzu und löschen Sie Ihre Antwort. – Ilya

+0

aktualisiert die COM-Parameter –