官网只有最新的版本,现在4月29日的1.7版本,ETH里面使用UdpServer,8_UART_Server的Netlib例程没有一个能正常运行的(使用官方的CH32V307V-R1-1v0开发板),一个字都没改直接编译,ping都ping不通。
手头上有很旧的版本,Netlib是0x10的,但是也有一堆莫名其妙的问题(如另一个帖子说的,删减掉例程里面的示例部分,只保留初始化之后,printf都不正常了)。所以想找找看哪个版本才能正常运行。
官网只有最新的版本,现在4月29日的1.7版本,ETH里面使用UdpServer,8_UART_Server的Netlib例程没有一个能正常运行的(使用官方的CH32V307V-R1-1v0开发板),一个字都没改直接编译,ping都ping不通。
手头上有很旧的版本,Netlib是0x10的,但是也有一堆莫名其妙的问题(如另一个帖子说的,删减掉例程里面的示例部分,只保留初始化之后,printf都不正常了)。所以想找找看哪个版本才能正常运行。
您好,您使用最新的V1.7的以太网库,直接编译下载EVT里面的内容,您可以在hardfault中断里面加上打印,看是否有进入这个中断。其次您说无法使用,无法ping通。请问程序里面Socket创建的返回值是否是正确的。您电脑的网络防火墙是否有关闭。
昨天在家里测试竟然ping通了。但是今天在公司还是出问题,ping都ping不通,直接网线将开发板跟电脑对接都不行。调试了一下发现,ETH中断都进入if((DMARxDescToGet->Status & ETH_DMARxDesc_OWN) != (u32)RESET)里面了。就是接收的包并没有进行处理。但是调试暂停,也能看到程序有进入了WCHNET_MainTask里面了。所以,我是真的搞不懂是哪里问题了。只能确定就是库没有处理接收到的数据包。
如果还是ping不通,您可以确认一下您的公司这边的电脑是否有把网络防火墙关掉。运行网络不建议使用LINk仿真。
同一台笔记本电脑,一开始就是直接运行,只是后来为了看看有没有hardfault或者其他问题才进行调试。而且,我烧之前用0x10网络库的旧程序,或者RT-Thread的例子,改为相同的IP,硬件没有改动,都是可以ping通的。而且ETH中断进入那个地方,就是之前收到的包没有处理,导致数据包溢出了。但调试是有进入MainTask这个函数,看样子应该是这里处理数据包?但是实际又没处理。
我也是1.7版本,WCHNET_SocketUdpSendTo函数,debug下可以发送,直接运行不行。参考了“CH32V307 UDP 网络库 WCHNET_SocketUdpSendTo 发送问题 库bug - 沁
恒微电子社区”,这里有1.6版本的可以正常发送。