CH32V307采用RGMII接口使用MAC to Mac協(xié)議棧報錯

CH32V307采用RGMII接口與交換機(jī)直連,將PHY相關(guān)代碼屏蔽,修改完后有以下結(jié)果:

1.當(dāng)前使用MAC_RAW例程將發(fā)送ARP包,PC端已經(jīng)能收到,PC端回復(fù)數(shù)據(jù)307也能收到。

2.當(dāng)使用libwchnet.a庫,創(chuàng)建UDP服務(wù)后,PC端發(fā)送UDP廣播包,307也能收到。

3.但是當(dāng)307發(fā)送數(shù)據(jù)到PC端時,WCHNET_SocketUdpSendTo返回WCHNET_ERR_IF(Low-level netif error)的錯誤,PC接收不到數(shù)據(jù)。

4.將要發(fā)送的UDP包添加頭尾構(gòu)造MAC層包后,使用MAC_RAW例程中的MACRAW_Tx函數(shù)發(fā)送,PC能收到數(shù)據(jù)。

5.PC端使用UDP單播的形式,307也收不到數(shù)據(jù)。


當(dāng)前有點(diǎn)懷疑ARP表有異常,引發(fā)的通訊異常,請問:
1.使用MAC to MAC的方式后,能否直接使用libwchnet.a庫?

2.若能使用libwchnet.a庫,請問有什么排錯或修改建議?

3.若不能使用,請問有什么可行的方案和建議嗎?


您好,MAC直連可以使用libwchnet.a庫,協(xié)議棧需要獲取底層phy連接信息才會運(yùn)行數(shù)據(jù)處理代碼,才可正常收發(fā),所以需要設(shè)定一個值傳入?yún)f(xié)議棧,使用下圖中WCHNET_PhyStatus( phy_stat );函數(shù),將設(shè)定值傳入?yún)f(xié)議棧,傳入之后,協(xié)議棧會根據(jù)傳入數(shù)據(jù)bit2位進(jìn)行判斷底層是否連接,連接后會觸發(fā)link狀態(tài),此時會打印phy link success,可在此置標(biāo)志位,當(dāng)link連接成功之后,再調(diào)用udp發(fā)送,后續(xù)有問題可以通過郵箱交流一下:kx@wch.cn

image.png


非常感謝回復(fù)


只有登錄才能回復(fù),可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频