这个应用代码设置W5500为tcp服务器,PC作为tcp客户端来连接W5500,并通过简单的数据收发来验证连接是否成功。
完整源码:
STM32_DMA-W5500.zip
(417.27 KB, 售价: 2 E币)
包含文件目录
============
stm32f10x_conf.h 配置库文件
stm32f10x_it.c 中断头文件
stm32f10x_it.h stm32f10x_it.c的头文件
main.c 主程序
硬件环境
========
这个例程用于野火STM32F103VET6开发板同以太网芯片W5500搭建的应用平台,也可以很方便地
移植到其他平台上。
注意:
首先通过串口线连接PC和W5500模块;如果W5500模块直接通过网线和PC相连接,需要修改PC的IP为静态IP,且保证和W5500在同一个网段;
如果W5500模块直接连接路由器,则不需要修改。
操作步骤
========
1. 成功编译应用程序,然后通过串口烧录工具或者Jlink把程序烧录到开发板中
2. 打开串口工具,复位开发板可以看到W5500的相关配置信息
3. 打开网络调试助手,设置为TCP Client,端口号和服务器IP可以通过串口打印得到;添加信息无误后点击连接建立网络
4. 连接成功后,在网络调试助手端发送数据,可以观察到数据接收情况
部分代码片段:
- /**
- ******************************************************************************
- * @file main.c
- * @author fire
- * @version V1.0
- * @brief 用3.5.0版本库建的工程模板
- ******************************************************************************
- **@attention 内网测试,请保证W5500的IP与测试PC机在同一网段内,且不冲突;
- * @attention 如果是用网线跟PC机直连,请设置PC机本地连接地址IP为静态IP;
- * @attention 网络调试助手打开时的IP地址若是你本地连接地址,请自行设定;
- *
- * 使用本程序,先将w5500_conf.C 文件中的PC_IP,设定为PC机的IP地址,端口号可任意,默认为5000
- *
- ******************************************************************************
- */
- #include <stdio.h>
- #include <string.h>
- #include "stm32f10x.h"
- #include "bsp_spi_flash.h"
- #include "bsp_usart1.h"
- #include "bsp_i2c_ee.h"
- #include "bsp_i2c_gpio.h"
- #include "bsp_led.h"
- #include "bsp_dht11.h"
- #include "w5500.h"
- #include "W5500_conf.h"
- #include "socket.h"
- #include "utility.h"
- /*app函数头文件*/
- #include "tcp_demo.h"
- uint8 buffer[2048];
- int main(void)
- {
- uint16 size=0;
- systick_init(72);/* 初始化Systick工作时钟*/
- NVIC_Configuration();
- USART1_Config(); /*初始化串口通信:115200@8-n-1*/
- i2c_CfgGpio();/*初始化eeprom*/
- LED_GPIO_Config();
-
- printf(" 初始化W5500…… \r\n");
- gpio_for_w5500_config();/* 初始化MCU相关引脚*/
- // SPI_DMA_Config();
- reset_w5500();/*复位W5500*/
- printf(" W5500 Hardware initialized! \r\n");
-
- set_w5500_mac();/*配置W5500MAC地址*/
- if(use_define==1||use_eeprom==1)/*不DHCP获取IP地址,就配置默认IP地址*/
- set_w5500_ip();/*配置W5500IP地址*/
- printf(" 电脑作为TCP客户端连接W5500TCP服务器 \r\n");
- printf(" W5500服务器端口默认为: %d \r\n",W5500_tcp_server_port);
- printf(" 连接成功后,PC机发送数据给W5500,W5500将返回对应数据 \r\n");
- socket_buf_init(txsize, rxsize); /*初始化8个Socket的发送接收缓存大小*/
- printf(" 应用程序执行中……\r\n");
- while(1)//循环执行的函数
- {
- do_tcp_server();/*TCP_Server 数据回环测试程序*/
- }
- }
复制代码
【必读】版权免责声明
1、本主题所有言论和内容纯属会员个人意见,与本论坛立场无关。2、本站对所发内容真实性、客观性、可用性不做任何保证也不负任何责任,网友之间仅出于学习目的进行交流。3、对提供的数字内容不拥有任何权利,其版权归原著者拥有。请勿将该数字内容进行商业交易、转载等行为,该内容只为学习所提供,使用后发生的一切问题与本站无关。 4、本网站不保证本站提供的下载资源的准确性、安全性和完整性;同时本网站也不承担用户因使用这些下载资源对自己和他人造成任何形式的损失或伤害。 5、本网站所有软件和资料均为网友推荐收集整理而来,仅供学习用途使用,请务必下载后两小时内删除,禁止商用。6、如有侵犯你版权的,请及时联系我们(电子邮箱1370723259@qq.com)指出,本站将立即改正。
|