sprintf(SBuff,"Float value %0.4f ",temp_float);
USART0_TransmitString(SBuff);
我也尝试过 %f,并使 temp_float 变量加倍(%lf)。
但是在 Usart 上我总是得到浮点值?代替 temp_float 值,我得到问号。
AVRsprintf()
默认不实现浮点来节省闪存空间,您需要更改一些编译器选项才能实现;
如果需要包括浮点转换在内的全部功能,则应使用以下选项:
-Wl,-u,vfprintf -lprintf_flt -lm
完整的细节可以在这里找到。