Hallo zusammen, ich möchte über die UART Schnittstellte (Pin 0 und 1) eines Leonardo Boards Daten an einen Slave schicken beziehungsweise auch empfangen. Das Senden funktioniert auch schon super, nur habe ich ein bisschen Probleme mit dem Empfangen. Mein Programmausschnitt sieht wie folgt aus: Serial.begin(BAUDRATE, SERIAL_8N1); if (Serial.available()) { // read the incoming byte: rx = Serial.read(); Serial.print("received: "); Serial.println(rx, HEX); } /* Serial.end(); delayMicroseconds(2000); Serial.print("received: "); Serial.println(rx, HEX);*/ Es macht komischerweise keinen Unterschied ob ich Serial1 oder Serial.read()... verwende. Für das Schreiben verwende ich z.B. Serial1.write(). Ich sehe, dass die gewünschten Daten auch am RX Pin anliegen, nur möchte ich diese zur Kontrollte am Seriellen Monitor der Entwicklungsumgebung auch anzeigen lassen. Es funktioniert bislang weder mit den nicht auskommentierten Zeilen, noch mit den auskommentierten. Mit dem unteren Teil empfange ich auch gar keine Daten am RX Pin, dies scheint also der falsche Weg zu sein. Womöglich habe ich auch noch nicht zu 100% verstanden, wie es richtig programmiert werden muss. Wie bereits geschrieben, sende ich eine Art Aufforderung an den Slave und erwarte in diesem Beispiel 2 Byte an Daten zurück. Wie würde hierfür der richtige Code aussehen? Was ich mich vor allem Frage, wie kann ich die beiden Bytes der Reihe nach aufrufen bzw. aus dem Buffer holen und dann weiter verarbeiten? Des Weiteren weis ich nicht, ob es mit dem Leonardo überhaupt möglich ist, mit den Pins 0 und 1 zu arbeiten und anschließend auch mit Serial.println() etwas über den Seriellen Monitor darstellen zu lassen. Hier wäre auch etwas Erklärungsbedarf :-) Vielen Dank schon mal im Voraus für eure Hilfe.
Norbert Van der Heyd schrieb: > Des Weiteren weis ich nicht, ob es mit dem Leonardo überhaupt möglich > ist, mit den Pins 0 und 1 zu arbeiten und anschließend auch mit > Serial.println() etwas über den Seriellen Monitor darstellen zu lassen. > Hier wäre auch etwas Erklärungsbedarf :-) Der Leonardo hat zwei serielle Schnittstellen: Serial und Serial1 Dabei ist "Serial" über das USB-Kabel an Deinen PC angeschlossen, per USB CDC (communications device class). Über "Serial" läuft also die Kommunikation mit dem "Seriellen Monitor" auf Deinem PC. Irgendwelche Pins werden beim Leonardo dafür NICHT benötigt, das läuft rein über USB. Darüber hinaus hat der Leonardo eine serielle Schnittstelle Serial1 an den Arduino Pins 0 und 1 mit TTL-Pegel. Diese Schnittstelle ist nicht mit Deinem PC verbunden und daran könntest Du andere serielle Geräte hängen, z.B. ein GPS- oder GSM-Modul.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.