OpenEdv-开源电子网

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

lwip dhcp获取不到ip

[复制链接]

8

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
92
金钱
92
注册时间
2015-10-18
在线时间
21 小时
发表于 2016-10-25 21:21:20 | 显示全部楼层 |阅读模式
5金钱
我用的是lan8720 在ucosii 下使用
按照原子哥的例程操作
静态ip可以使用 打开dhcp获取不到ip
[mw_shl_code=applescript,true]//DHCP任务函数
void lwip_dhcp_task(void *pdata)
{
        u32 ip=0,netmask=0,gw=0;
        dhcp_start(&lwip_netif);
        lwipdev.dhcpstatus=0;

        while(1)
        {
                ip=lwip_netif.ip_addr.addr;
                netmask=lwip_netif.netmask.addr;
                gw=lwip_netif.gw.addr;
                if(ip!=0)   //在这里设置断电  ip总是0
                {
                        lwipdev.dhcpstatus=2;        //DHCP3é1|
                        lwipdev.ip[3]=(uint8_t)(ip>>24);
                        lwipdev.ip[2]=(uint8_t)(ip>>16);
                        lwipdev.ip[1]=(uint8_t)(ip>>8);
                        lwipdev.ip[0]=(uint8_t)(ip);

                        lwipdev.netmask[3]=(uint8_t)(netmask>>24);
                        lwipdev.netmask[2]=(uint8_t)(netmask>>16);
                        lwipdev.netmask[1]=(uint8_t)(netmask>>8);
                        lwipdev.netmask[0]=(uint8_t)(netmask);

                        lwipdev.gateway[3]=(uint8_t)(gw>>24);
                        lwipdev.gateway[2]=(uint8_t)(gw>>16);
                        lwipdev.gateway[1]=(uint8_t)(gw>>8);
                        lwipdev.gateway[0]=(uint8_t)(gw);

                        break;
                }else if(lwip_netif.dhcp->tries>LWIP_MAX_DHCP_TRIES)
                {  
                        lwipdev.dhcpstatus=0XFF;

                        IP4_ADDR(&(lwip_netif.ip_addr),lwipdev.ip[0],lwipdev.ip[1],lwipdev.ip[2],lwipdev.ip[3]);
                        IP4_ADDR(&(lwip_netif.netmask),lwipdev.netmask[0],lwipdev.netmask[1],lwipdev.netmask[2],lwipdev.netmask[3]);
                        IP4_ADDR(&(lwip_netif.gw),lwipdev.gateway[0],lwipdev.gateway[1],lwipdev.gateway[2],lwipdev.gateway[3]);

                        break;
                }  
                delay_ms(250);
        }
        lwip_comm_dhcp_delete();
}[/mw_shl_code]

最佳答案

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

我的解决了 不过好像不是我程序的问题 你可以具体说说你的问题
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

8

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
92
金钱
92
注册时间
2015-10-18
在线时间
21 小时
 楼主| 发表于 2016-10-25 21:21:21 | 显示全部楼层
jizhendong1994 发表于 2017-2-27 16:18
我的也是呀 本来是好好的  突然IP就一直是0,,不知楼主解决了没??

我的解决了  不过好像不是我程序的问题   你可以具体说说你的问题
回复

使用道具 举报

8

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
92
金钱
92
注册时间
2015-10-18
在线时间
21 小时
 楼主| 发表于 2016-10-25 21:22:10 | 显示全部楼层
使用tp_link路由器测试不行  电脑可以获取ip
回复

使用道具 举报

19

主题

430

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1341
金钱
1341
注册时间
2016-4-22
在线时间
187 小时
发表于 2016-10-26 08:52:05 | 显示全部楼层
我的板子tp link可以获得ip地址的。
你先将板子跟电脑链接,然后开抓包软件。看看板子能不能发出dhcp的discovery包。
伤情最是晚凉天,憔悴斯人不堪怜。
邀酒摧肠三杯醉,寻香惊梦五更寒。
钗头凤斜卿有泪,荼蘼花了我无缘。
小楼寂寞新雨月,也难如钩也难圆。
回复

使用道具 举报

8

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
92
金钱
92
注册时间
2015-10-18
在线时间
21 小时
 楼主| 发表于 2016-10-26 16:50:42 | 显示全部楼层
ysq7120 发表于 2016-10-26 08:52
我的板子tp link可以获得ip地址的。
你先将板子跟电脑链接,然后开抓包软件。看看板子能不能发出dhcp的dis ...

用那个抓包软件,我没用过,麻烦推荐下,谢谢哈
回复

使用道具 举报

8

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
92
金钱
92
注册时间
2015-10-18
在线时间
21 小时
 楼主| 发表于 2016-10-26 17:32:38 | 显示全部楼层
ysq7120 发表于 2016-10-26 08:52
我的板子tp link可以获得ip地址的。
你先将板子跟电脑链接,然后开抓包软件。看看板子能不能发出dhcp的dis ...

这是不是说明dhco发了广播了?
123.jpg
回复

使用道具 举报

19

主题

430

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1341
金钱
1341
注册时间
2016-4-22
在线时间
187 小时
发表于 2016-10-27 08:36:58 | 显示全部楼层
discover有了,你可以设置接收断点看看有没有包回来。
如果手头有hub或者可以进行端口映射的交换机,把tplink接上,然后用电脑抓包,看看tplink是否有回。
还有就是分析dhcp discover的options,看看是否有不支持的配置,正常就是不支持,tplink也应该会回复跟你协商才对。不过这个比较复杂你需要去研究dhcp协议才行。
伤情最是晚凉天,憔悴斯人不堪怜。
邀酒摧肠三杯醉,寻香惊梦五更寒。
钗头凤斜卿有泪,荼蘼花了我无缘。
小楼寂寞新雨月,也难如钩也难圆。
回复

使用道具 举报

8

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
92
金钱
92
注册时间
2015-10-18
在线时间
21 小时
 楼主| 发表于 2016-11-4 11:27:01 | 显示全部楼层
ysq7120 发表于 2016-10-27 08:36
discover有了,你可以设置接收断点看看有没有包回来。
如果手头有hub或者可以进行端口映射的交换机,把tpl ...

恩恩  谢谢了。我自己在研究下
回复

使用道具 举报

27

主题

112

帖子

0

精华

初级会员

Rank: 2

积分
163
金钱
163
注册时间
2016-11-10
在线时间
66 小时
发表于 2017-2-27 16:18:38 | 显示全部楼层
我的也是呀 本来是好好的  突然IP就一直是0,,不知楼主解决了没??
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2017-11-12
在线时间
10 小时
发表于 2017-12-25 22:06:43 | 显示全部楼层
突然,DHCP就不能用自动获取IP,都是0,不明白。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-24 22:01

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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