CH32V307以太网(芯片内部10M)-针对新固件的Lib库
沁恒的CH32V307网络库在前段时间做了一个更新,相对于以前的Lib,主要的功能没有什么特别大的变化,但是底层的一些操作仔细看的话,还是不少的区别的。
首先,官方提供的例程,工程结构以及头文件优一些区别:针对网络的设置多了一个专门的net_config.h头文件,ETH底层的一些初始化函数,也做了开放。比如以前的LibInit库初始化函数,以前的库初始化函数只看到来自于库的扔出来的接口函数定义。现在将初始化的操作放开。
针对这个初始化结构体的说明:
这个结构体主要针对发送缓冲区带下,tcp-mss大小,arp-table数量以及网口灯的配置。网口灯配置可以选用CH32V307的任意GPIO去做。
后续的ETH_Init函数中,只是处理了芯片网络发送与接收的DMA设置以及以太网中断的初始化设置(这个主要是为了配合后续一些RTOS)。
WCHNET_GetMacAddr(MACAddr)函数开放,其实就是对芯片内部的FLASH读取,芯片出场自带的MAC。
这段设置的是以太网的保活定时器。可根据宏定义去做开启关闭。主函数依旧和之前保持一致,不断调用WCHNET_MainTask()以及WCHNET_HandleGlobalInt()函数。
新网络协议栈,将大部分用户可修改的的宏定义参数,都放在了net_config.h里面。包含一些Socket设置,缓冲区大小,TCP-MSS大小设置等。
而eth_driver.h以及WCHNET.h里面的宏定义不建议修改,里面保留的都是底层初始化,一些协议栈放出的接口函数以及协议栈内部保留的宏定义。