RE: w5500 UDP模式 网络调试助手发送数据>1472,收不到数据??
我用Microsoft Network Monitor监控,w5500发送数据大于1472的时候,分两帧发送。网络调试助手发送数据大于1472时,在线调试数据长度len=0;有知道原因的么?按理说上位机应该自动将大于1472,分成多个帧
switch(getSn_SR(0)) /*»ñÈ¡socketµÄ״̬*/
{
case SOCK_CLOSED: /*socket´¦ÓڹرÕ״̬*/
socket(0,Sn_MR_UDP,local_port,0); /*³õʼ»¯socket*/
break;
case SOCK_UDP: /*socket³õʼ»¯Íê³É*/
//
Delay_ms(10);
if(getSn_IR(0) & Sn_IR_RECV)
{
setSn_IR(0, Sn_IR_RECV); /*Çå½ÓÊÕÖжÏ*/
}
if((len=getSn_RX_RSR(0))>0) /*½ÓÊÕµ½Êý¾Ý*/
{
GPIO_SetBits(GPIOC, GPIO_Pin_7);
recvfrom(0,buff, len, remote_ip,&remote_port); /*W5500½ÓÊÕ¼ÆËã»ú·¢ËÍÀ´µÄÊý¾Ý*/
for(i=0;i<200;i++)
XT9822Dat
=(buff[3*i]<<16)+(buff[3*i+1]<<8)+buff[3*i+2];
XT9822_SetAll();
GPIO_ResetBits(GPIOC, GPIO_Pin_7);
// buff[len-8]=0x00; /*Ìí¼Ó×Ö·û´®½áÊø·û*/
// printf("%srn",buff); /*´òÓ¡½ÓÊÕ»º´æ*/
sendto(0,buff,len-8, remote_ip, remote_port); /*W5500°Ñ½ÓÊÕµ½µÄÊý¾Ý·¢Ë͸øRemote*/
}
break;
}
我用Microsoft Network Monitor监控,w5500发送数据大于1472的时候,分两帧发送。网络调试助手发送数据大于1472时,在线调试数据长度len=0;有知道原因的么?按理说上位机应该自动将大于1472,分成多个帧
switch(getSn_SR(0)) /*»ñÈ¡socketµÄ״̬*/ {
case SOCK_CLOSED: /*socket´¦ÓڹرÕ״̬*/
socket(0,Sn_MR_UDP,local_port,0); /*³õʼ»¯socket*/
break;
case SOCK_UDP: /*socket³õʼ»¯Íê³É*/
// Delay_ms(10);
if(getSn_IR(0) & Sn_IR_RECV)
{
setSn_IR(0, Sn_IR_RECV); /*Çå½ÓÊÕÖжÏ*/
}
if((len=getSn_RX_RSR(0))>0) /*½ÓÊÕµ½Êý¾Ý*/
{
GPIO_SetBits(GPIOC, GPIO_Pin_7);
recvfrom(0,buff, len, remote_ip,&remote_port); /*W5500½ÓÊÕ¼ÆËã»ú·¢ËÍÀ´µÄÊý¾Ý*/
for(i=0;i<200;i++)
XT9822Dat=(buff[3*i]<<16)+(buff[3*i+1]<<8)+buff[3*i+2];
XT9822_SetAll();
GPIO_ResetBits(GPIOC, GPIO_Pin_7);
// buff[len-8]=0x00; /*Ìí¼Ó×Ö·û´®½áÊø·û*/
// printf("%srn",buff); /*´òÓ¡½ÓÊÕ»º´æ*/
sendto(0,buff,len-8, remote_ip, remote_port); /*W5500°Ñ½ÓÊÕµ½µÄÊý¾Ý·¢Ë͸øRemote*/
}
break;
}
举报