Hallo Ich hoffe es kann mir jemand helfen. Ich möchte einen String vom uC auf den PC übertragen. Das geht jedoch nicht es kommt am PC nichts an. Einzelne Zeichen kann ich aber Senden das funktioniert einwandfrei. Ich verwende folgende Funktionen dafür : char u[] = "Test"; // String den ich senden möchte int uart_putc(unsigned char c) { while (!(UCSRA & (1<<UDRE))); /* warten bis Senden moeglich */ UDR = c; /* sende Zeichen */ return 0; } void uart_puts (char *s) { while (*s) { /* so lange *s != '\0' also ungleich dem "String-Endezeichen" */ uart_putc(*s); s++; } } Ich übergebe dann den String der Funktion "uart_puts (char *s)" so: uart_puts (u); Kann mir jemand sagen was ich falsch mache? Danke.
Ja mit einzelnen Zeichen funktioniert es. Nur mit einem string kommt nichts an.
hast du mal puts("Test"); ausprobiert? Dann würde es nämlich an deiner String-Deklaration liegen.
Ja ich habe den String auch schon direkt der Funktion übergeben das hat leider auch nicht funktioniert.
Da wäre noch ein "Schönheitsfehler": putc liefert einen int-Wert zurück, der nirgends benutzt wird. Das ist zwar C-konform, aber... Mach daraus doch einfach mal "void".
hat bei mir bestens funktioniert: void UART_SEND(char *senden) { for (;*senden !='\0';senden++){ loop_until_bit_is_set(UCSRA, UDRE); UDR = *senden; } UART_SEND ("TEST"); oder auch UART_SEND(variable);
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.