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

我也尝试过 %f,并使 temp_float 变量加倍(%lf)。

但是在 Usart 上我总是得到浮点值?代替 temp_float 值,我得到问号。

4

1 回答 1

4

AVRsprintf()默认不实现浮点来节省闪存空间,您需要更改一些编译器选项才能实现;

如果需要包括浮点转换在内的全部功能,则应使用以下选项:

-Wl,-u,vfprintf -lprintf_flt -lm

完整的细节可以在这里找到。

于 2012-09-08T12:10:22.427 回答