Probleme mit Float in String umwandeln

Gast #2625625
Hi und hallo zusammen,

ich versuche eine Float-Variable in einen String umzuwandeln, um diesen 
dann über UART auszugeben. Leider funktioniert das nicht so wie es soll.

Wenn ich das wie folgt mache, erhalte ich nur ein Fragezeichen als 
Ergebnis, wenn ich mir die gesendeten Daten auf dem PC im 
Terminalprogramm anschaue.
1
char data[8];
2

3
sprintf(data, "%f", "3.125");
4
puts(data);

Wenn ich eine Variable habe, in der z.B. 20,123 ; mit dem Debugger 
überprüft; drin steht und ich nun Folgendes schreibe, erhalte ich 
ebenfalls nur ein Fragezeichen als Ausgabe am PC:
1
float val;
2
.....
3

4
sprintf(data, "%f", val);


Jemand eine Idee, was ich da falsch mache?

Jörg
Gast
Hallo,

g457 schrieb:
> Kuckst Du Doku -> Linkeroptionen anpassen.

Ich habe jetzt Folgendes gemacht:
1
Unter
2
Project Properties -> Toolchain -> AVR/GNU C- Linker -> Libraries
3
in Libraries (-WI, -I), libprintf_flt.a und libm.a eintragen.
4

5
dann unter
6
Project Properties -> Toolchain -> AVR/GNU C- Linker -> Miscellaneous
7
in Other Linker Flags, -Wl,-u,vfprintf eintragen

Aus Beitrag Beitrag "Re: AVR Studio 5, sprintf, float und linken?"
oder http://www.mikrocontroller.net/articles/FAQ#sprintf.28.29


Damit funktioniert es dann.

Danke!
Jörg

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.