我使用STM32F107+LWIP制作一个网络模块。工作流程是上位机通过UDP发送信息给模块,模块再通过UDP返回信息。现在的问题的是如果模块只接收信息而不发送,一切正常,一旦接收信息后再通过UDP返回给PC,只能正常地返回10次,10次以后模块再也不能接收信息了。
//UDP初始化
g_upcb = udp_new();
udp_bind(g_upcb, &ip_l, 60000);
udp_recv(g_upcb, &my_udp_rx, NULL);
pbuf_free(p);
下面是在接收函数里面的操作
p = pbuf_alloc(PBUF_TRANSPORT,sizeof(msg),PBUF_RAM);
memcpy (p->payload, msg, sizeof(msg));
udp_sendto(upcb,p,&ip_BoatCast,60003);
pbuf_free(p);
|