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

    文章

    9096

    浏览量

    85307
  • STM32
    +关注

    关注

    2270

    文章

    10890

    浏览量

    355630
  • TFT
    TFT
    +关注

    关注

    10

    文章

    385

    浏览量

    111043
  • TCP
    TCP
    +关注

    关注

    8

    文章

    1353

    浏览量

    79051
  • STM32F4
    +关注

    关注

    3

    文章

    194

    浏览量

    28043

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

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

收藏 人收藏

    评论

    相关推荐

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

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

    Nat server技术原理和配置过程

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

    请问TCP server如何做到在AP侦听?

    我现在的ESP8266是AP和STA共存模式,我按照sdk及sample中的示例建了一个TCP server,我的原意是这个TCP serer要在AP侦听的,但是我发现它却是STA接
    发表于 07-12 12:51

    请问esp8266 rtos sdk能否同时启动tcp socke clent和udp server

    我在用的是V1.5的rtos 的sdk,想在esp8266同时启动tcp的socket client和udp的socket server。 但是我发现,只要我一启动upd server
    发表于 07-12 07:07

    STM32F407作USB host驱动声卡,USB就会出错的原因?

    我用STM32F407 作USB host,配置为FS。用它接声卡。如果STM32F407 单向给 声卡传送音频,输出声音正常。或者 407单向接收声卡的音频,工作也正常。但是同时发送和接收声音(即
    发表于 07-04 06:56

    请问stm32f407不带外围高速usb芯片是否可以实现高速usb?

    我看到一般的都带一个usb3300 利用ulpi来实现高速usb~~~ 但是stm32f407的pb14 和pb15都是OTG_HS_DP OTG_HS_DM~~~ 请问stm32f407 不带外围高速usb芯片是否可以实现高速usb??
    发表于 05-15 07:58

    STM32F407怎么去接收、发送数据?

    USB设备是这样的,请问我用STM32F407怎么去接收、发送数据,这个设备是一个3G模块,谢谢。
    发表于 05-09 06:41

    STM32F407以太网突然延时变高导致死机的原因?怎么解决?

    MCU芯片采用STM32F407,以太网芯片采用DP83848,STM32F407作为服务端,PC作为客户端访问,跑的modbus协议,该开始通讯时,一切正常,PING延时也是<1ms
    发表于 04-28 06:37

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

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

    STM32F407 ADC采样IO口无法实现钳位的原因?

    最近做一个项目,STM32F407 ADC采样。STM32F407电源电压和参考电压是都是2.5V(两个独立电源),因为设计需要(换挡采样,测试小量程,调大增益),采样电压可能会超出2.5V
    发表于 04-10 08:19

    如何在STM32F407移植lwip?

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

    STM32F407+PCM5102APWR+SD卡内播放wav或mp3音乐如何实现?

    STM32F407+PCM5102APWR+SD卡内播放wav或mp3音乐如何实现? 实现STM32F407与PCM5102APWR和SD卡的音乐播放涉及到多个步骤,包括硬件连接和软件编程。 首先
    的头像 发表于 01-16 17:11 2655次阅读

    stm32f407 double类型

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

    stm32f407 LAN8720A速率调整

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

    stm32f407浮点运算速度

    STM32F407 是 STMicroelectronics 公司推出的一款基于 ARM Cortex-M4 内核的微控制器。它具有较强的处理能力和丰富的外设资源,在嵌入式系统中得到广泛应用。该芯片
    的头像 发表于 01-04 10:58 3337次阅读