关于以太网参数配置问题

目前想做一个微信小程序通过蓝牙配置网络参数,有以下几个问题不太清楚,请帮忙看一下:


1. DHCP的函数WCHNET_DHCPStart,该函数获取的动态IP地址有租约的概念吗?租约到期之后会自动续租吗?


2. 调用WCHNET_DHCPStart成功获得动态IP地址后,原来在WCHNET_Init配置的静态IP地址会自动失效吗?此后创建会话是否都是使用动态IP地址创建?


3. 静态IP地址是只能够在WCHNET_Init函数中修改吗?是否支持多次在程序中修改静态IP地址,或者在程序中多次通过进行库初始化修改静态IP地址?我看例程ETH_CFG是将修改的IP放在ROM中,开机的时候从ROM中获取修改的配置信息。

还有一个问题是,只有第一次获取DHCP地址时能够正常发送数据给公网的服务器。再次重启板子获取DHCP地址后,能够正常进行socket连接,但是发送数据就直接显示TCP Timeout,无法发送数据到公网服务器。SINT_STAT_TIM_OUT这个中断产生的原因是什么?



您好,您这边用的是哪款芯片呢?

1.DHCP功能是有租期概念,一般当租期到达设定时间一半时,会发起续约报文请求更新租期。

2.如果DHCP获取IP成功,则会使用获取到的IP进行通信,如果DHCP失败,则可以用WCHNET_Init初始化时配置的IP进行通信。

3.修改IP等参数只可调用库初始化函数WCHNET_init进行修改,如果重新调用该函数进行配置新的IP,物理层、socket等部分都需要重新配置。

4.对于time_out问题,您用的是什么模式进行通信?前后两次dhcp获取到的IP一样吗?在tcp模式下,tcp连接,断开,发送数据等过程中出现超时,会产生超时中断,tcp模式下一旦超时此中断,socket会被关闭且socket的相关配置会被清除。


建议:
1.启用DHCP功能前,建议配置DHCP主机名,某些特定路由如果没有配置主机名,会dhcp失败。

2.如果需要重新配置静态IP,直接调用例程中ETH_LibInit函数+ETH_PHYLink函数即可,因为在WCHNET_init之前,需要有其他必要初始化操作。

3.对于产生超时中断的问题,可以通过wiresshark抓包看一下具体情况。

可以留个邮箱我这边发你修改静态IP的程序您参考一下,同时可以将抓包情况邮件发过来看一下(邮箱:lq@wch.cn)

image.png


感谢答复。我的邮箱是:个人信息保护,已隐藏


1. 使用的芯片是ch32v208 rbt6


2. time_out问题,使用的是TCP-client的方式连接服务器。前后两次获取到的IP一致。由于服务器是别人的,所以抓包不太方便


3. 如果使用DHCP获取到了动态IP地址,但是此时又想修改回静态IP,应该如何操作?


您好!

上面发送数据显示TCP Timeout的问题,好像跟DHCP没有关系。因为我设置了从DHCP每次固定获取的动态IP为静态IP,不开启DHCP,还是可以连接socket,但一发送数据就超时。

我不把网线接路由器,而是直连自己的电脑,发送数据却没任何问题。

请问超时时间可以修改吗?


您好,邮件已回复您的问题,请注意查收。


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