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

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

    关注

    12

    文章

    8102

    浏览量

    82485
  • STM32
    +关注

    关注

    2239

    文章

    10669

    浏览量

    348690
  • TFT
    TFT
    +关注

    关注

    10

    文章

    374

    浏览量

    109764
  • TCP
    TCP
    +关注

    关注

    8

    文章

    1269

    浏览量

    78270
  • STM32F4
    +关注

    关注

    3

    文章

    192

    浏览量

    27672

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

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

收藏 人收藏

    评论

    相关推荐

    STM32F407开发板移植了LwIP TCP,在while(1)里或者接收到数据后就什么也发不出来的原因?

    STM32F407开发板移植了LwIP TCP,当我想做客户端的时候,在初始化阶段使用函数tcp_write()就可以发送出来数据,但是,当在while(1)里或者接收到数据之后,
    发表于 04-12 08:13

    如何在STM32F407移植lwip?

    如题,使用rt-thread操作系统,在STM32F407如何移植lwip,下载了最新的rt-thread代码,不知如何入手。 谁能帮帮我吗,或者有没有移植手册发我看看。
    发表于 03-05 08:32

    stm32f407 double类型

    STM32F407是意法半导体(STMicroelectronics)推出的一款ARM Cortex-M4内核的微控制器。它是针对智能电动车领域的实时操作、数字信号处理和高性能应用而设计的。在这
    的头像 发表于 01-07 16:45 1311次阅读

    stm32f407 LAN8720A速率调整

    STM32F407是一款基于ARM Cortex-M4内核的高性能微控制器,而LAN8720A是一款高速以太网PHY芯片。它们的组合可以实现在STM32F407上使用以太网功能。 调整
    的头像 发表于 01-05 13:54 1138次阅读

    请问STM32F429或者STM32F407带的MAC地址是固定唯一的吗?

    请问STM32F429或者STM32F407带的MAC地址是固定唯一的吗?如果不是唯一的,是不是需要自己写入? 自己写入,怎么确保这个MAC地址是唯一的?
    发表于 11-10 06:08

    stm32f407的rj45接口,如何类似于串口一样发送接收数据?

    stm32f407的rj45接口,如何类似于串口一样发送接受数据?
    发表于 10-16 06:49

    智嵌STM32F407开发板(增强型)V1.1原理图

    电子发烧友网站提供《智嵌STM32F407开发板(增强型)V1.1原理图.pdf》资料免费下载
    发表于 09-15 15:24 13次下载
    智嵌<b class='flag-5'>STM32F407</b>开发板(增强型)V1.1原理图

    STM32F407 基本定时器使用

    介绍STM32F407基本定时器的配置方法,分别介绍轮询方式、中断方式使用定时器完成定时。
    的头像 发表于 07-06 14:32 2110次阅读
    <b class='flag-5'>STM32F407</b> 基本定时器使用

    STM32F407 滴答定时器

    介绍STM32F407滴答定时器配置方法、使用方式,封装延时函数得到精确的时间。
    的头像 发表于 07-06 14:32 1223次阅读
    <b class='flag-5'>STM32F407</b> 滴答定时器

    STM32F407 外部中断配置步骤

    介绍STM32F407外部中断配置步骤,以按键为例,实现外部中断配置,使用按键触发中断进行LED灯控制。
    的头像 发表于 07-06 14:31 1024次阅读
    <b class='flag-5'>STM32F407</b> 外部中断配置步骤

    STM32F407 位带配置步骤

    介绍STM32F407位带操作方法,设置寄存器的偏移量,实现按GPIO口指定位进行读写操作,方便编程。
    的头像 发表于 07-06 14:30 689次阅读
    <b class='flag-5'>STM32F407</b> 位带配置步骤

    STM32F407 串口配置步骤

    介绍STM32F407串口配置步骤,完成串口的数据发送与接收、实现中断接收,支持printf重定向。
    的头像 发表于 07-06 14:29 1881次阅读
    <b class='flag-5'>STM32F407</b> 串口配置步骤

    STM32F407 GPIO口输入配置配置步骤

    介绍STM32F407新建寄存器工程流程,介绍输入模式的配置方式,以按键为例完成按键输入检测。
    的头像 发表于 07-06 14:28 1264次阅读
    <b class='flag-5'>STM32F407</b> GPIO口输入配置配置步骤

    STM32F407开发板资料

    STM32F407开发板1.zip,方便你在这个原理图基础上进行修改和定制,提供常用的元器件封装库,节省设计时间
    发表于 07-03 15:08 5次下载

    STM32F407怎么使用两个网口?

    STM32F407怎么使用两个网口?使用一个自带的eth,另外一个用W5500,可行吗?
    发表于 05-12 15:46