STM32网口DHCP功能相关

发布于 2019-11-06 18:02:42    浏览:1080
最近在调试STM32F407的网口功能中遇到一个问题想请教一下。在网口上电后,默认DHCP功能开启,然后再程序中关闭网口的DHCP功能,然后设置静态IP地址,可以成功。然后插入网线,IP地址发生变化。按理说,关闭网口的DHCP功能,IP地址应该不会发生改变才对,不知道要怎么设置才行。问题1:网口的DHCP功能再什么时候开启?

问题2:LWIP中的DHCP功能和网口的DHCP功能是什么关系,我的理解是应该是上下级才对?
问题3:网口状态发生变化,包括IP地址,dns,网关等,但是回调函数只进去一次(IP地址发生变化)

日志:
QQ图片20191106175955.png

代码:
微信图片_20191106175944.png

版本:
\ | /
- RT - Thread Operating System
/ | \ 4.0.2 build Nov 6 2019
2006 - 2019 Copyright by rt-thread team

查看更多

3 个回答
zhangjun
zhangjun 2019-11-07
This guy hasn't written anything yet
dhcp是协议栈功能,你在使用软件协议栈(lwip)和硬件以太网接口,dhcp功能是由lwip提供,与以太网口无关。
网口最多只是通知lwip网络状态发生了改变。
bloody41760
bloody41760 2019-11-07
This guy hasn't written anything yet
我也是这个问题:'(
xb-w
xb-w 2020-06-05
This guy hasn't written anything yet
这里只改了网卡标志,并没有真正对DHCP操作,在状态改变回调函数里开关DHCP
static void eth0_state_cb(struct netdev , enum netdev_cb_type type)
{
struct netif *netif = (struct netif *)netdev->user_data;

if(NETDEV_CB_STATUS_DHCP_ENABLE == type)
{
dhcp_start(netif);
}
else if(NETDEV_CB_STATUS_DHCP_DISABLE == type)
{
dhcp_stop(netif);
}
}

撰写答案

请登录后再发布答案,点击登录
关注者
0
被浏览
1.1k

发布
问题

分享
好友

手机
浏览

扫码手机浏览