Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
RT-Thread一般讨论
lwip DHCP无有效IP情况,要UDP广播?autoip了解一下
5.00
发布于 2022-08-27 09:53:41 浏览:2815
订阅该版
在使用rt-thread的时候,因为设备不带任何显示。所以我们在设计产品的时候,带以太网功能的需要给设备配置ip、以及IP获取方式,为了方便使用,我们现在使用的是UDP广播的方案。以设备序列号为唯一值来枚举局域网中的设备。之前遇到当设备修改成DHCP后,如果设备没获取到有效的IP,即IP为0.0.0.0。这个时候UDP就无法收到PC的广播数据,当然也不能发送广播数据给PC。 为了解决此问题,查阅了一些资料。网上讲解的还是比较少。最后去研究了一下windows的设计,发现windows是当dhcp获取超时后,会把IP地址设置成169开头的网段,这个其实叫“链路本地地址”。附上一个参考资料:https://blog.csdn.net/qq_21453783/article/details/87071960。 最终体现出来的协议叫"autoip",在rt-thread里面,并没有在env里面做autoip配置使能与否的设计,需要自己手动打开。 autoip的意思就是,当打开了dhcp后,系统会先调用dhcp进行地址获取,当获取超时超过设定次数后,就启动autoip,他会本地随机的计算出一个以169开头的ip地址。这样就可以保证至少能进行通信了。当dhcp获取IP成功后,会自动覆盖掉autoip的地址。 ![screenshot_图片.png](https://oss-club.rt-thread.org/uploads/20220827/6e1e35f483a5026532a7505f1fda7631.png.webp) 如上图所示,需要lwipopts.h里面的449行,设置LWIP_AUTOIP为1,这里我使用的lwip版本为2.1.2,其他版本目前没测试,需要自行查看一下是否支持。 打开后 ![微信图片_20220827094246.jpg](https://oss-club.rt-thread.org/uploads/20220827/2c24fac0f37256ac544f3d8566f5da46.jpg.webp "微信图片_20220827094246.jpg") 打开autoip后,需要在opt.h文件的1006行,改一下dhcp超时次数,默认是9次,9次会很久,估计要5分钟以上才能结束,因为dhcp超时时间是以指数方式增长,最大超时是1分钟。所以我这里是改成3次,相对的要快一些。 打开这些后,如果需要观察到底有没有启动,可以查看一下以下代码位置。 ![微信图片_20220827094739.jpg](https://oss-club.rt-thread.org/uploads/20220827/7a0c77bf8b3cc9cb32a704bca86369d8.jpg.webp "微信图片_20220827094739.jpg") 这里就是判断dhcp判断是否超过重试次数,是否已经启动了autoip。可以在这个地方打一些日志查看。 当所有东西设置好编译完毕后,下载代码,然后设置dhcp为自动获取。有以下截图即为OK。 ![微信图片_20220827095123.jpg](https://oss-club.rt-thread.org/uploads/20220827/7ff54293b5a6c6cf230223443729f078.jpg "微信图片_20220827095123.jpg") 此次使用rt-thread版本:V4.0.5 lwip版本:2.1.2
4
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
killer22
这家伙很懒,什么也没写!
文章
1
回答
0
被采纳
0
关注TA
发私信
相关文章
1
有关动态模块加载的一篇论文
2
最近的调程序总结
3
晕掉了,这么久都不见layer2的踪影啊
4
继续K9ii的历程
5
[GUI相关] FreeType 2
6
[GUI相关]嵌入式系统中文输入法的设计
7
20081101 RT-Thread开发者聚会总结
8
嵌入式系统基础
9
linux2.4.19在at91rm9200 上的寄存器设置
10
[转]基于嵌入式Linux的通用触摸屏校准程序
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
线程
RT-Thread Nano
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
UART
WIZnet_W5500
ota在线升级
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
编译报错
Debug
SFUD
msh
rt_mq_消息队列_msg_queue
keil_MDK
ulog
MicroPython
C++_cpp
本月问答贡献
出出啊
1517
个答案
342
次被采纳
小小李sunny
1443
个答案
289
次被采纳
张世争
807
个答案
174
次被采纳
crystal266
547
个答案
161
次被采纳
whj467467222
1222
个答案
148
次被采纳
本月文章贡献
出出啊
1
篇文章
4
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
1
篇文章
1
次点赞
crystal266
2
篇文章
2
次点赞
whj467467222
2
篇文章
1
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部