mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik uart_printf gibt keine Variablen korrekt aus


Autor: Sascha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

meine uart_printf-Funktion sieht so aus:

void uprintf(u08_t uart, const char * fmt, ...) {
  char buffer[200];

  va_list ap;
  va_start(ap, fmt);
  sprintf(buffer, fmt, ap);
  va_end(ap);

  uart_puts(uart, buffer);
}

Wenn ich diese allerdings testweise mit z.B.
int testvar = 10;
uart_printf(UART0, "Hello world! Testvar: %d", testvar);

aufrufe, dann wird zwar der Text einwandfrei ausgegeben, aber ich kann 
keine Zahlen korrekt ausgeben. Statt der 10 wird dann - 15872 
ausgegeben.

Ich dachte erst, das liegt an meiner Funktion, aber mit

char buffer[200];
int testvar = 10;
sprintf(buffer, "Hello world! Testvar: %d", testvar);
uart_puts(UART0, buffer);

Gibts die selben Probleme.

Woran mag liegen? Was mache ich falsch?

Autor: Sascha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
das: void uprintf(u08_t uart, const char * fmt, ...) {
muss natuerlich void uart_printf(u08_t uart, const char * fmt, ...) {

heissen!

Autor: FBI (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

Dein zweites Bsp. sieht eigentlich OK aus (vorausgesetzt 'uart_puts' 
funktioniert korrekt).
Deine Funktion 'uart_printf' kann aber so eigentlich nicht gehen. Du 
mußt dort vsprintf anstatt sprintf verwenden.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.