0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

在STM32F407板子上搭建TCP服务器及TFTP服务器

STM32单片机 来源:互联网 作者:佚名 2017-09-25 18:05 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

掉落的枫叶像老工程师的笔记经验我打开夜灯照亮岁末的秋天晚霞掠过天边北风掠过工作台的桌面我把努力融进了落叶想换来熟悉的那些肯定的笑颜

开发平台

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接口引脚如下图,

  1. 配置时钟外部高速晶振选择为8M,PLL SORCE MUX 选择为HSE,在HCLK处输入168点回车,软件会自动配置好

  2. 中间件配置这里主要配置,ETH、LWIP、串口1、GPIO

  3. 生成工程代码

    点左上角的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也能

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • STM32
    +关注

    关注

    2313

    文章

    11195

    浏览量

    374630
  • TFT
    TFT
    +关注

    关注

    10

    文章

    416

    浏览量

    114962
  • TCP
    TCP
    +关注

    关注

    8

    文章

    1433

    浏览量

    83765
  • STM32F4
    +关注

    关注

    3

    文章

    204

    浏览量

    30304
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    网络授时服务器 ntp时间服务器品牌 校时服务器厂家#电工

    服务器
    jf_47371611
    发布于 :2026年02月11日 17:53:43

    时钟服务器厂商 gps网络校时服务器 卫星时钟服务器#电工

    服务器
    jf_47371611
    发布于 :2026年02月11日 17:50:52

    零基础如何用云服务器搭建网站?完整教程

    准备(域名与服务器)、系统与环境配置、网站部署、上线后的安全与性能优化、以及日常运维。每个步骤都配合实用操作建议,便于一步步完成搭建工作。遇到疑难环节时,恒讯科技可以服务器选型、网络
    的头像 发表于 01-29 16:18 583次阅读

    普通服务器电源与AI服务器电源的区别(

    引言服务器是数据中心的核心设备,其稳定运行依赖可靠的电源供应。随着AI技术的飞速发展,AI服务器大量涌现,与普通服务器应用场景等方面存在显著差异,这也使得两者的电源存在诸多不同。本研
    的头像 发表于 01-12 09:31 1410次阅读
    普通<b class='flag-5'>服务器</b>电源与AI<b class='flag-5'>服务器</b>电源的区别(<b class='flag-5'>上</b>)

    飞凌嵌入式ElfBoard-常用的网络服务搭建TFTP服务搭建

    File Transfer Protocol,简单文件传输协议),是TCP/IP协议族中用来客户机和服务器之间进行简单文件传输的协议,开销很小。TFTP通常用于内核调试。
    发表于 10-21 11:29

    服务器数据恢复—服务器的卷被误删数据如何恢复?

    工作人员不慎将一台服务器的卷误删除,服务器上有一组raid5阵列。需要恢复误删除的数据。
    的头像 发表于 08-14 11:33 1111次阅读
    <b class='flag-5'>服务器</b>数据恢复—<b class='flag-5'>服务器</b><b class='flag-5'>上</b>的卷被误删数据如何恢复?

    怎样阿里ECS服务器架设自己的OpenVPN服务器

    需要自己架设服务器,让现场的IR615路由连接自己的服务器。能通过自己的服务器进行数据采集和远程运维。
    发表于 08-06 06:56

    恒讯科技分析:云储存服务器搭建教程

    搭建云存储服务器是一个相对复杂但极具实用性的项目,以下是一个简化的搭建教程,帮助你快速入门。 一、明确需求 搭建云存储
    的头像 发表于 07-07 11:07 1466次阅读

    欧洲服务器免费ip地址怎么获取?#欧洲服务器 #免费IP地址 #服务器

    服务器
    jf_57681485
    发布于 :2025年06月13日 11:15:04

    DNS服务器无法访问?2分钟快速排查与解决!#DNS服务器 #DNS #服务器

    服务器
    jf_57681485
    发布于 :2025年06月10日 14:55:34

    直播云服务器对带宽有什么要求?#直播云服务器 #直播 #带宽

    服务器
    jf_57681485
    发布于 :2025年05月30日 11:54:24