ch32v307通讯中断

我用udpserver例程测试通讯,在电脑上用网络调试助手给板子的固定IP发送数据做回环测试,正常通讯时读phy状态是45(十进制),过半小时或一小时通讯会中断,此时读phy状态是9。周围环境中有干扰。

请问这是什么状况,有没有什么办法能尽量避免(包括软件和硬件设计),程序中需要怎么做能尽快恢复通讯,能不能只重启phy不要涉及到socket?

您好,PHY状态变化有两个方面可能的原因:

(1)外部干扰导致单独PHY无法工作,协议栈软件运行正常。

(2)协议栈运行出错,同时PHY不工作。

建议在收发时候加上获取socket状态的指令,待复现问题的时候查看socket出于什么状态。暂无只重启PHY的方法。


好的,谢谢。能说详细点吗,什么是获取socket状态指令,怎么用,包括tcp和udp。另外怎么恢复通讯,是重新创建socket,还是重新初始化网络库,还是复位整个芯片。


您好,关于您说的现象,您可以考虑以下几点:

  1. PHY因为干扰异常,这个建议您在网络接口这边使用一些增强抗干扰的屏蔽器件。

  2. 出现异常的时候,您可以看是否有触发Time Out中断,如果有的话,您可以尝试重新拔插网线,如果能重新产生新的PHY中断,如果可以,您可以在产生新的PHY中断后,创建新的Socket。如果无法产生新的PHY中断,您可能得考虑硬件复位芯片。看能否重新操作。


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