stm32 以太网启动后再插网线的问题

本文介绍在STM32上使用lwip时,启动后插入网线网络功能不可用的问题及解决方法。关键在于配置允许LWIP_NETIF_LINK_CALLBACK,并在主循环中加入ethernetif_set_link函数检查网线状态。通过增加回调函数,实现网络接口的动态启动。
摘要由CSDN通过智能技术生成

STM32加lwip, 在启动时没插网线,启动后再插网线,会发现网络功能无法使用,是因为启动过程中初始化网络失败。

这种情况,需要在CubeMX的lwip配置中,允许LWIP_NETIF_LINK_CALLBACK

在主循环中加入函数 

ethernetif_set_link(netif_default);

检查网线是否连接。

然后自己增加回调函数,

void ethernetif_notify_conn_changed(struct netif *netif)
{
  /* NOTE : This is function could be implemented in user file 
            when the callback is needed,
  */
    if(netif_is_link_up(netif))
    {
        printf("net link is up\r\n");
        netif_set_up(netif_default);
    }
    else{
        printf("net link is down\r\n");
    }

}

关键是需要启动网络接口。

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值