stm32F407 CUBEIED FREERTOS LAN8720A ping不通问题解决方法

 最近在调试项目过程中,需要用到网络功能。结果出现配置好后网络ping不通的情况,最终找到解决问题的方法。
 中间搜索了网上的解决方法,有加大堆栈的方式,没有效果,各种折腾,这个坑差点把自己埋了!!最后分析实验找到问题根源。

环境:
1, STM32CUBEIDE V1.4.2
2,STM32cube MCU Package for STM32F4 Series 1.25.0
现象及过程:
1,系统和其他配置,不用多讲
2,裸机程序不加操作系统,配置好ETH,注意与datasheet和原理图核对正确。
在这里插入图片描述注意PHY Address,看看原理图上,究竟该1还是0自己确定
在这里插入图片描述这个看lan芯片的数据手册,Lan8720a是这个配置。
3,生成代码编译下载后,在main函数循环中加入:MX_LWIP_Process();
4,运行后可以ping通。
5,然后配置加入FreeRTOS,
6,运行后,分步调试,会卡在configASSERT( ucCurrentPriority >= ucMaxSysCallPriority )处,造成ping不通。
7,关键的一步,将ETH的中断优先级设置到到大于等于5,我设置成6。

在这里插入图片描述
在这里插入图片描述这是FreeRTOS的系统优先级,必须比这个低。
8,重新生成代码,编译,下载,运行。OK,可以屏通网络了。

https://blog.csdn.net/terastudio/article/details/106085132参考学习了terastudio的文章,收益颇丰,表示感谢。
如果这篇文章能够给你提供到帮助,可以在用支付宝支付的时候,先搜索585852652领个支付宝给你发的红包。

  • 1
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值