关于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结构体获取对端的信息,如下图:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~