STM32 FREERTOS LWIP DHCP情况下网线热拔插

STM32 FreeRTOS LWIP DHCP 网线热拔插

  1. 现象:在固定IP的情况下,感谢新时代弄潮儿
    参照https://blog.csdn.net/xingzhewanfu/article/details/104521505 可以很好的支持网线的热拔插功能。
    但是在设置为DHCP的时候,上电初始化的时候插着网线可以正常获取IP地址,也能支持后面的网线热拔插。关键的问题是在上电初始化不插网线,以后再拔插网线都不能正常的获取IP。感谢munan0077 在其博客中的回复。https://blog.csdn.net/munan0077/article/details/113664749#comments_14953626 最后实现了上电不查网线的热拔插。
    其它都按照新时代弄潮儿博客中的来做。只需要在多做一步。
    在ethernetif.c文件中
    ethernetif_set_link(void const argument)函数中的
    /
    Check whether the netif link down and the PHY link is up /
    if(!netif_is_link_up(link_arg->netif) && (regvalue))
    {
    /
    network cable is connected /
    netif_set_link_up(link_arg->netif);
    }
    变更为:
    /
    Check whether the netif link down and the PHY link is up /
    if(!netif_is_link_up(link_arg->netif) && (regvalue))
    {
    /
    network cable is connected */
    netif_set_link_up(link_arg->netif);
    dhcp_start(link_arg->netif);
    }
    然后不管上电的时候是否插网线,只要插上网线都可以正常的获取IP地址。

你可能感兴趣的:(STM32)