Chars über serielle Schnittstelle senden und empfangen

Alles rund um die Programmierung mit Qt
Antworten
pinki
Beiträge: 10
Registriert: 19. August 2009 14:54

Chars über serielle Schnittstelle senden und empfangen

Beitrag von pinki »

Moin moin!
Ich möchte Daten an einen Arduino senden und von ihm empfangen.
Um zu testen, ob die Daten richtig rüberkommen, lasse ich den Arduino alle empfangenen Daten einfach zurücksenden.
Wenn ich nun ein char sende und dieses wieder empfange und dann vergleiche, erhalte ich de Meldung, dass der Wert anders ist.
Für die Kommunikation nutze ich die Bibliothek QSerialDevice und ihre Klasse AbstractSerial.

Hier mein Code:

Code: Alles auswählen

AbstractSerial *serial = new AbstractSerial(this);
serial->setDeviceName("/dev/tty.usbmodem641");
serial->setBaudRate(AbstractSerial::BaudRate19200);
serial->setParity(AbstractSerial::ParityNone);
serial->setStopBits(AbstractSerial::StopBits1);
serial->setDataBits(AbstractSerial::DataBits8);
serial->setFlowControl(AbstractSerial::FlowControlOff);
serial->open(AbstractSerial::ReadWrite);
serial->write(char(120));

char bytesAvailable = serial->bytesAvailable();
    if(bytesAvailable > 0 || serial->waitForReadyRead(50)) {
        QByteArray bytes = serial->read();
        qDebug() << "Empfangen: " << (char)bytes.at(0);
    }

    if(char(120) == bytes.at(0))
        qDebug() << "Korrekt empfangen!";
    else
        qDebug() << "Was ist da los?";
}

serial->close();
delete serial;
Was mache ich falsch?

Gruß
Michael
Antworten