目录
- 一、W5500介绍
- 二、资源分享
- 三、例子程序
- 四、实现应用层modbus、httpd协议编程
-
- 五、总结
- 六、参考链接
- 七、modbus和HTTPS源码
一、W5500介绍
W5500 芯片是一款集成全硬件 TCP/IP 协议栈的嵌入式以太网控制器,同时也是一颗工业级以太网控制芯片。 是韩国WIZnet(微知纳特)发布全硬件TCP/IP协议栈以太网接口芯片。
W5500 支持高速标准4线SPI接口与主机进行通信,该 SPI 速率理论上可以达到 80MHz。其内部还集成了以太网数据链路层(MAC)和10BaseT/100BaseTX 以太网物理层(PHY),支持自动协商(10/100-Based全双工/半双工)、掉电模式和网络唤醒功能。与传统软件协议栈不同,W5500内嵌的8个独立硬件 Socket 可以进行8路独立通信,该8路Socket的通信效率互不影响,可以通过 W5500 片上32K 字节的收/发缓存灵活定义各个Socket的大小。
二、资源分享
1.链接:https://pan.baidu.com/s/1DzLA2Vp_Qwon9VWQdQ6g5Q
提取码:mvwi
2.文件内容
![在这里插入图片描述](https://img-blog.csdnimg.cn/1ce22846542e4fa8a1439118885d1634.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5q275aaW6Zi_,size_20,color_FFFFFF,t_70,g_se,x_16)
需要安装调试软件,可以按照教程去做例子!
三、例子程序
1.STM32与W5500接线方法
PA15->W5500_RST(源程序使用的是PC5,这里没有该引脚修改为PA15)
PC4->W5500_INT(使用寄存器查询方式的例程时,此引脚可以不接,其他例程可能涉及修改引脚)
PA4->W5500_SCS
PA5->W5500_SCK
PA6->W5500_MISO
PA7->W5500_MOSI
具体例程的调试过程请参考压缩包中NiRen_W5500模块用户手册(用Adobe Reader打开).pdf文件。
2.这里我调试了查询寄存器方式中的客户端模式例程,调试结果如下:
![在这里插入图片描述](https://img-blog.csdnimg.cn/bc9466a8cd3745de973934bd37604fec.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5q275aaW6Zi_,size_20,color_FFFFFF,t_70,g_se,x_16)
四、实现应用层modbus、httpd协议编程
(一)modbus
main函数:
![在这里插入图片描述](https://img-blog.csdnimg.cn/f4642f2b76e4475e890d8666d1d8423d.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5q275aaW6Zi_,size_20,color_FFFFFF,t_70,g_se,x_16)
在main函数中有w5500的配置函数 W5500_Configuration() ,在配置函数中可以修改自己的IP地址及网关信息等
(二)HTTPS
main函数
![在这里插入图片描述](https://img-blog.csdnimg.cn/fc2eb919d5314ef085eb4bc2054ad946.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5q275aaW6Zi_,size_20,color_FFFFFF,t_70,g_se,x_16)
GPIO初始化
void GPIO_Configuration(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA |RCC_APB2Periph_GPIOB |RCC_APB2Periph_GPIOC|RCC_APB2Periph_AFIO , ENABLE);
GPIO_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_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);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_SetBits(GPIOB, GPIO_Pin_7);
}
W5500配置
void WIZ_SPI_Init(void)
{
SPI_InitTypeDef SPI_InitStructure;
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_SPI2, ENABLE);
RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB |RCC_APB2Periph_AFIO , ENABLE);
// Port B output
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;
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_12);
/* Configure SPIy pins: SCK, MISO and MOSI */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13| GPIO_Pin_14| GPIO_Pin_15;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIOB, &GPIO_InitStructure);
/* SPI Config -------------------------------------------------------------*/
SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex;
SPI_InitStructure.SPI_Mode = SPI_Mode_Master;
SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b;
SPI_InitStructure.SPI_CPOL = SPI_CPOL_Low;
SPI_InitStructure.SPI_CPHA = SPI_CPHA_1Edge;
SPI_InitStructure.SPI_NSS = SPI_NSS_Soft;
SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_4;
SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;
SPI_InitStructure.SPI_CRCPolynomial = 7;
SPI_Init(SPI2, &SPI_InitStructure);
SPI_Cmd(SPI2, ENABLE);
}
五、总结
学习了W5500网络模块的特点,实现了完成TCP数据通信,了解了应用层modbus、httpd(web服务)协议编程
六、参考链接
https://blog.csdn.net/qq_45659777/article/details/121952778
七、modbus和HTTPS源码
modbus:链接:https://pan.baidu.com/s/10VrYkhB0dTRqNc83EKRzag
提取码:r3pe
https:链接:https://pan.baidu.com/s/1-M5QIznHG9nnXtyigtBiDA
提取码:jf6u
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)