在使用sprintf输出字符串的时候如果使用到浮点数的时候,出现问题。代码如下:
for(i = num;i < max;i++)
{
sprintf(tstr," SN=%.3d Hmivar=%.4X Val=%.5d Mode=%.2d Regid=%.5d ExeCode=%.2X %.2X %.2X %.2X %.2X %.2X \r\n",
i,touprg[i].hmivar,touprg[i].val,touprg[i].mode,touprg[i].regid,touprg[i].exe[0],touprg[i].exe[1],
touprg[i].exe[2],touprg[i].exe[3],touprg[i].exe[4],touprg[i].exe[5]);
if(s>=2)
usart1sendstr(tstr);
else
{
if(Netprg == 1)
W5500_write_udp_buf_to_send_p(s,tstr,strlen(tstr));
else
W5500_write_udp_buf_to_send(s,tstr,strlen(tstr));
}
delay_us(200);
}
同样的代码,输出的时候有选择,串口输出和网络输出
问题现象是,串口输出的不正常,