目录

  • W5500网络模块简介
  • 使用测试工具调试
  • 实现应用层modbus、httpd(web服务)协议编程
    • .1 modbus协议编程
    • .2 web协议编程
  • 参考

W5500网络模块简介

W5500网络扩展板集成了一个硬件TCP/IP协议协芯片W5500以及一个含有网络变压器的RJ-45(HR911105A)。其中,W5500是一款全硬件TCP/IP嵌入式以太网控制器,以嵌入式系统提供了更加简易的互联网连接方案。

使用测试工具调试

使用TCP&UDP测试工具进行调试。
将W5500网络模块与STM32F103板子连接:
参考代码中的注释:

PC5引脚可以更换为其它引脚。
在keil中编译运行后,打开调试工具,在服务端模式即可有:

实现应用层modbus、httpd(web服务)协议编程

.1 modbus协议编程

main函数:

在main函数中有w5500的配置函数 W5500_Configuration() ,在配置函数中可以修改自己的IP地址及网关信息等。

.2 web协议编程

引脚初始化:

void GPIO_Configuration(void)
{GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA |RCC_APB2Periph_GPIOB |RCC_APB2Periph_GPIOC|RCC_APB2Periph_AFIO , ENABLE);// Port A outputGPIO_InitStructure.GPIO_Pin =GPIO_Pin_0|GPIO_Pin_1| GPIO_Pin_2 |GPIO_Pin_3; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_Init(GPIOA, &GPIO_InitStructure);//  GPIO_ResetBits(GPIOA, GPIO_Pin_0);
//  GPIO_ResetBits(GPIOA, GPIO_Pin_1);
//  GPIO_SetBits(GPIOA, GPIO_Pin_2); // led off
//  GPIO_SetBits(GPIOA, GPIO_Pin_3); // led off// Port B output;GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_Init(GPIOB, &GPIO_InitStructure);GPIO_SetBits(GPIOB, GPIO_Pin_9);// Port C input
//  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;
//  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
//  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
//  GPIO_Init(GPIOC, &GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;//控制flashGPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;GPIO_Init(GPIOB, &GPIO_InitStructure);GPIO_SetBits(GPIOB, GPIO_Pin_7);
}

串口初始化:

void USART1_Init(void)
{USART_InitTypeDef USART_InitStructure;GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA |RCC_APB2Periph_USART1|RCC_APB2Periph_AFIO , ENABLE);GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;;GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOA, &GPIO_InitStructure);// Configure the USART1_Rx as input floatingGPIO_InitStructure.GPIO_Mode =GPIO_Mode_IN_FLOATING ;GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;GPIO_Init(GPIOA, &GPIO_InitStructure);USART_InitStructure.USART_BaudRate = 115200;USART_InitStructure.USART_WordLength = USART_WordLength_8b;USART_InitStructure.USART_StopBits = USART_StopBits_1;USART_InitStructure.USART_Parity = USART_Parity_No ;USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;USART_ITConfig(USART1, USART_IT_RXNE, ENABLE); //Enable rx enable, /* Configure the USARTx */ USART_Init(USART1, &USART_InitStructure);/* Enable the USARTx */USART_Cmd(USART1, ENABLE);
}

main函数:

int main(void)
{Systick_Init(72);GPIO_Configuration(); //GPIO configurationUSART1_Init(); //115200@8-n-1printf("W5500 EVB initialization over.\r\n");Reset_W5500();WIZ_SPI_Init();printf("W5500 initialized!\r\n");if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_7)){DefaultSet();//出厂值}else{get_config();//read config data from flash}printf("Firmware ver%d.%d\r\n",ConfigMsg.sw_ver[0],ConfigMsg.sw_ver[1]);if(ConfigMsg.debug==0) ConfigMsg.debug=1;set_network();printf("Network is ready.\r\n");while(1){if(ConfigMsg.JTXD_Control == 0)do_http();elseJTXD_do_http();if(reboot_flag)NVIC_SystemReset();
//        reboot();}
}

源码:提取码:z56u

参考

https://blog.csdn.net/qq_45659777/article/details/121952778?spm=1001.2014.3001.5501

https://blog.csdn.net/tcjy1000/article/details/25474511

STM32+W5500网络通信相关推荐

  1. AD原理图设计、STM32+W5500网络通信

    一.Altium Designer (一)简介 Altium Designer 提供了唯一一款统一的应用方案,其综合电子产品一体化开发所需的所有必须技术和功能.Altium Designer 在单一设 ...

  2. STM32之W5500网络通信

    STM32之W5500网络通信 一.W5500 二.DHCP 三.modbus 四.实现web服务 参考 一.W5500 Niren_W5500模块是一款基于WIZnet W5500芯片的以太网模块, ...

  3. stm32+W5500+阿里物联网平台

    前提: 非物联网专业出身,网络协议一知半解(就是没学过),最近调试一块stm32+w5500开发板,为了学习知识,实现以个依靠阿里云物联网平台控制开发板上LED开关功能.(2020年4月24日) 1: ...

  4. STM32 W5500以太网通讯

    STM32 W5500以太网通讯 对于内含以太网MAC部分的芯片,可以外部增加以太网PHY芯片和连接器,实现以太网通讯.对于内部没有以太网MAC部分的芯片,通过W5500 SPI转Ethernet芯片 ...

  5. STM32 W5500 OTA功能 - bootloader及app的设计和实现

    通过W5500的网络功能,到文件服务器下载STM32要更新的固件(可执行bin文件),存储到STM32片内FLASH的APP备份区中,以待bootloader拷贝到APP代码执行区,以实现OTA在线升 ...

  6. STM32+W5500以太网模块

    一:w5500以太网模块介绍: W5500 是一款全硬件 TCP/IP 嵌入式以太网控制器,为嵌入式系统提供了更加简易的互联网连接方 案.W5500 集成了 TCP/IP 协议栈,10/100M 以太 ...

  7. STM32F103+W5500网络通信

    STM32F103+W5500网络通信 一.W5500模块 (一)W5500以太网模块介绍 (二)模块排针功能表 二. modbus协议 (一)modbus协议原理 (二)Modbus 通讯方式 1. ...

  8. STM32 W5500 HTTP Server 微型web服务实现

    嵌入式Web服务很常见,比如电脑通过WIFI接入网络,在浏览器地址栏输入 "192.168.1.1",或者其他地址,跟自己电脑的IP在同一个网段内,一般IP最后一段是1即可,可以打 ...

  9. STM32+W5500实现以太网通信

    STM32系列32位微控制器基于Arm® Cortex®-M处理器,旨在为MCU用户提供新的开发自由度.它包括一系列产品,集高性能.实时功能.数字信号处理.低功耗/低电压操作.连接性等特性于一身,同时 ...

  10. stm32 w5500以太网模块使用

    写完标题发现好像也没什么可写的. 主要是硬件的东西从来没这么顺利过,总结一下 1.买了之后送的文档,挺详细的,即便如此接线没有说 3.3v 和gnd要接.他们可能认为这是常识猪都知道, 但确实有人不知 ...

最新文章

  1. Centos 7 docker 拉取镜像慢
  2. php中的echo、print,print_r、var_dump
  3. Whoops, looks like something went wrong.
  4. 脉冲神经网络原理及应用pdf_CNN卷积神经网络原理讲解+图片识别应用(附源码)...
  5. 设计图案之间关系的代码实现
  6. 【图像分割】基于matlab GAC水平集方法图像分割【含Matlab源码 389期】
  7. Python定时任务框架APScheduler详解
  8. 使用PowerDesigner创建JAVA类图
  9. STP-16-根防护,BPDU防护和BPDU过滤
  10. 一张图了解华为云服务
  11. 头条视频30万次播放有多少收益,今日头条一个视频收益持续多久
  12. 五子棋游戏(JavaScript+JQuery+Canvas)
  13. mysql分组取最新
  14. Windows如何查询软件使用的端口号?树莓派怎么查询怎么杀掉进程?
  15. 操作系统实验报告 实验1 VMware虚拟机配置与linux基本命令(答案全)
  16. Python之线程的同步互斥与死锁
  17. 聚划算说没钱补贴,用户都笑了
  18. HCNP RoutingSwitching之RSTP保护
  19. JAVA 砸金蛋抽奖的简单实现
  20. android工具am的用法,Android中AM、PM、dumpsys命令使用总结

热门文章

  1. 易语言窗口c_句柄取进程名,通过进程名取窗口句柄
  2. Jensen不等式初步理解及证明
  3. java编译器eclipse_java编译器eclipse
  4. PHP-Smarty
  5. python 大智慧365 数据格式_大智慧365导入exp 大智慧自定义数据。
  6. 苹果手机软件升级密码_微软:将向安卓和苹果iOS平台推出杀毒软件Defender
  7. 鸟哥私房菜linux就该这么学-学习记录
  8. SQL Server 2017安装错误:Polybase要求安装Oracle JRE 7更新51或更高版本的两种解决方法
  9. 笔画输入法6.8豪华版 破解版
  10. 【开发日常】手动安装fastboot驱动(开发板连不上minitool)