2012-09-08 84 views
0
sprintf(SBuff,"Float value %0.4f ",temp_float); 
USART0_TransmitString(SBuff); 

我也嘗試了%f,並且使temp_float變量double(%lf)。sprintf浮點和雙變量

但在Usart上我總是得到浮動值?代替temp_float值我得到問號。

+0

我們需要看看'SBuff'如何獲取它的值以及'temp_float'是如何聲明並賦值的。 –

+0

@DavidSchwartz:同意。在修改之前,我會對此表示懷疑,因爲它不清楚,沒用。 –

+0

@DavidSchwartz SBuff通過sprintf獲得價值 –

回答

4

AVR的sprintf()不會默認實現浮點以節省閃存空間,您需要更改一些編譯器選項以實現此目的;

如果需要包括浮點轉換的全部功能 ,下列選項應使用:

輪候冊,-u,vfprintf -lprintf_flt -lm

全部細節被發現here

+0

+1很好地發現。 –