CH565使用官方TCP/IP协议栈(CH569NETLIB.h中 #define CH569NET_LIB_VER 0x02),在UDP通信中,通过计算机发送9字节的UDP报文,CH565回复报文wireshark抓包提示FCS校验错误:
报文展开的话,具体内容如下:
真实的UDP 9字节报文应该是24 1a c0 a8 00 63 00 0d 0a,但是可以看到,实际上最后多出来13个字节,其中最后的4个字节c0 a8 00 01被直接当成FCS校验了。
我的代码如下:
void CFG_Socket_CallBack(struct _SCOK_INF *socinf,UINT32 ipaddr,UINT16 port,UINT8 *data,UINT32 len)
{
unsigned int net_mask_value;
UINT32 bufLen;
char rc;
unsigned char dst_ip[4];
bufLen = len;
Int2Char(flip32(ipaddr), dst_ip);
memcpy(CFG_Socket.socketInf.IPAddr,dst_ip,4);
CFG_Socket.socketInf.DesPort = port;
printf("%d bytes\r\n",bufLen);//此处打印的值为9,说明bufLen没有问题
if((*data==0x24)&&(*(data+1)==0x11))//IP地址设置
{
rc = CH569NET_SocketUdpSendTo(CFG_Socket.socketID, data, &bufLen,CFG_Socket.socketInf.IPAddr,(UINT16)CFG_Socket.socketInf.DesPort);//收到报文后,原路返回
if(rc!=0)
printf ("CFG_Socket send error!0x%X\r\n",rc);
}
请问这个问题可能是什么原因?