stm32+lwip 的先启动后插网线的处理方法

1. 开发环境 : MDK5 

硬件: STM32F107

协议栈: LWIP,无操作系统。

2. 官方的demo 代码,是启动的时候就初始化,如果启动的时候,不插网线,对方没有办法连接,导致初始化失败,再插入网线也不能初始化。

解决办法: 在cubeMX配置中,添加对LINK-CALLBK的使能。如下图:

 

首先:实现回调函数:

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))
    {
        netif_set_up(netif_default);
    }
    else
    {
    }
}

其次:然后在主循环中加入如下代码:

        Network_Staus = netif_is_link_up(&gnetif);

        ethernetif_set_link(&gnetif);

        if (Network_Staus != netif_is_link_up(&gnetif))
        {
            ethernetif_update_config(&gnetif);
        }

问题解决。

在这里简单记录一下。有问题可以直接@我。

本团队可以承接嵌入式开发,包含stm32,ARM平台的开发,Linux,安卓,ucosii,freeRTOS, 裸机等。ODM,OEM等。

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值