初级会员

- 积分
- 50
- 金钱
- 50
- 注册时间
- 2019-9-12
- 在线时间
- 27 小时
|

楼主 |
发表于 2021-5-28 17:45:31
|
显示全部楼层
自己的坑自己填。这个问题已经解决,附上解决方法。用的是STM32H7系列单片机,好像F系列的单片机直接参考网上的,那个资源比较多,H系列的话可以参考我的来改。
在ethernetif.c的low_level_init中添加以下即可
//以下为关闭MAC的过滤,因为用到组播,所以要关闭过滤才可以接收到数据(H7系列的更改比较特殊)
ETH_MACFilterConfigTypeDef *pFilterConfig;
//pFilterConfig = (ETH_MACFilterConfigTypeDef *)malloc(sizeof(ETH_MACFilterConfigTypeDef));
HAL_ETH_GetMACFilterConfig(&heth, pFilterConfig);
pFilterConfig->ReceiveAllMode = ENABLE; //接收全部数据
pFilterConfig->PassAllMulticast = ENABLE; //通过所有组播(这个不使能也可以)
//pFilterConfig->HashMulticast = ENABLE;
HAL_ETH_SetMACFilterConfig(&heth,pFilterConfig); |
|