LWIP教程1——Cubemx 配置无操作系统下的LWIP初始化
文章目录
LWIP教程1——Cubemx 配置无操作系统下的LWIP初始化
1. 环境
1.1 软件环境:
- packages版本(STM32F4 1.21)
- cubemx版本(version4.27.0 && STM32Cube v1.0)
- MDK版本(KEIL5 V5.23.0.0)
1.2 硬件环境
- 正点原子探索者开发板(STM32F407ZGT6)
- 网络接口原理图部分
注意:LAN8720A 可以通过 PHYAD0 引脚来配置,该引脚与 RXER 引脚复用,芯片内部自带下拉电阻,当硬复位结束后, LAN8720A 会读取该引脚电平,作为器件的 SMI 地址,接下拉电阻时(浮空也可以,因为芯片内部自带了下拉电阻),设置 SMI 地址为 0,当外接上拉电阻后,可以设置为 1。本硬件RXER引脚浮空,其PHY芯片地址为0。
2. cubemx配置主要内容
2.1 RCC配置
2.2 SYS配置
2.3 USART1配置
2.4 ETH配置
ETH参数设置需要根据芯片手册来确定部分数据
- PHY芯片的配置需要注意以下几项:
- ETH配置中的高级参数配置
- PHY参数
user PHY
,CUBEMX默认选择的是LAN8742A_PHY_ADDRESS
。- PHY参数
PHY Address Value
,设置为0
,这个值需要根据硬件连接来确定(LAN8720A 可以通过 PHYAD0 引脚来配置,该引脚与 RXER 引脚复用,芯片内部自带下拉电阻,当硬复位结束后, LAN8720A 会读取该引脚电平,作为器件的 SMI 地址,接下拉电阻时(浮空也可以,因为芯片内部自带了下拉电阻),设置 SMI 地址为 0,当外接上拉电阻后,可以设置为 1。本硬件RXER引脚浮空,其PHY芯片地址为0)。- PHY参数
PHY name
,是一个标识符,可以随便设置,我这里设置的是LAN8720A
。
- 高级参数配置的最后三项参数设置需要根据芯片手册来设定
- 参数
PHY special control/status register Offset
,根据芯片手册看到是十进制31。- 参数
PHY Speed mask
,根据芯片手册看到是[bit3:bit2]表示速度掩码。- 参数
PHY Duplex mask
,根据芯片手册看到是[bit4]表示工作方式是全双工还是半双工掩码。
2.5 LWIP配置
LWIP使能
LWIP参数配置
2.6 时钟配置
3. 代码完善
3.1 添加对PHY硬件复位的代码
3.2 主函数添加LWIP线程函数
4. 实验效果
4.1 路由器端查看
是否存在已经在工程中设置ip地址为192.168.0.100
,MAC地址为00:80:E1:00:00:00
的设备。
可以看到IP地址和MAC地址符合我们代码中设置的。
4.2 ping开发板
ping设置的IP地址192.168.0.100
看能否ping通
可以看到IP地址可以ping通,延时不超过1ms。