STM32+modbus+W5500网络通信

本文介绍了如何使用STM32F103微控制器配合W5500以太网模块实现Modbus TCP通信,详细讲解了数据帧结构、Modbus功能码的应用以及W5500的网络配置和代码实现过程。

一、modbus

Modbus RTU通信时使用的数据帧结构如下图,而Moubus TCP通信的数据帧和这个稍微不一样,没有crc检验,因为tcp本就是一种可靠传输协议
在这里插入图片描述

功能码 作用
01 读取线圈状态
02 读取输入状态
03 读取保持寄存器
04 读取输入寄存器
05 强置单线圈
06 预置单寄存器
07 读取异常状态
08 回送诊断校验
09 编程(只用于484)
0A 控询
0B 读取事件计数
0C 读取通信事件记录
0D 编程(184/384/484/584等)
0E 探寻
0F 强置多线圈
10 预置多线圈
11 报告多寄存器
12 可使主机模拟编程功能
13 重置通信链路
14 读取通用参数
15 写入通用参数
16 屏蔽写寄存器
17 读/写多个寄存器

二、W5500

D-W5500 EVB以太网模块是一款基于WIZnet W5500芯片的以太网模块,且性价比高的以太网模块。W5500是一款全硬件TCP/IP嵌入式以太网控制器,为嵌入式系统提供了更加建议的互联网连接方案。
W5500固化了TCP/IP协议栈,10/100Mbps以太网数据链路层(MAC)及物理层(PHY),使得用户使用单芯片就能够在他们的应用中拓展网络连接。内嵌32K字节片上缓存以供以太网处理,并且可以同时使用8个硬件Socket独立通讯;SPI(外设船型接口)从而能够更加容易与外设MCU整合,并且W5500使用了高效SPI协议支持80MHz,从而实现高速网络通讯。
模块还支持3.3V或者5V电源供电,当5V供电时还可以输出3.3V的电压,方便用户在不同的单片机系统中使用。

线路接法
PA3 -> W5500_RST
PA4 -> W5500_SCS
PA5 -> W5500_SCK
PA6 -> W5500_MISO
PA7 -> W5500_MOSI

三、代码实现

  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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值