佚名通过本文主要向大家介绍了enc28j60 lwip,stm32 enc28j60 lwip,lwip 组播,enc28j60,enc28j60中文资料等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题:LWIP + ENC28J60 + 组播可以接收组播数据,不能发送组播数据,怎么回事?
描述:
我的配置:
1.直接把ENC28J60的ERXFCON寄存器设置为0,可以接收所有数据包。
2.lwip的opt.h中设置LWIP_IGMP为1,开启组播
3.low_level_init函数中 netif->flags = NETIF_FLAG_BROADCAST | NETIF_FLAG_ETHARP | NETIF_FLAG_LINK_UP | NETIF_FLAG_IGMP;//添加IGMP
4.定时调用 igmp_tmr();
5.UDP初始化中添加
IP4_ADDR(&ipgroup, 230,0,0,11);//添加组播地址
igmp_joingroup(IP_ADDR_ANY,(struct ip_addr *)(&ipgroup));
udp_bind(udp_server_pcb,IP_ADDR_ANY,1177);
udp_bind(udp_server_pcb,&ipgroup,65000);
udp_recv(udp_server_pcb,udp_server_rev,NULL);//接收回调函数
6.发送组播数据用
udp_sendto(udp_server_pcb, p,(struct ip_addr *) (&ipgroup),65000);
有高手知道怎么回事吗?
描述:
lwip 组播UDPSTM32
最近需要用到组播,用的是LWIP + ENC28J60 。经过一番配置后,现在的情况是:可以接收到组播数据,但是发送组播数据,TCP/IP调试助手收不到组播数据,wireshark抓包也没发现发送的数据。我的配置:
1.直接把ENC28J60的ERXFCON寄存器设置为0,可以接收所有数据包。
2.lwip的opt.h中设置LWIP_IGMP为1,开启组播
3.low_level_init函数中 netif->flags = NETIF_FLAG_BROADCAST | NETIF_FLAG_ETHARP | NETIF_FLAG_LINK_UP | NETIF_FLAG_IGMP;//添加IGMP
4.定时调用 igmp_tmr();
5.UDP初始化中添加
IP4_ADDR(&ipgroup, 230,0,0,11);//添加组播地址
igmp_joingroup(IP_ADDR_ANY,(struct ip_addr *)(&ipgroup));
udp_bind(udp_server_pcb,IP_ADDR_ANY,1177);
udp_bind(udp_server_pcb,&ipgroup,65000);
udp_recv(udp_server_pcb,udp_server_rev,NULL);//接收回调函数
6.发送组播数据用
udp_sendto(udp_server_pcb, p,(struct ip_addr *) (&ipgroup),65000);
有高手知道怎么回事吗?