官網(wǎng)只有最新的版本,現(xiàn)在4月29日的1.7版本,ETH里面使用UdpServer,8_UART_Server的Netlib例程沒有一個能正常運行的(使用官方的CH32V307V-R1-1v0開發(fā)板),一個字都沒改直接編譯,ping都ping不通。
手頭上有很舊的版本,Netlib是0x10的,但是也有一堆莫名其妙的問題(如另一個帖子說的,刪減掉例程里面的示例部分,只保留初始化之后,printf都不正常了)。所以想找找看哪個版本才能正常運行。
官網(wǎng)只有最新的版本,現(xiàn)在4月29日的1.7版本,ETH里面使用UdpServer,8_UART_Server的Netlib例程沒有一個能正常運行的(使用官方的CH32V307V-R1-1v0開發(fā)板),一個字都沒改直接編譯,ping都ping不通。
手頭上有很舊的版本,Netlib是0x10的,但是也有一堆莫名其妙的問題(如另一個帖子說的,刪減掉例程里面的示例部分,只保留初始化之后,printf都不正常了)。所以想找找看哪個版本才能正常運行。
您好,您使用最新的V1.7的以太網(wǎng)庫,直接編譯下載EVT里面的內(nèi)容,您可以在hardfault中斷里面加上打印,看是否有進(jìn)入這個中斷。其次您說無法使用,無法ping通。請問程序里面Socket創(chuàng)建的返回值是否是正確的。您電腦的網(wǎng)絡(luò)防火墻是否有關(guān)閉。
昨天在家里測試竟然ping通了。但是今天在公司還是出問題,ping都ping不通,直接網(wǎng)線將開發(fā)板跟電腦對接都不行。調(diào)試了一下發(fā)現(xiàn),ETH中斷都進(jìn)入if((DMARxDescToGet->Status & ETH_DMARxDesc_OWN) != (u32)RESET)里面了。就是接收的包并沒有進(jìn)行處理。但是調(diào)試暫停,也能看到程序有進(jìn)入了WCHNET_MainTask里面了。所以,我是真的搞不懂是哪里問題了。只能確定就是庫沒有處理接收到的數(shù)據(jù)包。
如果還是ping不通,您可以確認(rèn)一下您的公司這邊的電腦是否有把網(wǎng)絡(luò)防火墻關(guān)掉。運行網(wǎng)絡(luò)不建議使用LINk仿真。
同一臺筆記本電腦,一開始就是直接運行,只是后來為了看看有沒有hardfault或者其他問題才進(jìn)行調(diào)試。而且,我燒之前用0x10網(wǎng)絡(luò)庫的舊程序,或者RT-Thread的例子,改為相同的IP,硬件沒有改動,都是可以ping通的。而且ETH中斷進(jìn)入那個地方,就是之前收到的包沒有處理,導(dǎo)致數(shù)據(jù)包溢出了。但調(diào)試是有進(jìn)入MainTask這個函數(shù),看樣子應(yīng)該是這里處理數(shù)據(jù)包?但是實際又沒處理。
我也是1.7版本,WCHNET_SocketUdpSendTo函數(shù),debug下可以發(fā)送,直接運行不行。參考了“CH32V307 UDP 網(wǎng)絡(luò)庫 WCHNET_SocketUdpSendTo 發(fā)送問題 庫bug - 沁
恒微電子社區(qū)”,這里有1.6版本的可以正常發(fā)送。