概述
前言
必须先知道,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
的通再测试开发板(我就是那个没关防火墙调试的人才。。)
最后
以上就是危机导师为你收集整理的【一、stm32cube使用LWIP测试注意事项及配置备忘(FreeRTOS)】LAN8720A的全部内容,希望文章能够帮你解决【一、stm32cube使用LWIP测试注意事项及配置备忘(FreeRTOS)】LAN8720A所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复