- 在stm32h7上跑rt-thread ,使用ssdp协议,无法接收到组播数据,单独做个udp组播线程也无法接收。
- 经排查发现,网卡使用的为lan8720a, hal库默认不开启组播接收,需要配置硬件开启组播接收
- 代码如下,这段代码放在硬件初始化后面就行了
ETH_MACFilterConfigTypeDef filter = {0};
HAL_ETH_GetMACFilterConfig(&EthHandle, &filter); // 先读出修改再写入
filter.ReceiveAllMode =ENABLE;
filter.PassAllMulticast =ENABLE;
HAL_ETH_SetMACFilterConfig(&EthHandle, &filter);