sprintf(SBuff,"Float value %0.4f ",temp_float);
USART0_TransmitString(SBuff);
%f も試して、temp_float 変数を double (%lf) にしました。
しかし、Usart では常にFloat 値を取得しますか? temp_float 値の代わりに疑問符が表示されます。
AVRsprintf()
はデフォルトではフラッシュ スペースを節約するために浮動小数点を実装していません。それを実現するには、いくつかのコンパイラ オプションを変更する必要があります。
浮動小数点変換を含むすべての機能が必要な場合は、次のオプションを使用する必要があります。
-Wl,-u,vfprintf -lprintf_flt -lm
詳細については、こちらをご覧ください。