float Vairable in char umwandeln

Gast #5938205
Lesenswert?

Hallo liebes Forum,

ich programmiere einen STM32 und möchte Sensor-Daten an ein LCD-Modul 
anzeigen lassen.
Die Sensor-Daten sind vom Typ float.
An das LCD-Modul übergebe ich mittels einer Funktion aber einen string.
Wie kann ich meine Variable umwandeln, damit ich sie auf meinem 
LCD-Display anzeigen lassen kann?
Bitte wenn möglich Funktionen anbieten, wo keine "speziellen" Libraries 
benötigt werden...

Zum testen habe ich mal eine float-Variable definiert:
1
float value = 54.32;

Die Funktion, welcher der string übergeben wird, sieht wie folgt aus:
1
void lcd_string( const char *data )
2
{
3
    while( *data != '\0' )
4
        lcd_data( *data++ );
5
}
6

7
void lcd_data( uint8_t data )
8
{
9
    GPIOD->BSRR |= LCD_RS;    // RS auf 1 setzen        //LCD_PORT |= (1<<LCD_RS);    // RS auf 1 setzen
10

11
    lcd_out( data );            // zuerst die oberen,
12
    lcd_out( data<<4 );         // dann die unteren 4 Bit senden
13

14
    Wait_1uSec( LCD_WRITEDATA_US );
15
}
Gast #5938220
Lesenswert?

Ich würde sprintf () verwendet.
1
float x = 3.14;
2
char floatstr [16];
3

4
sprintf (floatstr, "%f", x);
5

6
lcd_string (floatstr);

sprintf liefert die Anzahl, der in floatstr geschrieben Zeichen zurück.

Für %f gibt es noch zusätzliche Steuerzeichen für Formatierung

http://www2.hs-esslingen.de/~zomotor/home.fhtw-berlin.de/junghans/cref/FUNCTIONS/format.html

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