OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6760|回复: 11

为什么 DHCP 获取失败?

[复制链接]

5

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2015-2-2
在线时间
0 小时
发表于 2015-7-16 11:40:34 | 显示全部楼层 |阅读模式
5金钱
我将 RAW UDP 的实验移植到了用 ENC28J60 的板子上,可是 DHCP 获取一直不成功。
如果不开启 LWIP_DHCP 这个宏,使用静态 IP 可以发送数据。
可是如果开启 LWIP_DHCP 的话,DHCP获取超时,转为使用静态 IP ,然后反而现在使用静态 IP 就发送不了数据了。到底问题出在哪里?

最佳答案

查看完整内容[请看2#楼]

可以看一下我们的ENC28J60的LWIP例程,里面的DHCP是可以正常使用的,链接:http://www.openedv.com/posts/list/43643.htm
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2015-7-16 11:40:35 | 显示全部楼层
可以看一下我们的ENC28J60的LWIP例程,里面的DHCP是可以正常使用的,链接:http://www.openedv.com/posts/list/43643.htm
开往春天的手扶拖拉机
回复

使用道具 举报

5

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2015-2-2
在线时间
0 小时
 楼主| 发表于 2015-7-16 16:26:28 | 显示全部楼层
回复【2楼】zuozhongkai:
---------------------------------
那请问 DHCP 获取失败一般是什么原因呢?
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2015-7-16 16:47:44 | 显示全部楼层
我还没遇到过DHCP获取失败,DHCP获取过程完全是LWIP自己完成的,调用dhcp_start()函数即可
开往春天的手扶拖拉机
回复

使用道具 举报

5

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2015-2-2
在线时间
0 小时
 楼主| 发表于 2015-7-16 17:20:41 | 显示全部楼层


 回复【4楼】 zuozhongkai :
---------------------------------
可是我一直都是超时,这是代码:
[mw_shl_code=c,true]u8 lwip_comm_init(void) { struct netif *Netif_Init_Flag; struct ip_addr ipaddr; struct ip_addr netmask; struct ip_addr gw; lwip_comm_default_ip_set(&lwipdev); if(lwip_comm_mem_malloc())return 1; if(ENC28J60_Init( ( u8 * ) mymac ))return 2; lwip_init(); #if LWIP_DHCP ipaddr.addr = 0; netmask.addr = 0; gw.addr = 0; #else IP4_ADDR(&ipaddr,lwipdev.ip[0],lwipdev.ip[1],lwipdev.ip[2],lwipdev.ip[3]); IP4_ADDR(&netmask,lwipdev.netmask[0],lwipdev.netmask[1] ,lwipdev.netmask[2],lwipdev.netmask[3]); IP4_ADDR(&gw,lwipdev.gateway[0],lwipdev.gateway[1],lwipdev.gateway[2],lwipdev.gateway[3]); #endif Netif_Init_Flag=netif_add(&lwip_netif,&ipaddr,&netmask,&gw,NULL,&ethernetif_init,&ethernet_input); /* #if LWIP_DHCP lwipdev.dhcpstatus=0; dhcp_start(&lwip_netif); #endif */ if(Netif_Init_Flag==NULL)return 3; else { netif_set_default(&lwip_netif); //?è??netif?????????? netif_set_up(&lwip_netif); } #if LWIP_DHCP lwipdev.dhcpstatus=0; //DHCP±ê????0 dhcp_start(&lwip_netif); while((lwipdev.dhcpstatus!=2)&&(lwipdev.dhcpstatus!=0XFF)) { lwip_periodic_handle(); lwip_pkt_handle(); } #endif return 0; } [/mw_shl_code] [mw_shl_code=c,true]这样和例程有区别吗?[/mw_shl_code]
回复

使用道具 举报

93

主题

746

帖子

1

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1850
金钱
1850
注册时间
2012-9-16
在线时间
286 小时
发表于 2015-7-16 17:23:46 | 显示全部楼层
过路由器了吗?
纵浪大化中,不喜亦不惧;应尽便须尽,无复独多虑!
回复

使用道具 举报

5

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2015-2-2
在线时间
0 小时
 楼主| 发表于 2015-7-16 17:28:16 | 显示全部楼层
回复【6楼】象牙塔:
---------------------------------
连上路由器了,只要不使能 DHCP,程序改动一下就正常了
回复

使用道具 举报

93

主题

746

帖子

1

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1850
金钱
1850
注册时间
2012-9-16
在线时间
286 小时
发表于 2015-7-17 14:57:17 | 显示全部楼层
路由器设置DHCP开启了吗?
纵浪大化中,不喜亦不惧;应尽便须尽,无复独多虑!
回复

使用道具 举报

19

主题

40

帖子

0

精华

初级会员

Rank: 2

积分
108
金钱
108
注册时间
2015-12-22
在线时间
15 小时
发表于 2016-3-27 15:01:29 | 显示全部楼层
请问你这个问题怎么解决的?我遇到了同样的问题。动态地址分配不了,只能用静态地址。
回复

使用道具 举报

19

主题

40

帖子

0

精华

初级会员

Rank: 2

积分
108
金钱
108
注册时间
2015-12-22
在线时间
15 小时
发表于 2016-3-27 15:03:04 | 显示全部楼层
程序也是一样的,您是怎么解决的啊
回复

使用道具 举报

4

主题

41

帖子

0

精华

初级会员

Rank: 2

积分
141
金钱
141
注册时间
2016-8-26
在线时间
31 小时
发表于 2016-10-11 19:23:13 | 显示全部楼层
同问。我的是有的路由器可以获取,有的获取不了。头疼。
回复

使用道具 举报

24

主题

192

帖子

0

精华

高级会员

Rank: 4

积分
503
金钱
503
注册时间
2016-3-16
在线时间
204 小时
发表于 2018-2-1 15:18:05 | 显示全部楼层
楼主问题解决了吗?我现在是有时获取成功,有时获取失败,是什么原因?难道是机器强行断电,没有释放DHCP吗?
路漫漫其修远兮,戒骄戒躁。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-8 10:09

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表