STM32_ETH_Driver这四个文件夹,新建文件夹结果如图2.12所示。其次,将刚刚移植过来的文件分类添加到各个工程文件夹中。
LWIP/Port文件夹中添加文件结果如图2.13所示。
LWIP/Source文件夹中依次添加如图2.14、图2.15、
图2.16、图2.17所示文件。ipv6、snmp文件夹中的文件没用到,可以不添加这两个文件夹里面的文件,但如果需要可以选择添加。
图2.13 LWIP/Port文件夹需添加的文件
图2.14 Core文件夹中需要添加的文件 图2.15 Ipv4文件夹中需要添加的文件
图2.16 netif文件夹中需要添加的文件
图2.17 api文件夹中需要添加的文件
LWIP/Source文件夹中添加的文件结果如图2.18所示。
图2.18 LWIP/Source文件夹中添加后的文件
Efsl文件夹中依次添加如图2.19、图2.20所示文件。
图2.19 efsl文件夹中需要调节的文件
图2.20 efsl文件夹中需要调节的文件
Efsl文件夹中添加的文件结果如图2.21所示。
图2.21 efsl文件中添加后的文件 图2.22 STM32_ETH_Driver中需要添加的文件
STM32_ETH_Driver文件夹中添加如图2.22所示文件,STM32_ETH_Driver文件夹中添加的文件结果如图2.23所示。
图2.23 STM32_ETH_Driver中添加后的文件 图2.24 App文件夹中需要添加的文件
App文件夹中添加如图2.24所示两个文件,APP文件夹中添加的文件结果如图2.25所示。
以太网移植文件全部添加到MDK工程文件夹中后,其MDK工程文件夹结构如图2.26所示,再点击全部保存后,以太网移植文件就全部导入到MDK工程文件夹中来了。
图2.25 App文件夹中添加后的文件
图2.26 MDK工程文件结构
以太网移植文件全部导入到MDK工程文件夹之后,最后,还需把以太网移植文件所用到的头文件的路径添加到工程中来。其添加的头文件路径过程如图2.27所示。
图2.27 MDK中包含的头文件
到这一步已经完成了以太网文件的导入,下面只需编译一下,检查文件的导入是否正常。其编译结果如图2.28所示,零错误和零警告提示,表明编译通过。但需值得注意的是要把Spi.c文件添加到STM32库里去,因为efsl对文件操作时,需要用到SPI中的函数。
图2.28 MDK编译结果
2.4 程序中需要编辑的代码
第一处:以太网接收数据是通过中断方式接收的,需要编写以太网中断函数。其中
断函数编写如图2.29所示。
中断函数中调用了如图2.30所示头文件中的函数,在中断文件中需要把下面两个头文件包含进来。
图2.29 以太网中断函数
图2.30 中断文件中需要包含的头文件
第二处:主函数中需对以太网硬件进行初始化,初始化位置如图2.31所示。初始化函数需要自己写,由于程序中已经写好了,直接调用就行了,但值得注意的是需把如图2.32所示的头文件包含进来。
第三处:创建其它分任务之前,需要初始化LWIP通信协议栈,初始化位置如图2.33
图2.31 以太网硬件初始化调用
图2.32 主文件中需要包含的头文件
所示。LWIP初始化函数需要自己写,由于程序中已经写好了,直接调用就行了,但值得注意的是需把如图2.34所示的头文件包含进来。
图2.33 LWIP协议栈初始化调用
图2.34 C文件中需要包含的头文件
第四处:程序中用到了printf函数(对字符串进行格式化输出),需在串口文件中添
加如图2.35所示一个函数。此函数用到了C文件标准库,需要把标准库头文件包含进来并在工程设置选项中把“Use MicroLIB”勾上,其操作过程如图2.36、图2.37所示。
图2.35 fputc函数
图2.36 C文件中需要包含的头文件
图2.37 MDK选项中的设置
到这一步,程序中需要修改的部分基本上完成。最后,把工程编译一下,检查一下程序修改是否有错。其编译结果如图2.38所示,零错误、零警告提示,表明程序修改无误。
图2.38 MDK编译结果