sprintf(SBuff,"Float value %0.4f ",temp_float);
USART0_TransmitString(SBuff);
我也尝试了%f,并将temp_float变量设为double(%lf)。
但是在Usart上我总是得到 Float值?代替我得到问号的temp_float值。
答案 0 :(得分:4)
AVR的sprintf()
默认情况下没有实现浮点来节省闪存空间,你需要更改一些编译器选项来实现这一点;
如果包括浮点转换在内的完整功能是 必填时,应使用以下选项:
-Wl,-u,vfprintf -lprintf_flt -lm
可以找到完整的详细信息here。