
前言8 q7 h U/ S! Q+ F' N STM32F4x7/9xx 和 STM32F2x7xx 微控制器配有高质量 10/100 Mbit/s 以太网外设,支持媒体独立接口 (MII)和缩减的媒体独立接口 (RMII),以便与物理层 (PHY)接口。 当使用以太网通信接口时,会使用 TCP/IP 软件协议栈以实现局域网或者广域网中的通信。2 k8 e# l L$ T2 O; L* L' o4 z7 d 本用户手册说明了怎样使用 STM32CubeF2 和 STM32CubeF4 HAL 驱动程序,将一个免费中间件 TCP/IP 栈分别集成到基于 STM32F2x7xx 和 STM32F4x7/9xx 微控制器的嵌入式应用(请参考第 1 章节以获得 STM32Cube 的详细信息)。该中间件 TCP/IP 栈为 LwIP (轻量级IP),专为嵌入式应用开发的开源协议栈。4 a* ^ v) Y0 T) [- q" f; i 对于每款评估 板,此包都包含了九个运行于 LwIP 栈之上的应用:9 T, ^6 p3 c0 N6 f •基于 Raw API,运行于独立模式 (没有 RTOS)的应用: – Web 服务器 – TFTP 服务器 – TCP 回响客户端应用 – TCP 回响服务器应用 – UDP 回响客户端应用 – UDP 回响服务器应用 •运行于 FreeRTOS 操作系统的应用:4 l; n! Q5 p; f6 H5 L4 n" r –基于 netconn API 的 Web 服务器 –基于 socket API 的 Web 服务器 –基于 netconn API 的 TCP/UDP 回响服务器应用。 注 : 在本文中, STM32Cube™ 指的是 STM32CubeF2 和 STM32CubeF4, STM32F4xx 指的是STM32F4x7xx 和 STM32F4x9xx 微控制器, STM322xx-EVAL 和 STM324xx-EVAL 指的是STM3221x-EVAL、 STM324xG-EVAL 和 STM324x9I-EVAL 评估板。0 R% B3 r8 w/ `' z% k S% l 本文提供的截屏和文件名对应的是运行于 STM32F4 微控制器上的应用样例。然而,它们也适用于 STM32F2x7xx。! E& @" m) J6 u A6 c" f9 o + l" _7 A+ Q1 U$ O* u 1 STM32Cube™ 概述5 _" b+ V9 J( B STM32Cube™ 计划源自意法半导体,旨在通过减少开发的工作量、时间与成本,使开发者受益。 STM32Cube 涵盖 STM32 产品组合。) w5 w+ n' q( a/ ~* e1 {' m% L STM32Cube 1.x 版包括:3 x% {7 ^+ w! d$ \ •图形软件配置工具 STM32CubeMX,可通过图形向导生成初始化 C 代码。- Z$ G) }* ^* j4 K+ g8 Q •针对每个系列提供综合的嵌入式软件平台 (例如 STM32CubeF2 用于 STM32F2 系列,STM32CubeF4 用于 STM32F4 系列)+ ~$ O; L7 R/ D – STM32 抽象层嵌入式软件 STM32Cube HAL,确保在 STM32 各个产品之间实现最大限度的可移植性6 f% G8 K+ X# Z2 g+ Q6 F –一套一致的中间件,比如 RTOS、 USB、 TCP/IP、图形 –所有嵌入式软件实用工具均配备一套完整的示例 - @) y6 P+ O3 {2 M9 g' b" f; z' ?4 C 2 LwIP TCP/IP 栈描述8 U( ^" X0 f& G+ `3 y. l( |! _+ w 2.1栈特性9 R% g. V1 l# F0 ] LwIP 为免费 TCP/IP 栈,由 Adam Dunkels 在瑞典计算机科学院 (SICS)开发,由修正的BSD 许可授权。 LwIP TCP/IP 实现的侧重点为在全面保持 TCP/IP 栈的同时,尽可能的减少 RAM 的使用。这使得 LwIP 特别适合在嵌入式系统中使用。4 V& F9 [, @; q9 F S2 ] LwIP 具有下列协议:5 R6 v7 ^5 c' p7 E* I: n •IPv4 和 IPv6 (网际协议 v4 和 v6)7 ^ |% N. @0 y3 g •ICMP (互联网控制消息协议),用于网络维护和调试6 z# a4 L8 Q) \* a. S •IGMP (互联网组管理协议),用于多播流量的管理 •UDP (用户数据报协议) •TCP (传输控制协议) •DNS (域名服务器)+ y% X. ~# Z4 \. _: L+ r# ~ •SNMP (简单网络管理协议)8 O+ b; H, A; Q7 _; X1 { •DHCP (动态主机配置协议) •PPP (点到点协议)1 l( ^& z# l5 b" ]% ^( j •ARP (地址解析协议) LwIP 具有三种应用编程接口 (API):9 s5 U G) |: p9 F: v: |# c •Raw API 为原始的 LwIP API。它通过事件回调机制进行应用开发。该 API 提供了最好的性能和优化的代码长度,但增加了应用开发的复杂性。 •Netconn API 为高层有序 API,需要实时操作系统 (RTOS)的支持 (提供进程间通讯的方法)。 Netconn API 支持多线程工作。 •BSD Socket API:类似 Berkeley 的套接字 API (开发于 Netconn API 之上)LwIP 栈的源代码可从 http://savannah.nongnu.org 下载。+ w# Q3 a `! `+ f9 | 2.2授权 LwIP 由 BSD 许可证完成。下面是 LwIP 授权文档副本,它也包括在源代码中: /*+ [7 v. w9 {% N+ G7 D; L0 k * 瑞典计算机科学院版权所有 (c) 2001-2004。6 I" v& @4 p9 C4 l) D! T * 保留所有权利。3 @- z7 J8 r0 N8 `+ }9 w * * 若要以源代码或二进制形式对其或使用,不管修改与否,: M% O7 S) M: z6 D/ Z0 a * 都必须满足下述条件: *- l+ U! \. ~4 ?1 J6 k * 1. 对源代码重新发布时必须保留以上版权说明、$ @, V" V9 U# B% C* h * 此条件列表及下述免责声明。LwIP TCP/IP 栈描述 8/44 DocID025731 Rev 1 * 2. 以二进制形式重新发布时必须将以上版权说明、. r. h3 p3 _3 G * 此条件列表及下述免责声明复制到文档0 |6 G8 S+ Z& n; T * 和 / 或其它一同发布的材料中。 * 3. 未经事先书面允许,不可使用作者姓名支持或宣传9 d! q; ^; v1 ^ * 由本软件衍生的产品。 *# \8 c1 s9 G/ U5 p8 M$ m * 此软件由其作者原样提供,不提供任何明示或暗示2 J; m9 R7 E3 Q# e5 A- W * 保证,包括但不限于对' y* M" G6 V! s! [; W# l. N$ X. Z k * 特定用途的适销性和适用性。在任何情况下, * 作者对任何直接、间接、附带、特殊、6 f" A3 e2 A5 z * 惩罚性或后果性损失 (包括但不限于,采购 * 替代商品或服务;使用、数据或利润损失;或业务 * 中断)。在任何赔偿理论下,不管是否存在6 U+ x/ J4 h$ K) E) G$ ~ * 合同、严格责任,或民事侵权 (包括过失或其它),* m* l# r# _3 P2 m$ `& L * 都不能归咎于使用此软件,即使已被告知! S% b J" u$ Q- P) U, J) I * 此类损害的可能性。 * * 此文件为 lwIP TCP/IP 栈的一部分。 * */ : S0 Y4 i5 i; n2 d |
【2025·STM32峰会】GUI解决方案实训分享1-对LVGL咖啡机例程的牛刀小试以及问题排查
OpenBLT移植到STM32F405开发板
为什么要先开启STM32外设时钟?
【STM32MP157】从ST官方例程中分析RPMsg-TTY/SDB核间通信的使用方法
【经验分享】STM32实例-RTC实时时钟实验④-获取RTC时间函数与中断服务函数
STM32 以太网 MAC Loopback 的实现
刘氓兔的64位入门挑战【1】——MP257芯片下单和硬件准备
刘氓兔的64位入门挑战【0】——MP257选型
STM32功能安全设计包,助力产品功能安全认证
基于STM32启动过程startup_xxxx.s文件经验分享