RT1052接收不到 UDP 组播包 问题解决

Posted 实业创业者

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RT1052接收不到 UDP 组播包 问题解决相关的知识,希望对你有一定的参考价值。

RT1052使用RT-THREAD系统,开启了组播功能,但是接收不到数据,找了很久,是EMAC把组播包给过滤掉了,找了很久终于解决了,记录一下

在fs_enet.c文件里面在364行的位置

void ENET_Init(ENET_Type *base,

               enet_handle_t *handle,

               const enet_config_t *config,

               const enet_buffer_config_t *bufferConfig,

               uint8_t *macAddr,

               uint32_t srcClock_Hz)

函数对MAC等接收和发送进行了设置,感觉需要分析一下

 

这个函数在drv_eth.c文件里面调用,参数在这个文件里面输入进行设置

其中enet_config_t结构控制了相关控制参数,在fs_enet.h文件里面定义,在627行

 

其中enet_config_t 的macSpecialConfig是设置mac的相关参数的,这个参数的相关定义在fs_enet.h文件的269行enet_special_control_flag_t枚举里面

枚举的相关定义:

 

在drv_eth.c文件里面的static void _enet_config(void)函数中,进行了如下设置:

修改了config.macSpecialConfig=kENET_ControlPromiscuousEnable;

然后可以接收到了

原因应该是MAC初始设置是启用了广播帧拒绝

以上是关于RT1052接收不到 UDP 组播包 问题解决的主要内容,如果未能解决你的问题,请参考以下文章

win11接收udp组播

udp为啥收不到广播中的数据,该怎么处理

组播到多个网卡

求助 有个android手机建立热点后发送组播信息的问题

asio 组播包ssdp

如何接收组播 UDP?