⚡ 万用表·状态机实战
30章 · 从入门到项目
📘 嵌入式固件架构
01
万用表项目概述
项目背景、功能需求、硬件选型 (STM32+ADS1115)、开发环境搭建
↗
02
固件架构设计
分层架构思想、驱动层/中间件层/应用层划分、模块解耦原则
↗
03
状态机基础
有限状态机概念、状态/事件/转移三要素、状态图绘制方法
↗
04
主状态机设计
系统主状态定义 (初始化/测量/设置/校准/休眠)、状态转移条件分析
↗
05
测量状态机
直流电压/交流电压/电阻/电流测量子状态机设计、量程切换逻辑
↗
06
ADC驱动层设计
ADS1115寄存器配置、I2C通信封装、单次/连续转换模式实现
↗
07
数据采集与滤波
过采样技术、滑动平均滤波、中值滤波在万用表中的应用
↗
08
量程自动切换
电压/电阻量程判断算法、硬件增益控制、防抖处理
↗
09
校准状态机
零点校准、满量程校准、校准参数存储与恢复
↗
10
用户交互状态机
按键扫描与消抖、长按/短按/双击识别、菜单导航逻辑
↗
11
显示驱动层
OLED/段码LCD驱动封装、字符与数字显示、菜单界面刷新策略
↗
12
数据管理模块
测量结果格式化、单位转换、数据缓存与历史记录
↗
13
通信协议栈
UART通信封装、Modbus-RTU协议实现、命令解析器设计
↗
14
电源管理状态机
电池电量检测、低功耗模式切换、自动关机逻辑
↗
15
异常处理机制
看门狗集成、错误状态恢复、日志记录策略
↗
16
系统启动流程
硬件初始化顺序、自检状态机、启动动画与提示音
↗
17
中断管理
定时器中断用于ADC采样触发、外部中断用于按键、中断优先级分配
↗
18
任务调度
前后台系统 vs 裸机调度器、时间片轮转实现、任务优先级设计
↗
19
状态机嵌套与并发
子状态机调用、状态机并发执行、事件广播机制
↗
20
代码生成与自动化
状态机代码自动生成工具、UML状态图转C代码实践
↗
21
单元测试与仿真
状态机测试框架搭建、模拟输入测试、覆盖率分析
↗
22
固件升级
Bootloader设计、固件签名与校验、OTA升级流程
↗
23
性能优化
ADC采样率优化、中断延迟控制、内存使用分析
↗
24
安全与可靠性
输入保护电路配合、过压/过流检测状态机、故障安全模式
↗
25
多语言支持
字符串表设计、语言切换状态机、字体资源管理
↗
26
波形显示功能
实时波形采集、屏幕刷新率控制、触发模式状态机
↗
27
数据记录仪模式
定时记录、触发记录、SD卡存储与文件系统
↗
28
蓝牙扩展模块
HC-05/BLE模块驱动、AT指令解析、数据透传状态机
↗
29
生产测试模式
工厂校准流程、功能自检、序列号写入
↗
30
项目总结与展望
架构复盘、常见问题汇总、开源社区资源推荐
↗