STM32移植LWIP官方demo

STM32移植LWIP官方demo

本文使用的IDE是IAR7.2,考虑到很多很使用Keil,本文也有keil版本的说明

欢迎查看本文所在的系列,STM32的LWIP应用,点击跳转

1、硬件说明

  • 主控:STM32F207VCT6,100管脚的封装
  • 网络PHY芯片:RTL8201EL,48管脚封装,34和35管脚下拉,也就是芯片地址:0
  • 使用的网络接口:MII接口

2、移植步骤

2.1、修改IAR配置文件

修改芯片设置(其实不用修改)

硬件使用的是SWD模式

2.2、修改网络PHY地址

在stm32f2x7_eth_bsp.h文件中

2.3、修改硬件IO

在stm32f2x7_eth_bsp.c中

2.4、屏蔽无用的东西和修改IP

在main.h中

修改IP地址(以读者本机IP地址为准)

2.5、屏蔽其他代码

在stm32f2x7_eth_bsp.c中

屏蔽这一项是因为这是跟芯片相关的,该函数功能:配置物理层产生一个中断的链路状态变化

demo使用的是DP83848,我们的硬件使用的是RTL8201

该函数定义

该函数操作的是DP83848的17寄存器,关于PHY的寄存器,会有专门的一个博客讲解。

3、效果显示

3.1、电脑能ping通

3.2、客户端能够连接收发数据

4、Keil工程的修改

4.1、修改配置文件

修改芯片类型

修改调试工具

完成修改

5、移植TCP客户机代码

连接服务器,demo的代码在中断函数中

移植完毕,为了方便,把所有函数移植带main.c中

分别拷贝  tcp_echoclient_connect()、tcp_echoclient_connected()、tcp_echoclient_recv()、tcp_echoclient_connection_close()、tcp_echoclient_send()函数复制过来。

还有变量也要复制过来

复制到main.c中

为防止和tcpsever代码变量冲突,把tcp_echoserver.c所有代码全部屏蔽掉,后者将其从工程目录中删除

原来文件中的头文件也复制过来

把原来main.h的IP信息复制过来

把tcp_echoclient_connected函数中一下屏蔽

编译出错

有些函数调用的错误

方法1:调整函数位置

方法2:添加函数说明

修改IP(以实际IP为为主)

测试:

ping测试:

客户端测试,有新的客户端上线

为将接收到的数据返回PC,我们在tcp_echoclient_recv函数中加入以下代码

收到的数据成功返回

如果看文字版太枯燥,可以点击看视频版:点击跳转

百度云盘和谐比较严重,链接可能失效

链接:https://pan.baidu.com/s/1IRxiDo5Aqwy-Ls8hn0HblA
提取码:9bo8

                                                          

猜你喜欢

转载自blog.csdn.net/Firefly_cjd/article/details/79804982
今日推荐