lwip+stm32f407+IGMP+LAN8720

 

  1. 参数设置ETH_InitStructure.ETH_ReceiveAll = ETH_ReceiveAll_Enable; 

ETH_InitStructure.ETH_MulticastFramesFilter = ETH_MULTICASTFRAMESFILTER_NONE;

     2.opt.h  #define LWIP_IGMP                       1

     3.ethernetif.c文件中,low_level_init函数,使能IGMP标志

netif->flags = NETIF_FLAG_BROADCAST | NETIF_FLAG_ETHARP | NETIF_FLAG_LINK_UP |NETIF_FLAG_IGMP;//添加IGMP

    4.在函数lwip_periodic_handle函数点C文件中添加

#ifdef LWIP_IGMP

u32  IGMPTimer=0;

#endif

#if LWIP_IGMP

  if(localtime-IGMPTimer>=IGMP_TMR_INTERVAL)

  {

    IGMPTimer=localtime;

igmp_tmr();

}

#endif

5.def.h中定义

#define LWIP_RAND   rand //添加

6.加入组播

struct ip_addr ipgroup_recv,ipgroup_send, local_ip;

IP4_ADDR(&local_ip, 192,168,4,141);

IP4_ADDR(&ipgroup_recv, 230,1,1,11);//用于接收组播的地址 

IP4_ADDR(&ipgroup_send, 230,12,2,22);//用于发送组播的地址

err=igmp_joingroup(&local_ip,(struct ip_addr *)(&ipgroup_rev));//只需要将接收地址放入igmp组,发送的不需要

7.发送组播数据

udp_sendto(udp_server_multi_pcb, p,(struct ip_addr *) (&ipgroup_send),UDP_MULTICASE_SEND_PORT);

参考lwip+stm32f407+IGMP 终于调通了-OpenEdv-开源电子网

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值