打印
[STM32F4]

ETH 和 lwIP卡在 lwIP init 中

[复制链接]
385|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Treasure101|  楼主 | 2025-4-4 18:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
BSP, ip, lwIP, ni, ST, TI
在STM32CubeIDE编写407程序完成初始化 freeRTOS、ETH 和 lwIP。
在 System Core 中, Timebase Source 更改为 Timer。
在 lwIP 中,我禁用了 DHCP 并使用静态 IP。
其他所有配置均为默认。现在我将 板卡通过网络连接到 PC , Ping不通。
在仿真时,。

使用特权

评论回复
沙发
公羊子丹| | 2025-4-5 07:40 | 只看该作者
你说lwIP init卡住,是在哪个函数里卡的?是MX_LWIP_Init()里面?我之前遇到过是PHY没初始化好,结果整个卡在等待link up。

使用特权

评论回复
板凳
周半梅| | 2025-4-5 07:41 | 只看该作者
你有加上MX_LWIP_Init()后启动一个处理网口数据的任务吗?比如用ethernetif_input()+sys_check_timeouts()那种循环?不加这个lwIP不会自动处理网络事件的。

使用特权

评论回复
地板
帛灿灿| | 2025-4-5 07:42 | 只看该作者
试试用Wireshark抓一下板子端口,看看有没有发ARP或ICMP报文,有时候是MAC层正常但IP层没配置好。

使用特权

评论回复
5
童雨竹| | 2025-4-5 07:43 | 只看该作者
F4的ETH对DMA对齐有要求,你启用缓存的时候是不是忘了加SCB_CleanInvalidateDCache_by_Addr之类的操作?DMA用cache时容易出问题。

使用特权

评论回复
6
万图| | 2025-4-5 07:44 | 只看该作者
你用的什么开发板?官方的407E-DISC套件有个以太网扩展板,PHY是LAN8720还是DP83848?PHY芯片不一样初始化代码也可能要改。

使用特权

评论回复
7
Wordsworth| | 2025-4-5 07:45 | 只看该作者
你是不是把时钟源从SysTick改成了Timer?我记得lwIP默认是靠SysTick的,如果你改了没同步进去,timeout系统就可能卡住。

使用特权

评论回复
8
Bblythe| | 2025-4-5 07:45 | 只看该作者
你试过用DHCP吗?看看是不是只有静态IP的配置出问题了,DHCP有时候能帮忙发现网络层的问题。

使用特权

评论回复
9
Pulitzer| | 2025-4-5 07:46 | 只看该作者
建议你用HAL_ETH_ReadPHYRegister看一下PHY的寄存器,比如看Link状态(BMSR),确认是不是网线和PHY初始化有问题。

使用特权

评论回复
10
Uriah| | 2025-4-5 07:47 | 只看该作者
我那时候卡在ethernetif_init()的netif_add,结果发现是netif结构体没初始化好,你可以单步调一下看是不是过早调用了lwIP init。

使用特权

评论回复
11
Clyde011| | 2025-4-5 07:48 | 只看该作者
CubeMX默认生成的netif配置任务其实不适配FreeRTOS,得自己建个任务循环调用MX_LWIP_Process()或者直接自己撸网口任务。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

17

主题

17

帖子

0

粉丝