乐鑫技术交流
直播中

tr4578

8年用户 928经验值
擅长:模拟技术
私信 关注
[问答]

ESP32 DHCP为什么获取不到IP?

使用的是ESP32C3芯片,换过不同厂家的模块,不同的工程,AT指令固件也不能获取到公司路由器IP。之前调了很久都是可以获取到IP,连接其他路由器可以获取到IP。公司路由器手机电脑都能正常获取到IP正常上网。路由器型号“TL-XDR3230易展版”,路由器日志里有“13days, 00:29:40,DHCPS: Send OFFER with ip 192.168.0.125.”貌似路由器有收到并回应DHCP请求,以下部分日志

  • etharp_timer
    dhcp_coarse_tmr()
    I (506838) BLUFI_EXAMPLE: rssi:-38
    I (506838) Protocol: 0x3fcb85e8   fa 00 00 00 00 02 00 11  8c e7 04 1f              |............|
    I (506838) BLUFI_EXAMPLE: mac:MAC34b4724e30c0
    I (507278) WIFI: wait to get IP
    etharp_timer
    dhcp_coarse_tmr()
    I (508278) WIFI: wait to get IP
    etharp_timer
    dhcp_coarse_tmr()
    I (509278) WIFI: wait to get IP
    etharp_timer
    dhcp_coarse_tmr()
    I (510278) WIFI: wait to get IP
    etharp_timer
    dhcp_coarse_tmr()
    I (510738) BLUFI_EXAMPLE: set rssi threshold
    dhcp_fine_tmr(): request timeout
    dhcp_timeout()
    dhcp_timeout(): restarting discovery
    dhcp_discover()
    dhcp_discover(): dhcp state is DISCOVER
    dhcp_select: could not allocate DHCP request
    pbuf_alloc(length=308)
    pbuf_alloc(length=308) == 0x3fcbf6e4
    transaction id xid(99999105)
    dhcp_discover: making request
    dhcp_discover: sendto(DISCOVER, IP_ADDR_BROADCAST, LWIP_IANA_PORT_DHCP_SERVER)
    pbuf_add_header: old 0x3fcbf734 new 0x3fcbf72c (8)
    pbuf_add_header: old 0x3fcbf72c new 0x3fcbf718 (20)
    ip4_output_if: st1
    IP header:
    +-------------------------------+
    | 4 | 5 |  0x00 |       336     | (v, hl, tos, len)
    +-------------------------------+
    |       38      |000|       0   | (id, flags, offset)
    +-------------------------------+
    |  255  |   17  |    0xba77     | (ttl, proto, chksum)
    +-------------------------------+
    |    0  |    0  |    0  |    0  | (src)
    +-------------------------------+
    |  255  |  255  |  255  |  255  | (dest)
    +-------------------------------+
    ip4_output_if: call netif->output()
    pbuf_add_header: old 0x3fcbf718 new 0x3fcbf70a (14)
    ethernet_output: sending packet 0x3fcbf6e4
    dhcp_discover: deleting()ing
    pbuf_free(0x3fcbf6e4)
    pbuf_free: deallocating 0x3fcbf6e4
    dhcp_discover: SELECTING
    dhcp_discover(): set request timeout 15000 msecs
    I (511278) WIFI: wait to get IP
    I (511338) BLUFI_EXAMPLE: rssi:-38
    I (511338) Protocol: 0x3fcb85e8   fa 00 00 00 00 02 00 11  8c e7 04 1f              |............|
    I (511338) BLUFI_EXAMPLE: mac:MAC34b4724e30c0
    etharp_timer
    dhcp_coarse_tmr()
    I (512278) WIFI: wait to get IP
    etharp_timer
    dhcp_coarse_tmr()
    I (513278) WIFI: wait to get IP
    etharp_timer
    dhcp_coarse_tmr()
    I (514278) WIFI: wait to get IP
    etharp_timer
    dhcp_coarse_tmr()
    I (515278) WIFI: wait to get IP
    etharp_timer
    dhcp_coarse_tmr()
    I (515738) BLUFI_EXAMPLE: set rssi threshold
    I (515848) BLUFI_EXAMPLE: rssi:-38
    I (515848) Protocol: 0x3fcb85e8   fa 00 00 00 00 02 00 11  8c e7 04 1f              |............|
    I (515848) BLUFI_EXAMPLE: mac:MAC34b4724e30c0
    I (516278) WIFI: wait to get IP

               

回帖(1)

张昂笙

2024-6-6 18:14:43
根据您提供的信息,您的ESP32C3芯片在连接公司路由器时无法获取到IP地址。以下是一些可能的原因和解决方案:

1. **路由器设置问题**:检查公司路由器的DHCP服务器设置,确保DHCP服务已启用,并且有足够的IP地址池供设备使用。

2. **IP地址冲突**:如果ESP32设备已经尝试获取IP地址,但未能成功,可能是由于IP地址冲突。尝试重启路由器和ESP32设备,以解决可能的IP地址冲突问题。

3. **MAC地址过滤**:检查路由器是否启用了MAC地址过滤功能,如果启用,请确保ESP32设备的MAC地址已添加到允许列表中。

4. **设备兼容性问题**:虽然较少见,但某些路由器可能与特定设备存在兼容性问题。尝试更新路由器的固件,或联系路由器厂商寻求支持。

5. **ESP32设备固件问题**:检查ESP32设备的固件是否为最新版本,如果不是,请更新到最新版本。

6. **网络环境问题**:如果可能,请尝试将ESP32设备连接到其他网络环境,以排除网络环境问题。

7. **ESP32设备设置问题**:检查ESP32设备的网络设置,确保DHCP客户端已启用,并且没有设置静态IP地址。

8. **信号强度问题**:您提供的日志显示RSSI值为-38,这表明信号强度可能较低。尝试将ESP32设备靠近路由器,以提高信号强度。

9. **路由器日志分析**:从您提供的路由器日志来看,路由器似乎已经发送了DHCP OFFER,但ESP32设备可能没有正确响应。检查ESP32设备的日志,以获取更多关于DHCP过程的信息。

10. **尝试使用其他DHCP客户端**:如果可能,尝试使用其他设备(如手机或电脑)连接到公司路由器,以确定问题是否仅限于ESP32设备。

综上所述,您可以根据这些建议逐一排查问题,希望能够帮助您解决ESP32C3芯片无法获取IP地址的问题。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分