STM32F407_DP83848_Lwip移植方法要点

上传人:缘*** 文档编号:172305557 上传时间:2021-03-09 格式:DOCX 页数:12 大小:708.63KB
返回 下载 相关 举报
STM32F407_DP83848_Lwip移植方法要点_第1页
第1页 / 共12页
STM32F407_DP83848_Lwip移植方法要点_第2页
第2页 / 共12页
STM32F407_DP83848_Lwip移植方法要点_第3页
第3页 / 共12页
STM32F407_DP83848_Lwip移植方法要点_第4页
第4页 / 共12页
STM32F407_DP83848_Lwip移植方法要点_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《STM32F407_DP83848_Lwip移植方法要点》由会员分享,可在线阅读,更多相关《STM32F407_DP83848_Lwip移植方法要点(12页珍藏版)》请在金锄头文库上搜索。

1、前段时间做项目用到百兆网通信 , 用到了 LWIP,一开始是参照原子的例程做移植 , 因为原子的例程中使用的是 LAN8720,为了改成 DP83848,改寄存器地址 , 改位定义 , 改速度计算公式 , 折腾了好多天也没成功 , 最后只好听从网友的建议 , 修改 ST 官方的一个例程 , 几天下来 , 竟然成功了 , 现在将步骤分享给大家 , 感觉实际工程中用 DP83848的还是大多数 . 其实本文并不是移植 LWIP,只是将 ST 官方的例程改成我们项目所需要的 , 然后我们再在这个基础上完成自己的项目即可 , 这对新接触 LWIP又急着做项目的人比较适合 , 没必要去了解 LWIP的具

2、体实现 , 会用就行了 .本文作者:武汉普创科技易宇转载请注明出处本人的项目配置:STM32F407VET6 + DP83848C1、从官方网站http:/www.stmcu.org/document/list/index/category-523下载 STSW-STM32070面向STM32F4x7微控制器的LwIP TCP/IP协议栈的演示代码的英文文档DM00036052.pdf和软件包stsw-stm32070.zip。 stsw-stm32070.zip是面向STM32F4x7微控制器的LwIP TCP/IP协议栈的基于官方EVAL开发板的演示代码,显然,我们直接修改这个演示代码要比

3、我们去移植LWIP简单得多。DM00036052.pdf是演示代码的说明文档。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 移

4、植示例程序,在这里我们工程需要的是普通的数据传输,所以只使用到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

5、.1 。FatFs_vR0一个通用的文件系统模块,用于在小型嵌入式系统中实现FAT 文件系统, FreeRTOSV7.3一个迷你操作系统内核的小型嵌入式系统,在这里我们都用不上,直接 删除 。 lwip-1.4.1文件夹是LWIP 源码,是我们所需要的。6、打开 MDK-ARM文件夹里面的MDK 工程,我们先 编译 一下,可以看到有 0 个错误,三个警告,其中两个警告是定义了变量但是没有使用,我们不去管它,另一个 警告是 .UtilitiesThird_Partylwip-1.4.1portSTM32F4x7Standaloneethernetif.c(366): warning:#1-D:

6、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的注释

7、,启用动态地址分配,当地址分配不成功则使用静态 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分

8、栏中的项目名 STM324x7I_EVAL 删除,将 STM324xG_EVAL中的 stm324xg_eval_lcd.c删除,这都是和本项目无关的东西。这时候编译会提示错误,我们将 stm32f4x7_eth_bsp.h文件里关于 包含 LCD 函数的头文件删除 ,如下图。将 stm32f4x7_eth_bsp.c文件里面 关于 LCD 的部分删除 掉,如下图,将这些行删除。将 netconf.c 中 141-148 行关于 LCD 的函数删掉/* Set the LCD Text Color */LCD_SetTextColor(Red);/* Display message on the LCD */LCD_DisplayStringLine(Line5, (uint8_t*)LCD_DisplayStringLine(Line6, (uint8_t*)Network Cable is not connected););/* Set the LCD Text Color */LCD_SetTextColor(White);再编译就没有问题了。8、按电路图修改时钟,修改stm32f4xx.h 中

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > IT计算机/网络 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号