- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
STM32F407_DP83848_Lwip移植方法
前段时间做项目用到百兆网通信,用到了LWIP,一开始是参照原子的例程做移植,因为原子的例程中使用的是LAN8720,为了改成DP83848,改寄存器地址,改位定义,改速度计算公式,折腾了好多天也没成功,最后只好听从网友的建议,修改ST官方的一个例程,几天下来,竟然成功了,现在将步骤分享给大家,感觉实际工程中用DP83848的还是大多数..其实本文并不是移植LWIP,只是将ST官方的例程改成我们项目所需要的,然后我们再在这个基础上完成自己的项目即可,这对新接触LWIP又急着做项目的人比较适合,没必要去了解LWIP的具体实现,会用就行了.. 本文作者:武汉普创科技--易宇--转载请注明出处 本人的项目配置:STM32F407VET6 + DP83848C 1、从官方网站/document/list/index/category-523下载STSW-STM32070 面向STM32F4x7微控制器的LwIP TCP/IP协议栈的演示代码Dpdf和软件包stsw-stm32070.zip。stsw-stm32070.zip是面向STM32F4x7微控制器的LwIP TCP/IP协议栈的EVAL开发板的演示代码 2、将stsw-stm32070.zip解压得到STM32F4x7_ETH_LwIP_V1.1.0文件夹,下面是STM32F4x7_ETH_LwIP_V1.1.0文件夹架构 3、删除_htmresc文件夹,这个文件夹是ST及CMSIS公司logo,没什么用。 4、打开project文件夹,这个文件夹包括两个文件夹:FreeRTOS和Standalone。 FreeRTOS文件夹里的程序示例是基于FreeRTOS系统的LWIP移植示例,这里我们不需要,直接删除。 Standalone文件夹里是一些无操作系统LWIP移植示例程序,在这里我们工程需要的是普通的数据传输,所以只使用到UDP,所以我们只保留udp_echo_client文件夹,其他的都删除掉。在udp_echo_client文件夹中EWARM文件夹是IAR EWARM建立的工程,MDK-ARM是keil MDK建立的工程。在这里我们选择MDK工程,IAR建立的工程可以保留也可以删除。还有一个文件夹RIDE,打开看了看,应该是用另一款编译软件建立的工程空间,这里我们不需要,直接删除。 5、Utilities-Third_Party文件夹下面有三个文件夹FatFs_vR0、FreeRTOSV7.3 、lwip-1.4.1。FatFs_vR0一个通用的文件系统模块,用于在小型嵌入式系统中实现FAT文件系统FreeRTOSV7.3一个迷你操作系统内核的小型嵌入式系统lwip-1.4.1文件夹是LWIP源码,是我们所需要的。 6、打开MDK-ARM文件夹里面的MDK工程,我们先编译一下,可以看到有0个错误,三个警告,其中两个警告是定义了变量但是没有使用,我们不去管它,另一个警告是..\..\..\..\Utilities\Third_Party\lwip-1.4.1\port\STM32F4x7\Standalone \ethernetif.c(366): warning: #1-D: last line of file ends without a newline 提示ethernetif.c文件的最后一行(也就是366行)没有换行,MDK里面每个文件的最后一行必须换行,不然会提示一个警告,这里把366行后面换行再编译,这个警告就消失了。 7、打开 main.h 文件,因为我们电路板上使用的是RMII接口,所以将#define MII_MOD注释掉,将//#define RMII_MODE取消注释,如下图所示: 在这里要注意RMII的时钟为50MHz,在电路板上直接焊接一个50MHz的有源晶振就可以了。 取消//#define USE_DHCP的注释,启用动态地址分配,当地址分配不成功则使用静态IP地址。如图: 注释掉或删除 USE_LCD和serial_debug,本项目没有用到这两项,如下图: 本项目中直接删除掉,因为删除掉了SERIAL_DEBUG,所以我们可以将serial_debug.c文件从项目中移除。 点击红色的叉号删除serial_debug.c,然后点击OK就可以了。 将Groups栏STM324xG_EVAL中的stm324x7i_eval.c和stm324x7i_eval_lcd.c删除,将MDK_ARM中的启动文件startup_stm32f427x.s删除,将Project Targets分栏中的项目名STM324x7I_EVAL删除,将STM324xG_EVAL中的stm324xg_eval_lcd.c删除,
文档评论(0)