【一、stm32cube使用LWIP测试注意事项及配置备忘(FreeRTOS)】LAN8720A

前言

必须先知道,cube配置lwip是个极其简单的事情,想复杂往往就真复杂了。
这里我的环境是(看着多,其实就是几个勾)

  • cubeV6.3
  • LWIPv2.1.2`
    • 默认开启DHCP,只插网线就好,本地ip和子网掩码这些不需要配置
  • stm32f407ZGTx
  • FreeRTOSv10.3.1
  • CMSIS-RTOSv1.0.2

ETH外设配置

  • PHY配置[必须正确]
  • PHY地址配置[必须正确]
  • MAC配置[可选]
  • GPIO配置[必须正确,检查RMII接口引脚是否和自己的一样,不一样要改过来]

在这里插入图片描述
直接选8742A这个,真方便啊。。。
在这里插入图片描述
RMII接口引脚会自动生成,但未必和我们实际使用的电路图引脚相同,不对的要改过来。另外一个复位引脚根据自己的IO配置成普通输出就好
在这里插入图片描述
在这里插入图片描述

*PHY复位代码添加

位置:main()->MX_FREERTOS_Init()->osThreadDef():创建的缺省任务StartDefaultTask()->MX_LWIP_Init()->netif_add()的形参函数: ethernetif_init(),这里也可以配置HOSTNAME->low_level_init()这里可以看到上面的MAC配置->HAL_ETH_Init()->HAL_ETH_MspInit()重于找到了,不想一层层往下找直接搜索HAL_ETH_MspInit就好了
然后添加三行代码,把复位引脚拉低50ms再置高就完成了
(注:代码块放置在用户代码区,这样下次cube生成后我们添加的代码还在)
在这里插入图片描述

LWIP配置

甚至不需要别的配置了。。
这时候插上网线应该就能在路由器的客户端里面看到连接了,只是主机名是个*号, 也可以看到开发板IP,主机ping开发板IP也可以ping

HOSTNAME配置

在这里插入图片描述
这样默认会生成一个"lwip"的主机名,连接路由器可以看到
如果需要修改,
位置:main()->MX_FREERTOS_Init()->osThreadDef():创建的缺省任务StartDefaultTask()->MX_LWIP_Init()->netif_add()的形参函数: ethernetif_init()
改成需要的就好了
在这里插入图片描述

其他一些默认配置情况

  • RAW API 默认未开启
    在这里插入图片描述

  • NETCONN API 默认已开启
    在这里插入图片描述

  • Socket API 默认已开启
    在这里插入图片描述

另外注意:

  • 测试收发时特别注意自己电脑的防火墙,可以先用局域网内其他电脑ping自己的电脑看看,ping不通先关闭自己的防火墙,电脑之间相互ping的通再测试开发板(我就是那个没关防火墙调试的人才。。)
  • 3
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值