本文是《STM32 模块化开发实战指南》的收官篇,将把前 7 篇中积累的所有模块整合为一个“通用 STM32 模板工程”,可直接用于新项目快速起步,并可持续扩展、适配不同平台、用于教学、开源或商用项目搭建。
一、本模板工程设计目标
我们希望构建这样一个工程:
-
✅ 结构清晰、可维护、易上手
-
✅ 支持模块化、状态机、事件队列、RingBuffer 等核心机制
-
✅ 适配裸机 + RTOS / STM32 + PC 测试 / CLI 控制等多场景
-
✅ 具备测试机制、文档规范、构建脚本、平台抽象
-
✅ 可作为 BLE 模块、AT 命令模块、IoT 协议项目基础框架
二、推荐项目结构
stm32-template/
├── inc/ # 所有对外头文件(模块接口)
│ ├── uart.h
│ ├── ring_buffer.h
│ ├── ble_fsm.h
│ ├── platform.h
│ └── ...
├── src/
│ ├── core/ # 启动文件 / system init / clock 配置
│ ├── drivers/ # UART/GPIO/EXTI 等驱动模块
│ ├── middleware/ # 通用组件模块(RingBuffer、事件队列)
│ ├── app/ # 应用逻辑(FSM、AT 命令、BLE 控制)
│ ├── port/ # platform_xxx.c(平台适配层)
│ └── main.c # 主入口(循环、调度、事件处理)
├── tests/ # 单元测试目录
│ ├── test_ring_buffer.c
│ ├── test_ble_fsm.c
│ └── ...
├── build/ # 构建中间产物
├── Makefile # 构建脚本(支持 PLATFORM=p