Hey ich hab folgendes Problem:
Ich hab mehrere Befehl die ich nacheinander über die Serielle Schnittstelle versenden möchte.
Mein Problem ist das er alles was ich sende in einen Befehl zusammenpackt.
Kann mir da jemand weiterhelfen oder versteht mein Problem.
Ich sende sozusagen erst den Befehl dann den Abschluss.
das wird auch nacheinander als ein string geschickt
ich möchte alles einzel schicken befehl für befehl.
ich brauch irgenwie einen Zeilenubruch aber versteh nicht so ganz wie das funktioniert bei Serial.write.
41 6E 66 61 6E 67 0D 0A 31 0A 32 0A 33 0A
A n f a n g CR LF 1 LF 2 LF 3 LF
Leider verstehe ich nicht, was Du möchtest. "Einzeln" müßtest Du genauer spezifizieren. Bei mir heißt das, durch ein Steuerzeichen '\n' (NewLine oder LineFeed) getrennt.
ich möchte alles einzel schicken befehl für befehl.
ich brauch irgenwie einen Zeilenubruch aber versteh nicht so ganz wie das funktioniert bei Serial.write
Wo liegt das Problem, wenn man gegenseitig nicht sehen kann, was dem anderen gerade gegen den Strich geht? Ist "nochmal erklären" die Hilfe?
Alle 3 Zeilen machen genau dasselbe, rufen sich sogar untereinander auf.
( print -> write(buf,len) ->write(byte) )
Serial verfügt über einen Puffer, so werden die Zeichen schneller dorthinein geschrieben als sie danach über die Leitung gehen, im Empfänger kommt, auch zeitlich gesehen, jeweils das Gleiche an. (Bei 9600 ca. jede ms ein Zeichen)
Kleine Variation von Tommys Vorschlag:
Gib uns doch mal einen ganzen Sketch, nicht nur ein Fragment. Wichtig sind immer die Variablendefinitionen.
wenn ich mir diesen code im Serial Port Monitor anschaue bekomm ich das in einer zeile als
1.1.1.1.1. ausgegeben.
ich möchte es aber als
1
1
1
1
1
haben
int eingang;
void setup()
{
Serial.begin(115200); // Serielle Verbindung starten (Monitor)
Serial3.begin(115200);
}
void loop() // Hier beginnt der Loop-Teil
{
if (Serial.available())
{
eingang=Serial.read();
if (eingang=='1')
{
Serial3.write("1");Serial3.write(10);
Serial3.write("1");Serial3.write(10);
Serial3.write("1");Serial3.write(10);
Serial3.write("1");Serial3.write(10);
Serial3.write("1");Serial3.write(10);
}
}
}