原因找到是一个数组引起的void diy_send_data_to_server(void)
{
static char buf[256]={0};
u8 i,j;
float data=0;
u8 ti[6]={0};
diy_get_os_time_6(ti);
for(i=0;i<MAX_METER_COUNT;i++)
{
for(j=0;j<MAX_FUNC_COUNT;j++)
{
if(0!=diy_get_port_data(i,j,&data))
continue;
sprintf(buf,"20%2d-%2d-%2d %2d:%2d:%2d |%4d|%4d|%f",ti[0],ti[1],ti[2],ti[3],ti[4],ti[5],i,j,data);
diy_udp_send(udpserversend,(void *) buf,strlen(buf),diy_get_server_ip(),diy_get_server_port());
}
}
return;
}
buf数组不加static就会出错,加上static就没问题,这是什么原因? |