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介绍,用限制浮点数格式,改变字符串长度都不好使,不知道怎么回事,求解答。
一周热门 更多>