0
sprintf(SBuff,"Float value %0.4f ",temp_float);
USART0_TransmitString(SBuff);

%f も試して、temp_float 変数を double (%lf) にしました。

しかし、Usart では常にFloat 値を取得しますか? temp_float 値の代わりに疑問符が表示されます。

4

1 に答える 1

4

AVRsprintf()はデフォルトではフラッシュ スペースを節約するために浮動小数点を実装していません。それを実現するには、いくつかのコンパイラ オプションを変更する必要があります。

浮動小数点変換を含むすべての機能が必要な場合は、次のオプションを使用する必要があります。

-Wl,-u,vfprintf -lprintf_flt -lm

詳細については、こちらをご覧ください

于 2012-09-08T12:10:22.427 に答える