野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4403|回复: 4

STM32 +WW5500+DHCP例程不能正确运行的解决方法

[复制链接]
发表于 2016-2-23 20:29:49 | 显示全部楼层 |阅读模式

首次在论坛发帖,还望版主和大家多支持。

在W5500网络扩展板例程中的 DCHP模式的程序中,一直停留在如下:

野火网络适配版 DHCP Demo V1.0

野火网络适配板作为DHCP客户端,尝试从DHCP服务器获取IP地址


后面获取不了DHCP服务器分配的ip等。


经过排查,发现程序中有两处疑似错误:
1、"dhcp.c"头文件中的do_dhcp(void)函数里面,两个初始化DHCP定时器初始化与DHCP初始化,需要放在main函数中,否则在while语句中会不断初始化。编译下载后可获得ip地址等,但是使用ping链接会发现,请求超时。进行第二步
dhcp_timer_init();
init_dhcp_client();.

2、在"w5500_conf.c"的set_w5500_ip(void)函数中,没有MAC设置,如下:
  setSUBR(ConfigMsg.sub);  
setGAR(ConfigMsg.gw);
  setSIPR(ConfigMsg.lip);
需要在加上setSHAR(ConfigMsg.mac);配置MAC地址。
setSHAR(ConfigMsg.mac);
  setSUBR(ConfigMsg.sub);
  setGAR(ConfigMsg.gw);
  setSIPR(ConfigMsg.lip);
完成设置后,ping链接发现可以正常运行。

ps:这个例程总体写的非常不错,适合初学者,有很多程序可以自己扩展。

回复

使用道具 举报

发表于 2016-2-24 08:41:39 | 显示全部楼层
赞赏                       
回复 支持 反对

使用道具 举报

发表于 2017-12-28 18:35:20 | 显示全部楼层

w5500代理商炜世科技,欢迎前来咨询: 0755-8656 8556,技术支持邮箱:support@wisioe.com
回复 支持 反对

使用道具 举报

发表于 2018-12-27 16:38:14 | 显示全部楼层
我本身就获取不到IP地址,然后按你的方法改了一下,为什么还是不行啊
回复 支持 反对

使用道具 举报

发表于 2019-4-12 09:04:19 | 显示全部楼层
鱼仔 发表于 2018-12-27 16:38
我本身就获取不到IP地址,然后按你的方法改了一下,为什么还是不行啊

楼主这是前两年的帖子了,野火最新的程序已经改正了楼主的Bug。
不过我昨天也遇到DHCP不通的问题。程序全速跑,DHCP获取不到IP。而进入仿真加断点,才可以获取到IP。所以我怀疑是需要加延时的问题
于是在main里加了200ms的延时,程序就可以正常运行了,IP也能正常获取到
另外还有一点,TIM2用于获取DHCP超时判断的时候。野火的程序是把中断也打开了,不过并没有添加中断返回函数,这样我在编译运行的时候,程序会一直卡死在汇编的B .位置。
解决方法,加TIM2中断返回函数。或者关掉TIM2中断
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|站点地图|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号-2 ) 大学生ARM嵌入式2群

GMT+8, 2020-9-22 03:18 , Processed in 0.259170 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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