本文使用的IDE是IAR7.2,考虑到很多很使用Keil,本文也有keil版本的说明
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函数中加入以下代码
收到的数据成功返回
上一篇:STM32网络ETH
下一篇:链表在STM32中的应用
设计资源 培训 开发板 精华推荐
- 使用 ROHM Semiconductor 的 BD83070GWL 的参考设计
- #第七届立创电赛#一个USB功率计
- 使用 Richtek Technology Corporation 的 RT9917 的参考设计
- 汽车多线圈无线充电发射器
- LTC7130EY 高效率、双相极低 DCR 检测 1.2V/40A 降压电源的典型应用电路
- UPS升压电源(3A)
- AD8602ARMZ放大器光电二极管电路的典型应用
- LT8709 的典型应用 - 负输入同步多拓扑 DC/DC 控制器
- LT8494HFE 750kHz、16V 至 32V 输入、48V 输出、0.5A 升压转换器的典型应用电路
- LTC4368IDD-1 100V UV/OV 和具有双向断路器的反向保护控制器的典型应用电路