单片机/MCU论坛
直播中

人走了

10年用户 1000经验值
擅长:制造/封装 光电显示
私信 关注

GIGABIT ETHERNET如果未接上网络线会卡在while怎么解决?

我执行 SDL 示例里面的 examplesethernetgigabitDP83867IR_10_100_1000_MII_GMII_RGMII_Sample
发现如果网络线没有接上,会卡在 while (true != Check_DP83867IR_LinkStatus()); 直到网络线接上,这样表示一开始就得把网络线接上,否则程序无法往后走,但是 tviibh8msrcexamplesethernetautomotive 却没有这个现象,这有没有解决办法?
我是 SDL 7.8.0,芯片是 tviibh8m
                                                                                                                                                                                                                                                                                                                                                                                             

回帖(1)

远不及你

2024-2-1 16:52:08
这个问题可能是因为示例代码中没有对网络连接状态进行检查和处理,导致程序卡在了while循环中等待链接状态变为true。解决办法可以在while循环中加入timeout机制,如果等待时间超过一定值仍然没有连接上网络,可以跳出循环继续执行后续代码。例如可以使用定时器来设置一个超时时间,如果在超时时间内没有检测到链接状态变为true,则跳出while循环。

另外,如果示例代码中的另一个示例没有出现这个问题,可能是因为这个示例中已经做了对于网络连接状态的处理,比如使用了异步的方法去检测连接状态。

你可以尝试在示例代码中加入超时处理机制,或者查看其他相关的网络连接的检测方法,以解决这个问题。
举报

更多回帖

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