STM32+W5500网络通信
目录
- 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网络通信相关推荐
- AD原理图设计、STM32+W5500网络通信
一.Altium Designer (一)简介 Altium Designer 提供了唯一一款统一的应用方案,其综合电子产品一体化开发所需的所有必须技术和功能.Altium Designer 在单一设 ...
- STM32之W5500网络通信
STM32之W5500网络通信 一.W5500 二.DHCP 三.modbus 四.实现web服务 参考 一.W5500 Niren_W5500模块是一款基于WIZnet W5500芯片的以太网模块, ...
- stm32+W5500+阿里物联网平台
前提: 非物联网专业出身,网络协议一知半解(就是没学过),最近调试一块stm32+w5500开发板,为了学习知识,实现以个依靠阿里云物联网平台控制开发板上LED开关功能.(2020年4月24日) 1: ...
- STM32 W5500以太网通讯
STM32 W5500以太网通讯 对于内含以太网MAC部分的芯片,可以外部增加以太网PHY芯片和连接器,实现以太网通讯.对于内部没有以太网MAC部分的芯片,通过W5500 SPI转Ethernet芯片 ...
- STM32 W5500 OTA功能 - bootloader及app的设计和实现
通过W5500的网络功能,到文件服务器下载STM32要更新的固件(可执行bin文件),存储到STM32片内FLASH的APP备份区中,以待bootloader拷贝到APP代码执行区,以实现OTA在线升 ...
- STM32+W5500以太网模块
一:w5500以太网模块介绍: W5500 是一款全硬件 TCP/IP 嵌入式以太网控制器,为嵌入式系统提供了更加简易的互联网连接方 案.W5500 集成了 TCP/IP 协议栈,10/100M 以太 ...
- STM32F103+W5500网络通信
STM32F103+W5500网络通信 一.W5500模块 (一)W5500以太网模块介绍 (二)模块排针功能表 二. modbus协议 (一)modbus协议原理 (二)Modbus 通讯方式 1. ...
- STM32 W5500 HTTP Server 微型web服务实现
嵌入式Web服务很常见,比如电脑通过WIFI接入网络,在浏览器地址栏输入 "192.168.1.1",或者其他地址,跟自己电脑的IP在同一个网段内,一般IP最后一段是1即可,可以打 ...
- STM32+W5500实现以太网通信
STM32系列32位微控制器基于Arm® Cortex®-M处理器,旨在为MCU用户提供新的开发自由度.它包括一系列产品,集高性能.实时功能.数字信号处理.低功耗/低电压操作.连接性等特性于一身,同时 ...
- stm32 w5500以太网模块使用
写完标题发现好像也没什么可写的. 主要是硬件的东西从来没这么顺利过,总结一下 1.买了之后送的文档,挺详细的,即便如此接线没有说 3.3v 和gnd要接.他们可能认为这是常识猪都知道, 但确实有人不知 ...
最新文章
- Centos 7 docker 拉取镜像慢
- php中的echo、print,print_r、var_dump
- Whoops, looks like something went wrong.
- 脉冲神经网络原理及应用pdf_CNN卷积神经网络原理讲解+图片识别应用(附源码)...
- 设计图案之间关系的代码实现
- 【图像分割】基于matlab GAC水平集方法图像分割【含Matlab源码 389期】
- Python定时任务框架APScheduler详解
- 使用PowerDesigner创建JAVA类图
- STP-16-根防护,BPDU防护和BPDU过滤
- 一张图了解华为云服务
- 头条视频30万次播放有多少收益,今日头条一个视频收益持续多久
- 五子棋游戏(JavaScript+JQuery+Canvas)
- mysql分组取最新
- Windows如何查询软件使用的端口号?树莓派怎么查询怎么杀掉进程?
- 操作系统实验报告 实验1 VMware虚拟机配置与linux基本命令(答案全)
- Python之线程的同步互斥与死锁
- 聚划算说没钱补贴,用户都笑了
- HCNP RoutingSwitching之RSTP保护
- JAVA 砸金蛋抽奖的简单实现
- android工具am的用法,Android中AM、PM、dumpsys命令使用总结
热门文章
- 易语言窗口c_句柄取进程名,通过进程名取窗口句柄
- Jensen不等式初步理解及证明
- java编译器eclipse_java编译器eclipse
- PHP-Smarty
- python 大智慧365 数据格式_大智慧365导入exp 大智慧自定义数据。
- 苹果手机软件升级密码_微软:将向安卓和苹果iOS平台推出杀毒软件Defender
- 鸟哥私房菜linux就该这么学-学习记录
- SQL Server 2017安装错误:Polybase要求安装Oracle JRE 7更新51或更高版本的两种解决方法
- 笔画输入法6.8豪华版 破解版
- 【开发日常】手动安装fastboot驱动(开发板连不上minitool)