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

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

3天内不再提示

STM32F407板子上搭建TCP Server及TFTP Server

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

扫码添加小助手

加入工程师交流群

开发平台

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也能

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

    关注

    14

    文章

    10496

    浏览量

    91976
  • STM32
    +关注

    关注

    2315

    文章

    11223

    浏览量

    375718
  • TFT
    TFT
    +关注

    关注

    10

    文章

    417

    浏览量

    115171
  • TCP
    TCP
    +关注

    关注

    8

    文章

    1441

    浏览量

    84037
  • STM32F4
    +关注

    关注

    3

    文章

    204

    浏览量

    30439

原文标题:基于STM32F407搭建TCP服务器及TFTP服务器

文章出处:【微信号:STM32_STM8_MCU,微信公众号:STM32单片机】欢迎添加关注!文章转载请注明出处。

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    RTL9301管理型交换机DHCP Server使用方法

    RTL9301管理型交换机DHCP Server使用方法
    的头像 发表于 02-01 10:52 1649次阅读
    RTL9301管理型交换机DHCP <b class='flag-5'>Server</b>使用方法

    使用NVIDIA Nemotron RAG和Microsoft SQL Server 2025构建高性能AI应用

    在 Microsoft Ignite 2025 大会上,随着 Microsoft SQL Server 2025 的发布,AI 就绪型企业数据库愿景成为现实,为开发者提供强大的新工具,例如内置向量
    的头像 发表于 12-01 09:31 1247次阅读
    使用NVIDIA Nemotron RAG和Microsoft SQL <b class='flag-5'>Server</b> 2025构建高性能AI应用

    STM32F407的晶振选型分析

    STM32F407的最佳晶振选项
    的头像 发表于 11-07 12:03 2252次阅读

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

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

    与AI探讨简易示波器和频谱仪

    对于追求性价比和足够性能的入门到中级项目,STM32F407 是完全足够且更具成本效益的选择。
    的头像 发表于 10-18 15:35 1117次阅读

    rtt5.0.0下lvgl在正点原子stm32f407探索者开发板V3mdk编译报错怎么解决?

    开发板为正点原子stm32f407探索者V3,在rtt5.0.0版本下加入lvgl及相应的lcd, touch驱动,其它什么功能也没加,在mdk中编译,报错: Program Size: Code
    发表于 09-22 06:17

    在rt-thread4.0.2版本stm32f407硬件平台上,使用reboot命令无法重启,会让系统死机的原因?

    我在rt-thread4.0.2版本stm32f407硬件平台上,使用reboot命令无法重启,会让系统死机。 reboot命令默认是调用rt_hw_cpu_reset()
    发表于 09-12 06:08

    【教程】使用STM32F4进行E22-400T22S编程通信教程

    通过本文带大家零基础使用STM32F407VET6单片机进行E22-400T22S模块编程并进行简单的通信,当然如果学会了,也可以举一反三应用于E22、E220、E32所有模块。一、STM32环境
    的头像 发表于 08-28 19:32 2715次阅读
    【教程】使用<b class='flag-5'>STM32F</b>4进行E22-400T22S编程通信教程

    STM32F407VGT6的完美国产替代——中科芯CKS32F407VGT6在智能电力网关的应用

    风险。如今,这一局面正被打破,STM32F407VGT6的完美国产替代——中科芯CKS32F407VGT6在智能电力网关的应用,为这一领域带来了新的曙光,开启了国产芯片在
    的头像 发表于 08-25 16:16 1556次阅读
    <b class='flag-5'>STM32F407</b>VGT6的完美国产替代——中科芯CKS32<b class='flag-5'>F407</b>VGT6在智能电力网关的应用

    【HZ-RK3568开发板免费体验】--TCP通讯

    本篇实现客户端(client)与服务端(server)数据通讯收发功能。 一.TCP通讯流程 服务端和客户端程序均可在评估板、PC 机 Ubuntu 系统运行。本章节采用评估板本地回环测试,即
    发表于 08-24 18:34

    第三十章 W55MH32 HTTP_Server&amp;NetBIOS示例

    本文讲解了如何在 W55MH32 芯片实现 HTTP_Server 与 NetBIOS 功能,并通过 NetBIOS 访问 HTTP 服务器网页内容,通过实战例程展示了在主循环中并行处理 HTTP 与 NetBIOS 相关事务的过程。
    的头像 发表于 07-24 16:21 2056次阅读
    第三十章 W55MH32 HTTP_<b class='flag-5'>Server</b>&amp;NetBIOS示例

    第九章 W55MH32 HTTP Server示例

    本文介绍了在 W55MH32 芯片实现 HTTP Server 功能,并通过浏览器修改其网络地址信息的方法。阐述了 HTTP 协议的概念、特点、应用场景、工作流程、请求方法、响应内容,以及 Web 页面构成和交互方式。展示了在W55MH32
    的头像 发表于 07-24 09:35 1571次阅读
    第九章 W55MH32 HTTP <b class='flag-5'>Server</b>示例

    STM32F407的IO去驱动5V的外部拉电阻,请问VDD_FT的电压范围是多少?

    目前想用STM32F407的IO去驱动5V的外部拉电阻,看手册5V容忍的VDD_FT且有保护二极管。 请问VDD_FT的电压范围是多少? 开漏输出时,PA8口的拉电阻能否输出5V? 谢谢!
    发表于 07-10 06:03

    WICED中使能TCP保活后无法disconnected怎么解决?

    开发环境 WICED,最新版本的SDK 芯片:CYW43907、使用freertos+lwip开发 描述:使用wiced_tcp_server_start开启TCP服务器,然后注册了连接和断开的回调
    发表于 07-08 06:57

    数据库数据恢复—SQL Server数据库被加密如何恢复数据?

    SQL Server数据库故障: SQL Server数据库被加密,无法使用。 数据库MDF、LDF、log日志文件名字被篡改。
    的头像 发表于 06-25 13:54 953次阅读
    数据库数据恢复—SQL <b class='flag-5'>Server</b>数据库被加密如何恢复数据?