OpenEdv-开源电子网

 找回密码
 立即注册

扫一扫,访问微社区

正点原子全套STM32开发资料,上千讲STM32视频教程,RT1052教程免费下载啦...
查看: 2270|回复: 4

快速移植W5500,基于STM32F407

[复制链接]

  离线 

38

主题

179

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
472
金钱
472
注册时间
2016-9-28
在线时间
137 小时
发表于 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, 下载次数: 433

W5500.zip

7.85 KB, 下载次数: 426

回复

使用道具 举报

  离线 

38

主题

179

帖子

0

精华

中级会员

Rank: 3Rank: 3

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

快速移植W5500,基于STM32F407

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

      同上
回复 支持 反对

使用道具 举报

  离线 

38

主题

179

帖子

0

精华

中级会员

Rank: 3Rank: 3

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

360截图20180715194200937.jpg

回复 支持 反对

使用道具 举报

  离线 

2

主题

13

帖子

0

精华

新手上路

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

使用道具 举报

  离线 

28

主题

77

帖子

0

精华

中级会员

Rank: 3Rank: 3

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

使用道具 举报

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

本版积分规则




关闭

正点原子双11大促销上一条 /1 下一条

正点原子公众号

QQ|联系我们|手机版|官方淘宝店|微信公众平台|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2018-11-13 14:37

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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