USART bei ATMEGA32

Gast #398820
Lesenswert?

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.
Gast #398826
Lesenswert?

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);

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