STM32+W5500实现网络通信

news/2024/11/25 13:10:14/

文章目录

    • 1、W5500简介
    • 2、UDP调试
    • 3、Modbus通讯
        • 3.1、代码完善
        • 3.2、建立连接
    • 4、总结


1、W5500简介

    1、简介: W5500是一款高性价比的以太网芯片,其全球独一无二的全硬件TCPIP协议栈专利技术,解决了嵌入式以太网的接入问题,简单易用,安全稳定,是物联网设备的首选解决方案。WIZnet提供完善的配套资料以及实时周到的技术支持服务,极大地缩短产品开发周期,全方位保障客户项目按时落地。

    2、引脚说明

引脚功能说明
3V3接3.3V电源
GND接地
RST复位引脚
INT中断引脚
MOSI主输出从输入
MISO主输入从输出
CLKSPI时钟
CS片选引脚

2、UDP调试

    1、调试资源:
https://pan.baidu.com/s/1fiWWfmWQT9CNh4EimU-Igw

    2、调试过程参考压缩包中:NiRen_W5500模块用户手册(用Adobe Reader打开).pdf文件。

    3、调试结果
在这里插入图片描述

3、Modbus通讯

3.1、代码完善

    1、初始化从机网络

void Load_Net_Parameters(void)
{Gateway_IP[0] = 192;//加载网关参数Gateway_IP[1] = 168;Gateway_IP[2] = 1;Gateway_IP[3] = 1;Sub_Mask[0]=255;//加载子网掩码Sub_Mask[1]=255;Sub_Mask[2]=255;Sub_Mask[3]=0;Phy_Addr[0]=0x0c;//加载物理地址Phy_Addr[1]=0x29;Phy_Addr[2]=0xab;Phy_Addr[3]=0x7c;Phy_Addr[4]=0x00;Phy_Addr[5]=0x01;IP_Addr[0]=192;//加载本机IP地址IP_Addr[1]=168;IP_Addr[2]=1;IP_Addr[3]=199;S0_Port[0] = 0x13;//加载端口0的端口号5000 S0_Port[1] = 0x88;S0_Mode=TCP_SERVER;//加载端口0的工作模式,TCP服务端模式

    2、响应函数

void Process_Socket_Data(SOCKET s)
{int len;unsigned char msg[11]={0x00,0x00,0x00 ,0x00, 0x00, 0x05, 0x01, 0x03, 0x02, 0x00, 0x70};len=sizeof(msg);unsigned short size;size=Read_SOCK_Data_Buffer(s, Rx_Buffer);memcpy(Tx_Buffer, Rx_Buffer, size);//打印查询报文for (int j=0;j<size;j++){printf("0x%02X ",Tx_Buffer[j]);}//写响应报文//检验码msg[0]=Tx_Buffer[0];msg[1]=Tx_Buffer[1];//协议msg[2]=0x00;msg[3]=0x00;//数据包长度msg[4]=0x00;msg[5]=0x05;//设备编号msg[6]=Tx_Buffer[6];//功能码msg[7]=Tx_Buffer[7];//数据长度msg[8]=0x02;//低八位msg[10]=data&0XFF;//高八位msg[9]=data>>8;memcpy(Tx_Buffer, msg, len);	//发送响应报文Write_SOCK_Data_Buffer(0, Tx_Buffer, len);data++;
}

    3、主函数的完善

 while (1){W5500_Socket_Set();//W5500端口初始化配置W5500_Interrupt_Process();//W5500中断处理程序框架if((S0_Data & S_RECEIVE) == S_RECEIVE)//如果Socket0接收到数据{S0_Data&=~S_RECEIVE;Process_Socket_Data(0);//W5500接收并发送接收到的数据}//从机状态标志HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_13);}

3.2、建立连接

    1、设置id、地址并读取位数
在这里插入图片描述

    2、TCP/IP建立连接,设置地址以及端口号
在这里插入图片描述

    3、ModBus Poll连接成功
在这里插入图片描述

    4、串口打印接收到的数据
在这里插入图片描述

4、总结

    本次实验通过对Modbus的学习,实现UDP以及Modbus的通信,了解了Modbus协议的一些基本内容。

参考:
https://www.w5500.com/index.html
https://blog.csdn.net/qq_45659777/article/details/121952778
https://blog.csdn.net/weixin_56102526/article/details/122178610?spm=1001.2014.3001.5501


http://www.ppmy.cn/news/287012.html

相关文章

STM32开发笔记111:移植W5500驱动程序

文章目录 前言1、电路设置2、设置STM32Cube3、将W5500源代码,拷贝到指定位置4、更改文件包含位置5、在include.h中加入包含文件6、去除Wmissing-braces警告7、去除Wparentheses警告8、加入SPI驱动程序10、增加函数声明11、在main.cpp中定义函数实现12、完善类前言 本文讲解如…

基于stm32f429的uclinux-W5500网络设备内核驱动

之前那篇写w5500驱动只是单纯的应用程序驱动&#xff0c;虽然可以实现一定的目的&#xff0c;但是没有充分利用到linux的内核&#xff0c;在一些应用场合就显得不合时宜&#xff0c;于是就进行w5500网络设备内核驱动的学习&#xff0c;幸运的是w5500网络设备驱动的文件是在4.8版…

w5500网络连接

文章目录 w5500_conf.h 文件内容w5500_conf.c 文件内容w5500.h 文件内容w5500.c 文件内容type.h 文件内容socket.h 文件内容socket.c 文件内容 w5500_conf.h 文件内容 包含一些相关的硬件初始化和用户参数配置。 #ifndef _W5500_CONF_H_ #define _W5500_CONF_H_#include &quo…

浪潮as5300技术方案_浪潮AS5300/5500G2-F 存储

统一全闪存储 (1)SANNAS的统一&#xff1a;在同一套存储系统内可以提供Block和File服务&#xff0c;简化数据中心架构&#xff0c;降低运维成本&#xff0c;灵活应对不同业务需求。 (2)多种协议的统一&#xff1a;支持iSCSI、 FC、 NFS、 CIFS、 HTTP、FTP等多种协议&#xff0…

基于stm32f407下的W5500网卡驱动(下)

使用w5500的目的是领导要求能从下位机通过tcp或者udp的形式把数据发到服务器上面去&#xff0c;进而把数据显示在服务器的网页上和传到手机的app上面显示。 继上文添加好Uclinux的spidev驱动后&#xff0c;spi1的miso、mosi、clk、cs等接口已经能正常输出数据&#xff0c;确保了…

STM32+W5500网络通信

这里写目录标题 1. W5500模块实现数据通信1. 基本原理2. 程序实现 2. DHCP自动获取IP1. 基本原理2. 程序实现 3. modbus协议1. 基本原理2. 实现过程 4. STM32W5500实现web服务1. 基本原理2. 程序实现 5. 总结参考 1. W5500模块实现数据通信 引脚初始化&#xff0c;此连线方式用…

蓝牙低功耗CC2640R2F+W5500SPI通信

CC2640R2FW5500SPI通信&#xff08;1&#xff09; 使用的开发板是TI公司的蓝牙BLE CC2640R2F&#xff0c;主要研究的是CC2640R2F与以太网模块W5500的spi通信&#xff0c;使用的代码调试软件为CCS&#xff0c; 将原本在51单片机上运行的W5500例程&#xff0c;移植到CC2640R2F的…

W5500作为服务器突然断线

大家是否遇到过这样的问题&#xff0c;W5500作为服务器已经建立连接&#xff0c;突然网线掉了&#xff0c;然后再去连接W5500&#xff0c;就连不上了。为什么&#xff1f;下面对这个问题进行解释说明&#xff0c;并提出解决办法。 图1中的上位机程序作为客户端&#xff0c;连接…