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

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

    关注

    13

    文章

    9880

    浏览量

    88533
  • STM32
    +关注

    关注

    2298

    文章

    11040

    浏览量

    366958
  • TFT
    TFT
    +关注

    关注

    10

    文章

    400

    浏览量

    112925
  • TCP
    TCP
    +关注

    关注

    8

    文章

    1410

    浏览量

    81664
  • STM32F4
    +关注

    关注

    3

    文章

    203

    浏览量

    29199

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

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

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

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

    stm32F407平台使用freertos,使用pvPortMalloc申请内存,发现内存中的数据总被修改,怎么解决?

    如题,我现在在stm32F407平台打开FREERTOS,然后使用pvPortMalloc动态申请内存的时候,发现这块内存中的数据总是变化,后面改为malloc申请,内存中的数据就符合预期了,我已经按照网上的流程配置了freertos,不知道是什么原因导致这种现象?
    发表于 03-07 09:03

    stm32f407这个STM32_RCC_PERIPHCLK_SDMMC是哪里定义的?

    stm32f407这个STM32_RCC_PERIPHCLK_SDMMC 是哪里定义的 函数调用这个会报错 Error[Pe020]: identifier \"
    发表于 03-07 07:34

    STM32F407的高速USB,采用的是虚拟串口方式,VCP驱动有linux系统的吗?

    STM32F407使用高速USB的Device模式,使用的是虚拟串口VCP方式,网站上有Window7和Window8的驱动,是否也有linux系统下的驱动?
    发表于 03-07 06:42

    Modbus TCP Server程序开发与Yocto系统构建

    解压后,源码为“modbus_server_tcp.c”,它模拟一个Modbus TCP传感器。源码的讲解请参考《11.7 Modbus TCP编程与实验》。
    的头像 发表于 02-14 13:38 ?1118次阅读
    Modbus <b class='flag-5'>TCP</b> <b class='flag-5'>Server</b>程序开发与Yocto系统构建

    求一份在STM32F407的CS1239的驱动程序

    求一份STM32F407的CS1239的驱动程序,目前没有调试通,读不到数据,邮箱:298487317@qq.com谢谢?
    发表于 02-10 16:52

    STM32F407输出的2片ADC的转换值与输入ADC的电压值相同了,不知道是何原因?

    采用STM32F407 控制2片ADS125550sps速率进行ADC采样,使用外部基准,单元电后偶然会出现STM32F407 输出的2片ADC的转换值,较输入ADC的电压值大20%的现象,测量
    发表于 01-22 08:15

    dbForge Studio For SQL Server:用于有效开发的最佳SQL Server集成开发环境

    dbForge Studio For SQL Server:用于有效开发的最佳SQL Server集成开发环境 SQL编码助手 SQL代码分析 查询分析器 可视化查询生成器 数据和模式比较 源代码
    的头像 发表于 01-16 10:36 ?835次阅读

    STM32F405xx和STM32F407xx微控制器数据手册

    电子发烧友网站提供《STM32F405xx和STM32F407xx微控制器数据手册.pdf》资料免费下载
    发表于 01-03 14:49 ?2次下载

    使用STM32F407的硬件SPI接口去读取ADS8694的18位ad数据怎样才能读取出来?

    使用STM32F407的硬件SPI接口去读取ADS8694的18位ad数据怎样才能读取出来,因为STM32F407的硬件SPI接口只能设置每次读取的数据位是8位或者16位,看了TI的ADS8694芯片手册的SPI时序图发现
    发表于 12-27 06:23

    STM32F407和ADS8684进行SPI通信,寄存器怎么配置?

    通过STM32F407和ADS8684进行SPI通信,阅读了ADS8684的手册,配置STM32F407为主,CPOL为0,CPHA为1,这样对吗? 配置好后应该先设置ADS8684的程序寄存器还是发送命令寄存器后再设置程序寄存器呢?
    发表于 12-20 06:25

    STM32F407 MCU使用SD NAND?不断电初始化失效解决方案

    STM32F407微控制器单元(MCU)与SD NAND的结合提供了强大的存储解决方案。然而,不断电初始化失效问题可能会导致系统稳定性和数据完整性受损。我们将STM32F407与SD NAND集成时可能遇到的初始化问题,并提供专业的解决方案。
    的头像 发表于 12-11 10:51 ?1088次阅读
    <b class='flag-5'>STM32F407</b> MCU使用SD NAND?不断电初始化失效解决方案

    如何基于STM32F407通过SPI控制ADS8361?

    如何基于STM32F407通过SPI控制ADS8361?
    发表于 11-19 08:23

    w5500 作为tcp server,客户端异常发送【RST,ACK】断开连接问题

    测试1 w5500 作为tcp server,上位机labveiw程序作为clinet,正常第二次交互结束后,客户端发送一个【RST,ACK】报文断开了连接; (1)使用wireshark抓取
    发表于 10-14 14:01

    Nat server技术原理和配置过程

    Nat server:指定公有地址:端口和私有地址:端口形成一对一映射关系——映射表。这也是Nat server与其他nat的区别之一,Nat server可以指定端口进行映射。
    的头像 发表于 10-10 14:38 ?1545次阅读
    Nat <b class='flag-5'>server</b>技术原理和配置过程