之前已经对原理图进行了分析,网络部分使用的芯片是LAN8720A,接口使用的是RMII的接口。 而要进行网络通信,还要用到LWIPTCP/IP 协议栈,而这些都可以在STM32CubeMX 上进行配置。 使用 STM32CubeMX 进行配置时,引脚默认并不与开发板上的一样,要手动再更改一下,如TX0 与TX1 是不一样的,开发板上用的是PG13 与PG14. ETH_RESET引脚则是通过PCF8574进行配置的,而PCF8574则是使用的I2C2,PH4、PH5两个引脚,前面已经说过了,不再赘述。
所以在使用网络功能时,也要对PCF8574进行初始化。 工程使用了DHCP,在接上网线后,会自动分配ip地址,不过也可以使用静态地址。 如下在lwipopts.h的宏定义中更改LWIP_DHCP
硬件上使用如下函数对LAN8720进行初始化。 u8 LAN8720_Init(void); 软件上使用如下函数对LWIP进行初始化。 lwip_comm_init(); 如下,已经分配好了IP地址为192.168.0.10
分配好IP地址后,可以在电脑上ping一下开发板,可以ping通。
配置是加载了web的,直接输入开发板的IP地址,可以打开网页如下:
程序中是使能了CGI的,可以通过网页进行硬件上的操作,如下对LED与BEEP的控制。
除此之外,例程还支持三种网络应用。 TCP Server模式,TCP Client模式,UDP模式。 通过按键进行选择。
如下是UDP模式下的信息。
|