Vielleicht so:
Code:
#include <avr/io.h>
#include <stdio.h>

void main(void)
{
   char str[5];            // float=32bit   char=8bit   + nullterminierung
   float x;
   sprintf(str,"%f",&x);    // sprintf() nimmt keine Grenzüberprüfung an str vor!!! Überlaufgefahr
   uart_send_buffer(str);
}
Ich weis aber nicht ob das so stimmt. Musst du vielleicht ausprobieren.
Und die Funktion uart_send_buffer() ist durch deine zu ersetzen. Sie muss halt einen Buffer und nicht nur ein Zeichen senden können.
Gruß Muraad