CH32V307 使用内置10M Phy,想先通过DHCP获取IP地址,再ping域名。无法实现

域名解析时,需要 调用WCHNET_HostNameGetIp, 前提是调用WCHNET_InitDNS


如果代码调用了 WCHNET_InitDNS ,那么就无法DHCP 成功。

推测 DNS和 DHCP都使用 UDP, 把WCHNET_NUM_UDP 设置为2, 也无法成功。


请问,该如何解决?

您好,307EVT例程包中,有DNS的相关例程,,可以直接参考。

例程是dhcp成功后,解析 www.denis-pharm.com 这一域名继而得到对应的IP信息。

image.png

image.png


如果 上电 就 设置了 IP地址,网关,掩码和 DNS,

20241108090351.png

此时 DHCP 就 没法成功。


业务流程是: 

  1. 开机 手动设置一个 静态IP,网关,掩码,DNS。

  2. 此时可以 通过DNS获取域名对应 IP地址

  3. 点击一个按键, 触发DHCP,获取新的 网络信息

  4. 再通过 域名访问 外网网站

    目前看,只能进行到第2步。到第3步时,DHCP就失败了。

    如果第一步不设置DNS [ WCHNET_InitDNS(DNS, 53); ],第3步的DHCP就能成功。但此时也不能 通过域名获取到 IP地址


您好,测试并没有发现您说的这种情况,您应该是没有设置netconfig.h中udp的数量为2导致DHCP和DNS只能使用一个

image.png

image.png


只有登录才能回复,可以选择微信账号登录