初始化的MAC地址问题
EMAC_STM32H7xx.c中的初始化代码里,static const uint8_t mac_def = { 2, 0, 0, 0, 0, 0 };
heth.Instance = ETH;
heth.Init.TxDesc = DMATxDscrTab;
heth.Init.RxDesc = DMARxDscrTab;
heth.Init.RxBuffLen = ETH_MAX_PACKET_SIZE;
heth.Init.MACAddr = (void *)mac_def;初始化MAC地址为{ 2, 0, 0, 0, 0, 0 }
Net_Config_ETH_0.h中的配置里,MAC地址设置为
#define ETH0_MAC_ADDR "1E-30-6C-A2-45-5E"代码跑起来后,实际通过电脑查询,MAC地址也是"1E-30-6C-A2-45-5E"。
这里就有个疑问,EMAC_STM32H7xx.c里配置的初始化MAC地址是什么,有什么作用?
被覆盖掉了。 eric2013 发表于 2022-2-11 16:57
被覆盖掉了。
进仿真运行后,查看heth.Init.MACAddr,他是一个指针,指向的地址是0x080xxxxx,就是flash中的一个固定地址。这个地址里的值就是02000000,并没有覆盖新的MAC地址。 smilingfrog 发表于 2022-2-15 11:45
进仿真运行后,查看heth.Init.MACAddr,他是一个指针,指向的地址是0x080xxxxx,就是flash中的一个固定地 ...
这个是因为你这个 static const uint8_t mac_def = { 2, 0, 0, 0, 0, 0 };定义是固定在Flash里面的。
启动后,系统没有再使用这个了。 eric2013 发表于 2022-2-15 12:04
这个是因为你这个 static const uint8_t mac_def = { 2, 0, 0, 0, 0, 0 };定义是固定在Flash里面的。
...
如果不修改mac地址,两个h7接同一个路由器,就会出现H7互联通讯时,需要很长时间才能获取IP地址,通讯也不稳定。
而每个H7自己设定不同MAC时,就没有这些问题,这应该说明MAC修改成功了吧? gallop020142 发表于 2022-2-15 13:42
如果不修改mac地址,两个h7接同一个路由器,就会出现H7互联通讯时,需要很长时间才能获取IP地址,通讯也 ...
大概率是可以的。
页:
[1]