关于CH32V307以太网使用

1、关于仿真

在使用以太网时,不建议使用仿真功能。因为在网络协议栈内部有一个变量需要固定间隔时间去进行累加计数,若使用仿真功能,会导致这个变量停止累加计数,从而导致程序出现异常;

 

2、关于内部10M PHY的使用

在使用内部10M PHY时,内部 10M PHY的时钟由 PLL3 提供,且必须为 60MHz。使用内部PHY时,需要把扩展寄存器的第 2 位置位,置位后,MII/RMII/RGMII 相关的设置均无效。配置程序如下:

 

 

3、关于减少重连等待时间配置

如下图,可以通过修改重传次数和重传周期减小等待时间

 

4、关于创建多个socket注意事项

创建多个socket需要先在net_config.h中修改对应模式socket数量,随后可参考各模式例程创建相应的socket。例如DHCP例程中,DHCP是需要创建UDP的socket来实现,DHCP成功后会创建TCP客户端,因此net_config.h参数修改如下:

若需要客户端不同的socket对应不同的服务器端,在创建socket时设置对应的目的IP和目的端口即可。大致步骤如下:

在连接上服务器之后,若客户端需要发一段数据给服务器,直接调用WCHNET_SocketSend函数即可实现数据发送。

 

5、关于数据接收方式以及获取连接设备的IP和port端口信息

WCHNET提供了两种数据接收的方式,第一种为中断方式,另一种为回调模式,如下图:

关于获取连接设备的IP和port信息

做tcp服务器时,可以在connect中断中打印SocketInf结构体中的目的IP和目的端口来获取对端的信息,具体如下图:

 

做UDP时,可在接收中断打印SocketInf结构体获取对端的信息,如下图:

 

posted @ 2024-12-31 15:17  ZaiLi  阅读(458)  评论(0)    收藏  举报