请教下,dp83848 丢包严重 ??

2019-12-31 19:18发布

本帖最后由 hpdell 于 2017-2-16 11:03 编辑

请教下,dp83848 丢包严重 ??是什么情况造成的 ??

工程是使用 CubeMX V4.19(v4018) 版本自动产生的,貌似这个版本的CubeMX 有些问题,总是会出现找不到头文件的情况,v4.16版本的就没有这个问题。

丢包严重.png (27.8 KB, 下载次数: 0) 下载附件 2017-2-15 22:25 上传



void main(void)
{

  ... ...


  while(1)
  {
      MX_LWIP_Process();      // 只有这个函数
   }

}



void MX_LWIP_Process(void)
{
  ethernetif_input(&gnetif);

  /* Handle timeouts */
  #if !NO_SYS_NO_TIMERS && NO_SYS
    sys_check_timeouts();
  #endif

}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
9条回答
hpdell
2020-01-01 08:42
培增 发表于 2017-2-16 11:20
我直接用的金龙stm32f107开发板的测试程序,你可以搜一下对比程序和硬件有什么差别。 ...

你好,已经搞定了啊,硬件是没有问题,

是软件的问题,我目前使用的是CubeMX v4.19版本的工具软件来自动产生代码的

对比 CubeMX v4.16 版本自动产生的代码,发现在 low_level_init 这个里面少了如下代码:

  /**** Configure PHY to generate an interrupt when Eth Link state changes ****/
  /* Read Register Configuration */
  HAL_ETH_ReadPHYRegister(&heth, PHY_MICR, &regvalue);
  
  regvalue |= (PHY_MICR_INT_EN | PHY_MICR_INT_OE);

  /* Enable Interrupts */
  HAL_ETH_WritePHYRegister(&heth, PHY_MICR, regvalue );
  
  /* Read Register Configuration */
  HAL_ETH_ReadPHYRegister(&heth, PHY_MISR, &regvalue);
  
  regvalue |= PHY_MISR_LINK_INT_EN;
   
  /* Enable Interrupt on change of link status */
  HAL_ETH_WritePHYRegister(&heth, PHY_MISR, regvalue);


增加后运行一切稳定,目前看是这样的


一周热门 更多>