STM32/STM8技术论坛
直播中

于敏

8年用户 120经验值
私信 关注
[问答]

STM32F207+DP83848拔下网线再插入网线就连不通了

STM32F207+DP83848,再插入网线的情况下是可以连通的,但是如果拔下网线再插入网线就连不通了,再插入网线时,我重新把 ETH_MACDMA_Config()配置了一下还是不可以。

回帖(13)

于敏

2019-1-28 07:22:38
自己顶一下!
举报

谭子薇

2019-1-28 07:28:02
估计就跟SD卡一样的热拔插。
举报

李富才

2019-1-28 07:37:49
首先,再插入网线时,重新配置 ETH_MACDMA_Config()时,看下ETH_Init的返回值是不是成功的,如果成功说明mac这边基本是没问题的,再不放心可以看下mac的地址寄存器以及其他的寄存器的数据还在不在。如果都正常,底层就说明是好的,就向上看下lwip协议层有没有问题。希望你能把问题写的再详细一些,方便分析。
举报

于敏

2019-1-28 07:44:01
 谢谢您的帮助,我试试,若有问题再向您请教!
举报

孙婷婷

2019-1-28 07:52:00
检测有网线拔出以后置位一个标志位,等网线插入以后,再进行一次初始化。
举报

于敏

2019-1-28 08:02:48
怎么初始化?我初始化了不可以?
void ETH_BSP_Config(void)
{
//   RCC_ClocksTypeDef RCC_Clocks;
  /* Configure the GPIO ports for ethernet pins */
  ETH_GPIO_Config();
  /* Configure the Ethernet MAC/DMA */
  ETH_MACDMA_Config();
  /* Configure the PHY to generate an interrupt on change of link status */
  Eth_Link_PHYITConfig(DP83848_PHY_ADDRESS);
//           printf("Network %d",Eth_Link_PHYITConfig(DP83848_PHY_ADDRESS));
       
  /* Configure the EXTI for Ethernet link status. */
  Eth_Link_EXTIConfig();
 
}
 
举报

李富才

2019-1-28 08:16:11
不可以是什么不可以?ping不通?有没有数据过来?以太网接收中断进没进去?或者是轮询到数据没有?
举报

于敏

2019-1-28 08:34:39
 中断可以进去,就是在中断里重新配置的!
举报

李富才

2019-1-28 08:43:31
我说的是接收中断,不是网线连接时产生的中断,我说的是207内部mac产生的中断,不是phy引脚产生的外部中断
举报

于敏

2019-1-28 08:58:06
 你好,现在网线的热插拔问题解决了,但是官网例程里,没插网线,边初始化不了,因为还有其他功能,所以在没插网线时需初始化,插入网线后,又可以通信,求解决方案?
举报

王静

2019-1-28 09:07:20
回复第 11 楼 于2014-05-21 13:39:04发表:
楼主 解决了初始化完成后 插入网线能正常通信的问题么   你是用什么方法支持热插拔的?
 
举报

李汉荣

2019-1-28 09:19:41
在调107的网络,初始化函数中的网络连接状态始终为连接不上,读取PHY的ID是正确的。是否可以判定为是网线和变压器的问题
举报

王蔚

2019-1-28 09:36:56
也遇到了同样的问题,和楼主一样,我也再主循环里添加了网络连接状态轮询,如果网络连接上了并且之前没有成功初始化过则重新初始化,但还是没能解决这个问题,不知道具体要重新初始化哪些东西?求救呀
举报

更多回帖

发帖
×
20
完善资料,
赚取积分