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 组播包 问题解决的主要内容,如果未能解决你的问题,请参考以下文章