1、在STM32CUBE中使能DHCP,前提是LWIP+FREERTOS
2、配置回调函数
使能这两个选项
3、在主函数中LWIP初始化前复位LWIP脚
在ethernetif.c中LWIP_NETIF_LINK_CALLBACK已在opt.h中置1,然后再最下面
__weak void ethernetif_notify_conn_changed(struct netif *netif)函数中添加代码如下
__weak void ethernetif_notify_conn_changed(struct netif *netif)
{
if(netif_is_link_up(netif) && !netif_is_up(netif))
{
netif_set_up(netif);
extern err_t dhcp_start(struct netif *netif);
dhcp_start(netif);
}
}
运行主函数就可以运行了
4、配置DHCP时有固定的MAC地址,将电脑和设备同时插到路由器上,电脑和设备组成一个局域网,使用网络查询工具就可以看到给设备mac分配了一个IP地址,这样就可以实现DHCP的热插拔了,网线随时插拔