Seite 1 von 1

Chars über serielle Schnittstelle senden und empfangen

Verfasst: 20. Juni 2011 19:00
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