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

news2025/5/25 10:37:15

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=2k
		Write_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.coloradmin.cn/o/1505089.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux:非常实用的Linux命令

非常实用的Linux命令 系统服务管理 systemctl systemctl命令是Systemd系统和服务管理器的一部分&#xff0c;用于控制systemd系统和服务管理器。Systemd是大多数最新的Linux发行版使用的初始化系统和服务管理器&#xff0c;它用于启动守护进程并管理它们的运行。systemctl提…

element-ui plus v2.60 终于修复了 radio checkbox 取值不明确的问题,label value 值

element-ui plus v2.60 终于修复了 radio checkbox 取值不明确的问题&#xff0c;label value 值 昨天想反馈这个关于 label 和 value 的问题的时候&#xff0c;发现新版本已经修正这个问题了。 一、ElementUI 旧版关于 label 和 value 的问题 从之前 element-ui 用过来的&a…

第十一篇 - 应用于市场营销视频场景中的人工智能和机器学习技术 – Video --- 我为什么要翻译介绍美国人工智能科技巨头IAB公司(1)

IAB平台&#xff0c;使命和功能 IAB成立于1996年&#xff0c;总部位于纽约市。 作为美国的人工智能科技巨头社会媒体和营销专业平台公司&#xff0c;互动广告局&#xff08;IAB- the Interactive Advertising Bureau&#xff09;自1996年成立以来&#xff0c;先后为700多家媒体…

论文阅读《FENET: FOCUSING ENHANCED NETWORK FOR LANE DETECTION》

ABSTRACT 受人类驾驶专注力的启发&#xff0c;这项研究开创性地利用聚焦采样&#xff08;Focusing Sampling&#xff09;、部分视野评估&#xff08;Partial Field of View Evaluation&#xff09;、增强型 FPN 架构和定向 IoU 损失&#xff08;Directional IoU Loss&#xff…

【Pytorch】新手入门:基于sklearn实现鸢尾花数据集的加载

【Pytorch】新手入门&#xff1a;基于sklearn实现鸢尾花数据集的加载 &#x1f308; 个人主页&#xff1a;高斯小哥 &#x1f525; 高质量专栏&#xff1a;Matplotlib之旅&#xff1a;零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程&#x1f448; 希望…

递归、搜索与回溯算法简介

何为递归&#xff1a;递归就是递去归来&#xff0c;函数自己调用自己的情况。 不在意递归的细节展开图 把递归的函数当成黑盒&#xff08;给黑盒一个东西&#xff0c;它就能完成想要的事&#xff09; 相信黑盒一定能完成这个任务 深度优先遍历和深度优先搜索都是指一个东西dfs…

STM32---通用定时器(一)理论基础

写在前面&#xff1a;在STM32F103中有众多的定时器&#xff0c;其中包括两个基本定时器&#xff0c;基本定时器的内容已经在上节进行了介绍&#xff0c;基本定时器的功能、结构、使用都较为简单。而STM32F1中还含有4个通用定时器&#xff08;TIM2\3\4\5&#xff09;,这些定时器…

So you think you understand IP fragmentation?

文章目录 前言一、Why care?二、Prevention三、Well-understood?四、Introducing fragquiz五、A novel (?) algorithm六、Reader challenge七、traceroute八、ICMP参考资料 前言 本文来自&#xff1a;https://lwn.net/Articles/960913/ February 7, 2024This article was …

数据库的基本数据类型

基本数据类型之整型 【1】整型的分类 tinyint smallint mediumint int bigint 【2】整型的符号 符号不是用来限制位数的而是用来控制显示长度的 【3】tinyint 是否带符号 默认情况下是带符号, 默认带的符号是 号 超出最大范围 超出会报错 【4】unsigned(无符号) 每…

【C语言】文件操作篇-----程序文件和数据文件,文件的打开和关闭,二进制文件和文本文件,fopen,fclose【图文详解】

欢迎来CILMY23的博客喔&#xff0c;本篇为【C语言】文件操作篇-----程序文件和数据文件&#xff0c;文件的打开和关闭&#xff0c;二进制文件和文本文件【图文详解】&#xff0c;感谢观看&#xff0c;支持的可以给个一键三连&#xff0c;点赞关注收藏。 前言 在了解完动态内存管…

【PHP安全】PHP伪协议

PHP伪协议&#xff1a; file:// #访问本地文件系统http:// #访问HTTPs网址ftp:// #访问ftp URLphp:// #访问输入输出流zlib:// #压缩流data:// #数据&#xff08;RFC 2397&#xff09;ssh2:// #security shell2expect:// #处理交互式的流glob:// #查找匹配的文件路径phar:// #P…

【神经网络与深度学习】深度神经网络(DNN)

概述 深度神经网络&#xff08;Deep Neural Networks&#xff0c;DNN&#xff09;是一种由多个隐藏层组成的神经网络模型。每个隐藏层由多个神经元组成&#xff0c;这些神经元通过权重和激活函数进行信息传递和计算。 深度神经网络通过多层的非线性变换&#xff0c;可以学习到…

狂雨CMS-采集规则(novelfull.com)

1. 填写采集规则的基本信息 首先点击采集管理中的添加按钮来新建规则&#xff1a; 然后进入到信息页面填写&#xff0c;包括&#xff1a; 规则名称&#xff1a;一般以要采集的源站名命名。 网站编码&#xff1a;默认自动检测即可。 类型&#xff1a;根据网站类型来选择&#x…

遗传算法(GA)求解基于栅格地图的机器人最优路径规划,可以自行修改地图(提供MATLAB代码)

通过栅格法建立栅格地图作为机器人路径规划的工作环境,采用遗传算法作为机器人路径搜索的规则.将所有机器人放置于初始位置.经过NC次无碰撞迭代运动找到最优路径.到达目标位置.为防止机器人在路径搜索过程中没有达到最大迭代次数时路径大小已不发生变化而陷入局部最优。 一、部…

个人博客系列-后端项目-RBAC角色管理(6)

修改上一篇文章创建的用户表 ## 用户表 from django.contrib.auth.hashers import make_password, check_password from django.contrib.auth.models import AbstractBaseUserclass User(AbstractBaseUser):username models.CharField(max_length255, uniqueTrue, verbose_na…

day-18 猜数字游戏

1.由于两个数字位数相同&#xff0c;所以可以遍历字符串吧&#xff0c;找出公牛个数 2.在通过两个数组分别统计两个数字0-9的个数 3.Math.min(arr1[i],arr2[i])即为对应数字的奶牛个数 code class Solution {public String getHint(String secret, String guess) {int arr1[]n…

C++进阶:详细讲解继承

现在也是结束了初阶部分的内容&#xff0c;今天开始就进入进阶部分了。一刻也没有为初阶的结束而哀悼&#xff0c;立刻赶来“战场”的是进阶部分里的继承 文章目录 1.继承的概念和定义1.1继承的概念1.2继承的定义1.2.1继承的格式1.2.2再讲访问限定符(详讲protected)1.2.3**继承…

Android14之解决报错:No module named selinux(一百九十三)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

HTML静态网页成品作业(HTML+CSS)——花主题介绍网页设计制作(1个页面)

&#x1f389;不定期分享源码&#xff0c;关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 &#x1f3f7;️本套采用HTMLCSS&#xff0c;未使用Javacsript代码&#xff0c;共有1个页面。 二、作品演示 三、代…

数据科学中的Python:NumPy和Pandas入门指南【第121篇—NumPy和Pandas】

数据科学中的Python&#xff1a;NumPy和Pandas入门指南 数据科学是当今数字时代中的一个重要领域&#xff0c;而Python是数据科学家们最喜爱的编程语言之一。在这篇博客中&#xff0c;我们将介绍Python中两个强大的库——NumPy和Pandas&#xff0c;它们在数据处理和分析中发挥…