String-Ausgabe via UART, kurze Frage zum C Code

OP #816983
Lesenswert?

Ahoi,

folgendes: ich möchte einen String über die UART ausgeben.
Die Funktion sieht wie folgt aus:

unsigned int uart_puts(char *string) {

  for (string = 0; ;string++) {

    if(*string != 0) uart_putc(*string);
    else break;
  }

  return (0);
}

Kann mir kurz jemand sagen, wo der Fehler sein könnte, momentan stehe 
ich diesbezüglich etwas auf dem Schlauch. Die verwendete uart_putc 
funktioniert einwandfrei.

Danke, Alex
#816994
Lesenswert?

Alexander H. wrote:
> Ahoi,
>
> folgendes: ich möchte einen String über die UART ausgeben.
> Die Funktion sieht wie folgt aus:
>
> unsigned int uart_puts(char *string) {
>
>   for (string = 0; ;string++) {

Das wird wohl nichts werden, wenn du hier den Pointer 'string'
auf 0 setzt. Dadurch hast du dir gerade die Adresse die dich
zu den Zeichen des Strings bringt zerstört.

1
unsigned int uart_puts(char *string)
2
{
3
  while( *string )
4
    uart_putc( *string++ );
5

6
  return 0;
7
}

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren