Hallo zusammen
Ich versuche einen String über den UART zu senden. Er kommt heraus,
aber am Schluss des Strings kommen noch kosmische Zeichen. Der zu
sendene ist:
"$PSRF103,01,01,01,01*25"
Herauskommt jedoch, wobei beim $ der nächste wieder beginnt:
"$PSRF103,01,01,01,01*25<0>ÃA"¥%5´3£#ÆÆÆ¦&VlS"3bccc
S«6$PSRF103,01,01,01,01*25"
Ausserdem sollte der String mit CR und LF terminiert sein, dies
funktioniert jedoch nicht :-(.
kann mir jemand helfen?? übrigens die routine ist im file sendstrng.c
angehängt.
besten Dank und Gruss Martial
Hallo OldBug
ich habe diese Transmit funktion eigentlich getestet und sie hat
funktioniert, aber evt. war das ja zufall das es funktioniert hat.
Darum gebe ich sie dir mal.
Gruss Martial
void USART_Transmit( unsigned char data )
{
// ueberprüfung ob register leer
while ( !( UCSRA & (1<<UDRE)) );
// daten in das register schreiben um zu senden
UDR = data;
}
Hm, scheint dann wohl doch an der Länge zu liegen!?!?
Wenn Du Matthias Variante verwenden möchtest, dann musst Du das so
machen:
USART_SendString("\"$PSRF103,01,01,01,01*25\"");
Die "" terminieren den String entsprechend...
Hallo zusammen
ich habe jetzt die funktion von Matthias genommen und die termination
von OldBug, aber es sendet immer noch die gleichen zeichen zum
schluss.
gruss Martial
Hm, OK.
Also auf dem PC läuft das Einwandfrei, da bleibt dann eigentlich nur
noch übrig, daß Du uns den gesamten Code zeigst. Ansonsten würde das
heir in Rate-Spielchen ausarten...
hallo zusammen
sorry das ich das nicht gleich geschrieben habe :o)..
Ich musste den Sendstring folgendermassen ausführen:
USART_SendString("$PSRF103,01,01,01,01*25 \n\r\0");
eigentlich sollte das \n den cr und lf machen, doch dies ging nicht
darum noch den \r.
Das \0 ist die 0 ternimierung.
Gruss Martial
Eine eigene Frage?
Dieser Thread ist über 22 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.