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等。