STM32F407开发板(带以太网),板子上的PHY为LAN8720A,没有用到显示屏全为串口输出调试信息。
实现功能
通过STM32CubeMX在原子STM32F407板子上搭建TCP Server 及 TFTP Server ,实现这些功能非常简单。
步骤
功能介绍、工程搭建、工程代码、TFTP 服务器测试
1、TCP Server 实现显示连接上的客户端IP及对客户端发来的数据回传2、TFTP Server 实现IAP功能及读取MCU内部FLASH数据。这里用到的是文件传输协议,主要是参考官方文档UM1709,及官STM324xG_EVAL的LWIP IAP例子。
工程搭建外设配置
打开STM32CubeMX,点NEW PROJECT,在左侧的输入框中输入407ZG,在右侧会显示STM32F407ZGT6的MCU列表,选择此列表,双击。设置时钟源为外部时钟开启SWD调试接口,开启ETH外设,选择RMII接口(LAN8720A为RMII接口),中间件里时能LWIP。使用RMII接口的时候软件会自动配置对应的引脚,但是一定要仔细对比软件配置的引脚是否为板子上硬件所连接的。
原子F407板子上的LAN8720A的RMII接口引脚如下图,
-
配置时钟外部高速晶振选择为8M,PLL SORCE MUX 选择为HSE,在HCLK处输入168点回车,软件会自动配置好
-
中间件配置这里主要配置,ETH、LWIP、串口1、GPIO
-
生成工程代码
点左上角的Project,选择Settings...(不建议直接点黄色的齿轮),点击OK。再点右上方的黄色齿轮即可生成工程代码。
1、TCP Server 的实现
看起来代码很多,其实真的不复杂。
大致流程:先新建一个TCB_PCB、开始监听、挂载客户端连接请求回调函数、挂载接收数据回调函数、挂载发送完成回调函数、挂载出错回调函数、挂载心跳包回调函数、关闭连接等,最重要的是释放内存!每收到一个数据链,它已经被申请了内存,所有在处理完这个数据后一定要释放。
2、TCP服务器测试用网络调试助手连接TCP服务器(两者必须在一个网关里面,192.168.000.XXX),网络调试助手里选择TCP客户端,远程主机IP为 192.168.0.120 , 端口号为7
详细测试步骤请点击阅读原文下载。
通过测试,则表示TCP服务器已经完成。您也可以通过手机连接这个路由器的WIFI,通过 网络调试助手APP来连接这个开发板的服务器,电脑可以通过 TCP客户端与开发板的TCP服务器连接同时也可以用手机做TCP客户端连接开发板的TCP服务器。
3、TFTP Server 的实现还是在上面的代码上来实现此功能,即在TCP 服务器的代码上实现TFTP 服务器。打开刚才STM32CubeMX工程,在原来的基础上来配置LWIP。
因为是要通过TFTP 来实现 IAP 功能 ,所有一定有FLASH 的操作,这里我们COPY官方例子里面的flash_if.c和flash_if.h
至此,TFTP服务器搭建完成,下载到开发板,串口显示如下信息:Start 开始监听 挂载客户端连接回调函数 TFTP初始化成功 Static IP address: 192.168.0.120可以通过上面的TCP服务器测试步骤来测试TCP服务器功能,正常测试,工作正常,ping也能通
-
服务器
+关注
关注
12文章
9096浏览量
85307 -
STM32
+关注
关注
2270文章
10890浏览量
355630 -
TFT
+关注
关注
10文章
385浏览量
111043 -
TCP
+关注
关注
8文章
1353浏览量
79051 -
STM32F4
+关注
关注
3文章
194浏览量
28043
原文标题:基于STM32F407搭建TCP服务器及TFTP服务器
文章出处:【微信号:STM32_STM8_MCU,微信公众号:STM32单片机】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论