OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 18870|回复: 16

快速移植W5500,基于STM32F407

[复制链接]

44

主题

188

帖子

0

精华

高级会员

Rank: 4

积分
558
金钱
558
注册时间
2016-9-28
在线时间
157 小时
发表于 2017-4-15 21:46:56 | 显示全部楼层 |阅读模式
本帖最后由 mftang2016 于 2017-4-15 23:11 编辑

说明:
本文主要介绍一种简单的W5500模块移植方案,仅需要简单地修改硬件接口,即可实现该驱动程序的移植。

硬件:
安富莱_STM32-V5开发板 和 有人物联网 USR-ES1 W5500模块
360截图20170415210345330.jpg 360截图20170415210446626.jpg

在安富莱_STM32-V5开发板,上预留一个NRF24L01模块的接口,可使用其作为W5500模块的控制引脚
IO连接方式:

W5500                                  MCU
REST                                      PC4
CS                                          PA4
MOSI                                      PB5
MISO                                      PB4
SCK                                        PB3

具体连接实物图如下:
360截图20170415230521085.jpg


固件介绍
该驱动主要由四个文件组成,w5500.c, w5500.h, socket.c,   socket.h, 而移植该固件仅需修改w5500.c中IO相关配置即可。
代码见附件

在w5500.c文件中修改IO端口配置信息,该测试代码使用 安富莱_STM32-V5开发板,其配置信息如下:
360截图20170415213708427.jpg

测试
测试版作为客户端,PC上位机作为服务器使用
测试代码如下:
INT8U NetStateCheck(void)
{
      INT8U net_state,phy_cfgr;
      CommModule    *pCommCfg;
              
      pCommCfg = &st_AppCfg.CommCfg;
      //判断是否网线断线
      phy_cfgr = getPHYCFGR();
      if(!(phy_cfgr&0x1))
      {
                disconnect(0);
                net_state = CONNECT_NONE;
                return net_state;
      }

      net_state=getSn_SR(0);
      switch(net_state)/*获取socket0的状态*/
      {
              case SOCK_INIT:/*socket初始化完成*/
                              connect(0, pCommCfg->Rj45.server_ip,pCommCfg->Rj45.server_port);/*在TCP模式下向服务器发送连接请求*/
              break;

              case SOCK_ESTABLISHED:/*socket连接建立*/
                              if(getSn_IR(0) & Sn_IR_CON)         //如下代码跳入到该状态下,则网络连接成功
                              {
                                              setSn_IR(0, Sn_IR_CON);/*Sn_IR的第0位置1*/
                              }        
              break;

              case SOCK_CLOSE_WAIT:/*socket等待关闭状态*/
                              disconnect(0);
              break;

              case SOCK_CLOSED:/*socket关闭*/
                              if(pCommCfg->Rj45.local_port>=4000)
                              {
                                              pCommCfg->Rj45.local_port=3000;
                              }
                              socket(0,Sn_MR_TCP, pCommCfg->Rj45.local_port++,Sn_MR_ND);/*打开socket0的一个端口*/
              break;
              default:
              break;
      }

      if( net_state == SOCK_ESTABLISHED )
      {

      }
      else
      {

      }

      return net_state;        
}

测试结果: 360截图20170415214302352.jpg




socket.zip

3.41 KB, 下载次数: 781

W5500.zip

7.85 KB, 下载次数: 773

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
76
金钱
76
注册时间
2018-12-3
在线时间
15 小时
发表于 2019-12-12 16:42:33 | 显示全部楼层
楼主,为什么提示#include "Includes.h"这个头文件没找到啊
回复 支持 0 反对 1

使用道具 举报

44

主题

188

帖子

0

精华

高级会员

Rank: 4

积分
558
金钱
558
注册时间
2016-9-28
在线时间
157 小时
 楼主| 发表于 2017-4-15 21:51:19 | 显示全部楼层

快速移植W5500,基于STM32F407

本帖最后由 mftang2016 于 2017-4-15 23:04 编辑

      同上
回复 支持 反对

使用道具 举报

44

主题

188

帖子

0

精华

高级会员

Rank: 4

积分
558
金钱
558
注册时间
2016-9-28
在线时间
157 小时
 楼主| 发表于 2018-7-15 19:48:14 | 显示全部楼层
历史帖更新:

360截图20180715194200937.jpg

回复 支持 反对

使用道具 举报

2

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
65
金钱
65
注册时间
2018-7-17
在线时间
25 小时
发表于 2018-7-19 12:06:17 | 显示全部楼层
好东西啊,最近正在做这个。
回复 支持 反对

使用道具 举报

28

主题

86

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
317
金钱
317
注册时间
2018-2-23
在线时间
37 小时
发表于 2018-10-11 09:42:06 | 显示全部楼层
如果有W5500问题没有解决,可以来找我们深圳炜世科技,提供专业的技术支持。
QQ:2429075983
邮箱gustin@wisioe.com
回复 支持 反对

使用道具 举报

0

主题

62

帖子

0

精华

初级会员

Rank: 2

积分
111
金钱
111
注册时间
2018-11-29
在线时间
9 小时
发表于 2018-12-10 16:14:56 | 显示全部楼层
楼主头像违规了
回复 支持 反对

使用道具 举报

0

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
61
金钱
61
注册时间
2019-2-10
在线时间
6 小时
发表于 2019-2-13 09:54:56 | 显示全部楼层
这真是极好的
回复 支持 反对

使用道具 举报

0

主题

110

帖子

0

精华

初级会员

Rank: 2

积分
164
金钱
164
注册时间
2019-1-29
在线时间
4 小时
发表于 2019-3-8 15:07:50 | 显示全部楼层
谢谢分享!
回复 支持 反对

使用道具 举报

0

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
94
金钱
94
注册时间
2018-3-22
在线时间
18 小时
发表于 2019-3-21 21:50:42 | 显示全部楼层
多谢楼主!
回复 支持 反对

使用道具 举报

0

主题

308

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
335
金钱
335
注册时间
2019-3-26
在线时间
9 小时
发表于 2019-3-29 10:19:39 | 显示全部楼层
多谢分享!
回复 支持 反对

使用道具 举报

0

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
51
金钱
51
注册时间
2018-10-14
在线时间
8 小时
发表于 2019-5-8 22:48:00 | 显示全部楼层
移植起来
回复 支持 反对

使用道具 举报

0

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
73
金钱
73
注册时间
2019-9-5
在线时间
28 小时
发表于 2019-9-12 20:40:57 | 显示全部楼层
好资料,谢谢
回复 支持 反对

使用道具 举报

6

主题

1130

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1656
金钱
1656
注册时间
2019-8-15
在线时间
102 小时
发表于 2019-10-23 19:44:15 | 显示全部楼层
支持一下
回复 支持 反对

使用道具 举报

22

主题

108

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
424
金钱
424
注册时间
2016-5-23
在线时间
118 小时
发表于 2020-10-15 17:27:13 | 显示全部楼层
mark STM32F407 w5500
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

新手入门

积分
19
金钱
19
注册时间
2019-7-26
在线时间
5 小时
发表于 2021-3-20 11:16:01 | 显示全部楼层
谢谢分享!有功之人!
回复 支持 反对

使用道具 举报

1

主题

6

帖子

0

精华

初级会员

Rank: 2

积分
51
金钱
51
注册时间
2016-1-7
在线时间
19 小时
发表于 2021-11-25 18:52:29 | 显示全部楼层
柯先云 发表于 2019-12-12 16:42
楼主,为什么提示#include "Includes.h"这个头文件没找到啊

请问怎么解决,有没有使用过F407成功连接并受到信息的
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-6-9 02:56

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表