STM32驱动W5500作为客户端进行通讯

STM32驱动W5500作为客户端进行通讯

  • 模块简介
  • 引脚说明
  • 接线
  • 代码
    • 部分代码
    • 测试是否通讯成功

模块简介

SR-ES1内嵌Wiznet的W5500芯片,使用硬件逻辑门电路实现TCP/IP协议栈的传输层及网络层(如:TCP,UDP,ICMP,IPv4,ARP,IGMP,PPPoE等协议),并集成了数据链路层,物理层,以及32K字节片上RAM作为数据收发缓存。使得上位机主控芯片,只需承担TCP/IP应用层控制信息的处理任务。从而大大节省了上位机对于数据复制、协议处理和中断处理等方面的工作量,提升了系统利用率及可靠性。
在操作过程中,用户可以近似的将W5500作为MCU的一个外设RAM来使用,非常简易。W5500对外接口为通用的80MHz高速SP1,供不同平台拓展高速以太网方案选用。自动协商LED状态显示SP接口速度快稳定性高。尺寸与引脚兼容Wiznet官方的模块WIZ820io。


在这里插入图片描述

点击图片购买

引脚说明

GND:地,电源负
VIN3.3: 3.3V电源正
PWDN: 引脚用于断电模式
高电平: 断电模式启用
低电平: 正常模式启用
nREST: 该引脚低电平有效,用于复位重新初始化W5500
MISO: SPI主输入从输出.
MOSI: SPI主 输出从输入
SCLK: SPI时钟引脚
nSS: SPI片选引脚,低电平有效
nINT: 中断引脚,低电平有效

接线

使用的单片机:STM32F103ZET6

STM32F103ZET6W5500
PC5RST
PC4INT
PA4CS
PA5SCK
PA6MISO(MI)
PA7MOSI(MO)
3.3VV
GNDG

代码

这里采用的是中断方式,W5500工作在客户端模式,并且以500ms的时间间隔定时给服务端发送字符串"\r\nWelcome To YOUXINDIANZI \r\n",电脑作为服务端接收数据,打开对应的测试软件可以接收到"Welcome To YOUXINDIANZI"的数据。
通讯之前需要设置好IP地址等参数,这里选择设置为与程序相同的IP地址和网关,具体设置如下。
目的IP地址是需要修改的电脑的IP地址参数,以及对应的网关和掩码。

/*例程网络参数*/
//网关: 192.168.1.1
//掩码: 255.255.255.0
//目的IP(电脑)地址: 192.168.1.190
//目的端口号: 6000

设置如图:在这里插入图片描述

部分代码

这里仅展示5500初始化部分的代码,具体代码有需要下方留言哦!

void W5500_Init(void)
{u8 i=0;Write_W5500_1Byte(MR, RST);Delay(10);Write_W5500_nByte(GAR, Gateway_IP, 4);Write_W5500_nByte(SUBR,Sub_Mask,4);		Write_W5500_nByte(SHAR,Phy_Addr,6);		Write_W5500_nByte(SIPR,IP_Addr,4);		for(i=0;i<8;i++){Write_W5500_SOCK_1Byte(i,Sn_RXBUF_SIZE, 0x02);//Socket Rx memory size=2kWrite_W5500_SOCK_1Byte(i,Sn_TXBUF_SIZE, 0x02);//Socket Tx mempry size=2k}Write_W5500_2Byte(RTR, 0x07d0);Write_W5500_1Byte(RCR,8);Write_W5500_1Byte(IMR,IM_IR7 | IM_IR6);Write_W5500_1Byte(SIMR,S0_IMR);Write_W5500_SOCK_1Byte(0, Sn_IMR, IMR_SENDOK | IMR_TIMEOUT | IMR_RECV | IMR_DISCON | IMR_CON);
}

测试是否通讯成功

将模块和STM32用杜邦线连接好,W5500端口连接电脑的网口,实际接线如图:
在这里插入图片描述
接好线后下载程序并运行,在PC端打开测试软件,填入服务端对应的IP地址和端口号,单击connect即可看到客户端发送过来的数据了,接收页面如下:
在这里插入图片描述
每隔500ms出现一次 Welcome To YOUXINDIANZI 就证明通讯成功了。
如果点击connect后没有出现数据,下方也没有出现客户端的地址,那可能是

  1. IP地址设置有误或者没有改IP地址
  2. 单片机下载程序后没有复位运行

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/526550.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言————字符函数与字符串函数

在编程的过程中&#xff0c;我们经常要处理字符和字符串&#xff0c;为了⽅便操作字符和字符串&#xff0c;C语⾔标准库中提供了⼀系列库函数&#xff0c;如追加&#xff0c;拷贝&#xff0c;替换等等接下来我们就学习⼀下这些函数&#xff0c;并且自实现。 gets 这个指令大家…

扩展CArray类,增加Contain函数

CArray不包含查找类的函数&#xff0c;使用不便。考虑扩展CArray类&#xff0c;增加Contain函数&#xff0c;通过回调函数暴露数组元素的比较方法&#xff0c;由外部定义。该方法相对重载数组元素的“”符号更加灵活&#xff0c;可以根据需要配置不同的回调函数进行比较 //类型…

分布式架构之Nacos配置中心

一、配置中心的意义 1、微服务中配置文件的问题 配置文件的问题&#xff1a; 配置文件的数量会随着服务的增加持续递增单个配置文件无法区分多个运行环境配置文件内容无法动态更新&#xff0c;需要重启服务 引入配置文件&#xff1a;刚才架构就会成为这样。是由配置中心统一…

惬意上手MySQL

大家好&#xff0c;我又来写博客了&#xff0c;今天给大家介绍一下MySQL,如果你只想让MySQL作为自己的辅助开发工具&#xff0c;那这一篇文章就够了&#xff0c;如果想作为一门语言来学习&#xff0c;那你可以看此文章了解一些基础。 MySQL介绍 数据库可分为关系型数据库和非关…

【NR 定位】3GPP NR Positioning 5G定位标准解读(七)- GNSS定位方法

前言 3GPP NR Positioning 5G定位标准&#xff1a;3GPP TS 38.305 V18 3GPP 标准网址&#xff1a;Directory Listing /ftp/ 【NR 定位】3GPP NR Positioning 5G定位标准解读&#xff08;一&#xff09;-CSDN博客 【NR 定位】3GPP NR Positioning 5G定位标准解读&#xff08;…

分布式解决方案

目录 1. 分布式ID1-1. 传统方案1-2. 分布式ID特点1-3. 实现方案1-4. 开源组件 1. 分布式ID 1-1. 传统方案 时间戳UUID 1-2. 分布式ID特点 全局唯一高并发高可用 1-3. 实现方案 方案总结&#xff1a; 号段模式 有两台服务器&#xff0c;给第一台服务器分配0-100&#xff0…

【重要公告】BSV区块链上线TypeScript SDK,未来将支持更多开发语言

​​发表时间&#xff1a;2024年2月21日 BSV区块链协会宣布上线JavaScript和TypeScript SDK&#xff08;即“标准开发工具包”&#xff09;。TypeScript SDK旨在为开发者提供新版统一核心代码库&#xff0c;以便利开发者在BSV区块链上开发能够任意扩容的应用程序。新上线的SDK替…

R语言更新版本

目录 一、更新R语言 1、安装最新的R语言版本 2、移动之前安装的packages 3、将Rstudio连接到最新的R语言 二、Rstudio更新 一、更新R语言 1、安装最新的R语言版本 查看当前R语言版本&#xff1a; R.version.string 下载最新的R语言安装包&#xff1a;R: The R Project…

前端框架的发展历程

文章目录 前言 一、静态页面时代 二、JavaScript的兴起 三、jQuery的出现 四、前端框架的崛起 1.AngularJS 2.React 3.Vue.js 五、面向组件化的发展趋势 总结 前言 前端框架的发展史就是一个不断进化的过程&#xff0c;它的发展和进化一定程度…

16 PyTorch 神经网络基础【李沐动手学深度学习v2】

1. 模型构造 在构造自定义块之前&#xff0c;我们先回顾一下多层感知机的代码。 下面的代码生成一个网络&#xff0c;其中包含一个具有256个单元和ReLU激活函数的全连接隐藏层&#xff0c; 然后是一个具有10个隐藏单元且不带激活函数的全连接输出层。 层和块 构造单层神经网咯…

【网络应用层协议】【MQTT】详解消息队列遥测传输协议MQTT(超详细)

目录 1. MQTT 协议简介 2. MQTT 的特点 3. MQTT 协议原理 4. MQTT协议中的订阅、主题、会话 1. MQTT 协议简介 MQTT&#xff08; Message Queuing Telemetry Transport&#xff0c;消息队列遥测传输协议 &#xff09;是一种消息列队传输协议&#xff0c;采用订阅、发布机制&…

面向对象(精髓)变继承关系为组和关系

在面向对象编程中&#xff0c;继承关系是一种重要的关系类型&#xff0c;它允许一个类&#xff08;子类&#xff09;继承另一个类&#xff08;父类&#xff09;的属性和方法。然而&#xff0c;随着软件系统的复杂性不断增加&#xff0c;传统的继承关系可能会导致代码的臃肿和耦…