关于CH32V307 + WCHNET webserver 服务

使用CH32V307  + WCHNET 实现 webserver 服务,加电后HTTP请求可以正常访问,ping也能平通,但是过了一段时间(这时间不定可能很长)后 http请求无法访问,也ping不通,程序也还在跑没有锁死,就算接收不到

  有使用FreeRTOS,一个线程专门处理WCHNET ,一个线程跑业务。

请问这是什么原因引起得,可以往哪方面去排查,谢谢!

您好,我建议先长时间测试下webserver工作是否正常,使用ping xxx.xxx.xxx.xxx -t命令监测。一切正常的话再在RTOS内运行,同时添加看门狗,观察服务能否长时间运行。

image.png


长时间测试webserver(没有引入FreeRtos) 过段时间后 也无法ping通,在循环里加的指示灯闪烁也是正常的,需要重新上电才能ping通


您好,经过一段时间的测试,未发现webserver无法ping通的情况,可以用我提供的例程测试下。截图里面的丢包是因为我对评估版重新烧录程序所致。

icon_rar.gifWebServer.zip

image.png



CH32V307ETV R1的开发板运行2022.06.02的webserver时,是会出现无法ping的问题的。

我测试出来是这样的,先用一个浏览器登录并切换各个页面。然后不关闭浏览器但是关闭http页面,再用另一个浏览器打开就会发现无法打开了。再切换会原来的浏览器也无法打开,也无法ping通。



image.png


请问这是什么原因? 把这个去掉也是没问题的吧


按您发的 还是ping通一段时间之后就 ping不通了



1.关于报错问题可以查看NetLib文件夹下的wchnet.h,里面有详细的错误解释;2.按照你的描述是希望实现webserver功能,所以我的理解是不可以删除MODE_TCPSERVER的。我再给你一份更新过网络库函数的测试程序,看是否可以解决这个问题。

icon_rar.gifWebServer.zip1662083261583.jpg


这个我只需要 芯片能接收到http请求返回数据就好,就不需要MODE_TCPSERVER了吧


  1. 一直ping过了1到2个小时 还是会ping不通,eth link led会灭掉;

  2. 重新插拔 板子上的网线  会进入中断打印“PHY Link Success”,eth link led亮起,可以ping通

  3. 我这边 硬件与网络环境是没问题的 


所以这个会是什么原因啊,一直查不出来



您好,我想进一步了解下你的网络拓扑结构来排查问题,如果您方便的话可以把拓扑发到我的邮箱(lbw@wch.cn),我们通过邮件进一步沟通。


您好,您可以先不跑上层协议的程序,直接用一个简单的TCP_Server程序链接电脑测试,打开wireshark同步一起,电脑去PINGCH32V307的IP。如果也出现了一段时间后,无法PING通。那么您看一下307的程序,有没有触发PHY_CHANGE中断,判断物理层到底有没有出现断链(也可以通过LINK灯辅助判断),如果这样,建议您可以先查看网线以及您PCB版网络这部分的电路。如果没有出现这类现象,那么您可以查看程序这边,以太网中断还能否正常进入。以上测试建议直接链接电脑,减少外围网络环境的干扰因素。


一直就是直连电脑的,

程序的业务,是 串口6循环发送信息到1到16张业务卡中,业务卡收到信息后在返回串口信息,中间通过485传输。

第一 把代码中的业务部分去掉,然后一直ping?

第二 把完整的程序写入另外一张板子里,这张板子串口6是不会收到回传数据的,一直ping


这两种情况下 ping了一晚上 都没有断

现在怀疑是 以太网中断与串口6的中断冲突了,今天在把程序中串口6中断的配置去掉,看是否能一直ping通


我这也出现类似的问题,连续ping一天后开始ping不通, 数据连接灯是亮的,需要重新加电才可以ping上


WCHNET_SocketRecvLen 156  socket id 2

TCP Disconnect

TCP Connect Success

WCHNET_SocketRecvLen 156  socket id 2

TCP Connect Success

WCHNET_SocketRecvLen 156  socket id 2

TCP Timeout


看打印的是 tcp 连接超时了


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