断断续续试了两三天,回来总结一下,希望对大伙儿有帮助吧。
CubeMx的配置默认(hal_conf.h里面的PHY address不改,还是DP83848)目前用野火的霸天虎开发板裸机静态IP地址ping通了,现象比较奇怪:第一次上电时RJ45绿灯亮100mbs速度,ping小于1ms;按复位键之后,绿灯就熄了,变成10mbs速度了,ping在3、4ms左右。不知道是不是因为野火板子把LAN8720复位脚和STM32系统复位脚共用。TCP/IP还没试,不过能Ping了应该没啥问题。
我个人的看法是,CubeMx 6.8.0以后的版本,将以太网芯片配置单独写成了一个驱动文件lan8742.c。使用LWIP的时候是调用这个驱动文件,而不是用hal_conf.h里面的PHY配置了,所以keil里面的DP83848是无所谓的。
最后真诚地奉劝各位,想用STM32CubeMx开发LWIP、TCP的话,还是用6.6.1以前的版本吧。6.8.0之后的第一个问题就是是网上资料太少,几乎都是老版本的教程。第二个问题是他几乎把函数改了个遍。比如ethernetif_set_link这个检查连接的函数直接没了;ethernetif_notify_conn_change和dethernetif_update_config这俩link回调的函数也变成了ethernet_link_status_updated这个巨简单的看起来就跟没用一样的函数。搞得我一度以为是我安装的CubeMx软件有问题,勾选了LINK_CALLBACK却没生成上,还专门去代码里找了参数的宏定义确定是使能了。
必须吐槽一下意法ST,软件版本一遍完全成了个新东西了,至少对LWIP模块是这样子。
CubeMx的配置默认(hal_conf.h里面的PHY address不改,还是DP83848)目前用野火的霸天虎开发板裸机静态IP地址ping通了,现象比较奇怪:第一次上电时RJ45绿灯亮100mbs速度,ping小于1ms;按复位键之后,绿灯就熄了,变成10mbs速度了,ping在3、4ms左右。不知道是不是因为野火板子把LAN8720复位脚和STM32系统复位脚共用。TCP/IP还没试,不过能Ping了应该没啥问题。
我个人的看法是,CubeMx 6.8.0以后的版本,将以太网芯片配置单独写成了一个驱动文件lan8742.c。使用LWIP的时候是调用这个驱动文件,而不是用hal_conf.h里面的PHY配置了,所以keil里面的DP83848是无所谓的。
最后真诚地奉劝各位,想用STM32CubeMx开发LWIP、TCP的话,还是用6.6.1以前的版本吧。6.8.0之后的第一个问题就是是网上资料太少,几乎都是老版本的教程。第二个问题是他几乎把函数改了个遍。比如ethernetif_set_link这个检查连接的函数直接没了;ethernetif_notify_conn_change和dethernetif_update_config这俩link回调的函数也变成了ethernet_link_status_updated这个巨简单的看起来就跟没用一样的函数。搞得我一度以为是我安装的CubeMx软件有问题,勾选了LINK_CALLBACK却没生成上,还专门去代码里找了参数的宏定义确定是使能了。
必须吐槽一下意法ST,软件版本一遍完全成了个新东西了,至少对LWIP模块是这样子。