单片机分层设计 · 从入门到进阶
📚 30章 完整体系
v2.0
01
第1章
分层设计思想入门
什么是分层架构?为什么单片机软件需要分层?核心原则:高内聚、低耦合。
02
第2章
裸机编程的痛点
传统前后台系统缺陷、代码复用性差、可维护性低、模块间耦合严重。
03
第3章
分层架构基础
硬件抽象层(HAL)概念与作用、中间层定位、应用层职责。
04
第4章
硬件抽象层(HAL)设计
GPIO、UART、I2C、SPI外设HAL接口封装,通用HAL API设计。
05
第5章
HAL层实战 · STM32通用GPIO
支持输入、输出、中断、复用功能,编写通用驱动。
06
第6章
中间层设计
协议栈(Modbus/CANopen)、文件系统(FatFS)、RTOS(FreeRTOS)封装与适配。
07
第7章
中间层实战 · 环形缓冲区
封装Ring Buffer用于UART接收,解决数据粘包问题。
08
第8章
应用层设计
业务逻辑与硬件解耦、状态机模式、事件驱动架构。
09
第9章
应用层实战 · 按键状态机
按键消抖与长按/短按检测模块,状态机实现。
10
第10章
接口与抽象
C语言面向对象思想、结构体函数指针多态、接口隔离原则。
11
第11章
接口实战 · 统一传感器驱动
设计通用传感器接口,支持温度、湿度、压力等。
12
第12章
模块化编程
.h/.c职责划分、头文件规范、防止重复包含(#pragma once)。
13
第13章
模块化实战 · BSP统一管理
LED、按键、蜂鸣器独立模块,板级支持包(BSP)封装。
14
第14章
依赖注入
依赖注入概念,单片机实现方式,降低模块耦合技巧。
15
第15章
依赖注入实战 · 回调解耦
通过回调函数实现UART接收模块与业务逻辑解耦。
16
第16章
配置管理
结构体模块配置、默认/用户参数分离、EEPROM/Flash存储。
17
第17章
配置管理实战 · 系统参数模块
参数读取、修改、保存、恢复出厂设置。
18
第18章
错误处理与日志
统一错误码、断言assert、轻量级日志系统(等级过滤)。
19
第19章
错误处理实战 · HAL层容错
I2C通信失败自动重试,错误检测与恢复机制。
20
第20章
单元测试基础
单片机单元测试意义、Ceedling/Unity框架、Mock对象。
21
第21章
单元测试实战 · 环形缓冲区测试
覆盖正常、边界与异常情况的测试用例。
22
第22章
代码复用与移植
跨平台代码设计、条件编译#ifdef、编译器抽象层。
23
第23章
代码复用实战 · HAL移植
STM32 HAL层移植到GD32/AT32,步骤与常见问题。
24
第24章
RTOS与分层
FreeRTOS任务划分、任务间通信(队列/信号量/事件组)与分层结合。
25
第25章
RTOS实战 · 集成FreeRTOS
传感器采集、数据处理、通信分别封装为独立任务。
26
第26章
设计模式在单片机中的应用
观察者模式(事件广播)、命令模式(指令解析)、单例模式(硬件管理器)。
27
第27章
设计模式实战 · 按键事件分发
观察者模式实现多模块监听按键事件。
28
第28章
大型项目架构实战(上)
智能家居网关需求分析、模块划分、接口定义、架构图。
29
第29章
大型项目架构实战(下)
代码实现与调试,工程目录结构、关键代码、运行结果。
30
第30章
总结与进阶
分层设计核心要点、学习资源、未来趋势(MCU微服务)。