5
Home
super_agent_bot edited this page 2026-11-02 04:17:10 +08:00
STM32F4-Base 百科
工业级嵌入式 DTU 平台固件 · STM32F407ZGTx @ 168 MHz · FreeRTOS V10.3.1(CMSIS-RTOS2)
本页最后整理: 2026-11-01。内容以仓库
master分支的源码、AGENTS.md与docs/为准; 如与代码冲突, 以代码和docs/为准。
这是什么
STM32F4-Base 是一套面向工业现场的嵌入式平台固件, 也是一块可复用的产品底座。它把网络、存储、时间、UI、日志、看门狗、FTP 与配置这些平台能力做成稳定的公共层; 具体产品(保护测控、馈线自动化终端等)在此之上补齐采集、保护与规约。
当前工程同时是一条已闭环的采集与保护最小主线:
flowchart LR
subgraph FRONT["采集前端"]
T["TPAFE5160<br/>8 路电气量"] --> TIM["TIM3<br/>1 kHz 节拍"]
A["STM32 ADC1<br/>9 路 DMA"] --> TIM
end
TIM --> TASK["adcTask<br/>每拍消费"]
TASK --> L1["语义取数与有效性"]
L1 --> L2["全周傅氏相量"]
L2 --> F["测频与遥测快照"]
L2 --> L3["保护判据"]
L3 --> P["protectTask<br/>20 ms"]
P --> I["IEC 60870-5-104<br/>TCP 2404"]
上图回答“代码分成哪几层、谁依赖谁”; 下文的文字只是补充, 不替代图。
一句话现状
| 能力 | 状态 |
|---|---|
| 平台能力: 网络 / 存储 / 时间 / UI / 日志 / 看门狗 / FTP / 配置 | ✅ 已实现并台架验收 |
| 采集主线: 采集处理 → 相量/测频 → 保护判据 → protectTask → IEC 104 | ✅ 已闭环; ⚠ 保护判据当前未标定闭锁, 待两点标定后解锁 |
| RS-485 对下采集(ModBus RTU) | ⬜ 未接线; 按用户决定冻结(2026-10-12) |
| V0.1 硬件 8 路电气量分属两片转换器 | ⚠ 已知硬件缺陷, V0.2 修复前禁止跨转换器做相位/功率运算 |
当前最大的功能缺口不是“已有功能有 bug”, 而是 RS-485 采集尚未接线。平台本身可以独立部署, 现场使用前请先读已知陷阱与测试与调试。
快速事实
| 项目 | 值 |
|---|---|
| 主控 | STM32F407ZGTx, Cortex-M4F, LQFP144 |
| 主频 | 168 MHz(HSE 8 MHz → PLL M=4 / N=168 / P=2) |
| 存储 | 1 MB Flash / 192 KB SRAM(128 KB 主 SRAM + 64 KB CCM) |
| RTOS | FreeRTOS V10.3.1, CMSIS-RTOS2; HAL 时基 TIM7, tick = 1 ms |
| 工具链 | Keil MDK-ARM v5(ARMCC v5, C99); 不支持 armclang |
| 外部存储 | GD5F2GQ5UE SPI NAND, 256 MB(2 Gbit) |
| 网络 | CH395F 10/100M 以太网, SPI2; 单 TCP 连接模型 |
| UI | LVGL 160x160 单色(1bpp), MCU 无屏, TCP 7003 远程推流 |
| 构建 / 测试 | @build = Keil 编译; @test = 串口采集 → 烧录 → 日志校验 |
百科导航
| 页面 | 内容 |
|---|---|
| 快速开始 | 环境准备、编译、烧录、上电测试、串口与模拟器 |
| 项目架构 | 分层、9 个任务、就绪屏障、启动时序、数据流、目录地图 |
| 硬件平台 | V0.1 引脚、外设、存储与硬件约束 |
| 采集与算法 | ADC 采样链、采集/相量/保护处理、保护任务、IEC 104、RS-485 现状 |
| 存储子系统 | NAND → dhara FTL → FatFs、配置文件、日志与存储陷阱 |
| 网络子系统 | CH395F、BSD Socket、FTP/对时/远程显示/104、网络配置 |
| UI子系统 | LVGL、菜单树、内容页、字体、PC 模拟器、远程显示协议 |
| 开发指南 | 编码铁律、构建门禁、新增文件、内存预算、CubeMX 规则 |
| 测试与调试 | 各类测试、@build/@test、串口助手、ST-LINK、CI |
| 已知陷阱 | 高频踩坑速查: 编码、RTOS、FatFs、ADC、网络、烧录 |
| 术语表 | DTU / FTL / BBT / IWDG / 104 / RemoDispBus 等 |
| 文档地图 | 仓库文档全量入口与按角色阅读顺序 |
| 维护指南 | 如何编辑、发布和校验本百科 |
推荐阅读路径
- 第一次接触: 本页 → 快速开始 → 项目架构 → 硬件平台
- 应用/驱动开发: 项目架构 → 存储子系统 / 网络子系统 / 采集与算法 → 已知陷阱 → 开发指南
- 测试/验证: 快速开始 → 测试与调试 → 已知陷阱
- UI 开发: UI子系统 → 测试与调试 → 开发指南
- 接手/评审: 项目架构 → 文档地图 → 仓库
docs/README.md
仓库入口
- 代码仓库: http://gitea.bitnasdaq.vip/wandering1/STM32F4-Base
- 开发规范:
AGENTS.md(仓库根, AI 与开发者第一入口) - 人类文档索引:
docs/README.md - 部署要求:
docs/环境与部署/项目部署环境要求.md - 产品需求基线:
docs/产品需求/产品需求设计文档.md
STM32F4-Base 百科
入门
子系统
开发与验证
参考
仓库
STM32F4-Base 百科 · 基于仓库 master 分支整理 · 最后更新: 2026-11-01
内容以源码、AGENTS.md 与 docs/ 为准; 发现页面过期, 请在 维护指南 中按流程更新。