keil编译stc89c52时,sprintf函数出现的问题

2019-07-15 08:20发布

做多路ds18b20测温,用sprintf转换float到字符串发送串口数据,但是遇到了这个奇葩的问题,其他代码我就不贴了,主要疑问在下面
uchar buff1[4],buff2[4],buff3[4],buff4[4],buff5[4],buff6[4],buff7[4],buff8[4],buff9[4],buff10[4],buff11[4],buff12[4];
float f_temp1,f_temp2,f_temp3,f_temp4,f_temp5,f_temp6,f_temp7,f_temp8,f_temp9,f_temp10,f_temp11,f_temp12;

sprintf(buff1,"%f",f_temp1);
sprintf(buff2,"%f",f_temp2);
sprintf(buff3,"%f",f_temp3);
sprintf(buff4,"%f",f_temp4);
sprintf(buff5,"%f",f_temp5);
sprintf(buff6,"%f",f_temp6);
sprintf(buff7,"%f",f_temp7);
sprintf(buff8,"%f",f_temp8);
sprintf(buff9,"%f",f_temp9);
sprintf(buff10,"%f",f_temp10);
sprintf(buff11,"%f",f_temp11);
sprintf(buff12,"%f",f_temp12);

发送串口得到的结果却是
31.733.227.031.033.326.429.032.127.632.433.128.2
33.227.031.033.326.429.032.127.632.433.128.2
27.031.033.326.429.032.127.632.433.128.2

31.033.326.429.032.127.632.433.128.2
33.326.429.032.127.632.433.128.2

26.429.032.127.632.433.128.2

29.032.127.632.433.128.2

32.127.632.433.128.2

27.632.433.128.2

32.433.128.2
33.128.2

28.2

温度倒是读出来了,不过把每个数之后的数都搞到前一个字符串的内容中了,看了sprinft介绍,用限制浮点数格式,改变字符串长度都不好使,不知道怎么回事,求解答。

0条回答

一周热门 更多>