⚡ 剃须刀嵌入式实战
30章 · 调试与优化
📘 友好色系
01
嵌入式系统概述
硬件架构
软件分层
开发环境
主控MCU、电机驱动、电池管理、传感器 · 驱动/中间件/应用层 · IDE/编译器/调试器
02
电机控制基础
BLDC
PWM调速
六步换向
FOC
直流无刷电机原理 · PWM调速 · 六步换向控制 · 磁场定向控制简介
03
PWM驱动调试
频率占空比
死区时间
堵转保护
PWM频率与占空比设置 · 死区配置 · 启动电流抑制 · 堵转保护逻辑
04
ADC采样与滤波
电池检测
电流采样
NTC
滑动平均
电池电压/电机电流/NTC温度 · 滑动平均滤波与中值滤波实现
05
霍尔传感器调试
信号采集
换向时序
故障检测
霍尔信号采集解析 · 换向校准 · 开路/短路检测 · 软件去抖
06
转速闭环控制
PID
速度环
积分饱和
档位切换
PID原理 · 速度环整定 · 积分饱和抑制 · 变速档位平滑处理
07
电池管理
锂电池
库仑计
低电量保护
充放电管理 · 电量计算法 · 低电量保护与提示 · 充电状态机
08
功耗优化
睡眠模式
时钟门控
动态调频
唤醒源配置 · 外设时钟门控 · 动态频率调整 · 待机电流<10µA
09
触摸按键调试
电容触摸
自容/互容
防水误触
电容触摸原理 · 自容/互容检测 · 灵敏度校准 · 防水处理
10
LED指示与显示
呼吸灯
电量指示
故障码
LED呼吸灯 · 电量指示灯逻辑 · 故障码显示 · 低功耗驱动
11
通信接口调试
UART
I2C
SPI Flash
UART日志输出 · I2C外设调试 · SPI Flash读写验证
12
Bootloader设计
固件升级
Flash分区
CRC
A/B升级
升级流程 · Flash分区 · CRC校验 · 双备份启动
13
RTOS应用
任务划分
消息队列
信号量
任务优先级 · 队列/信号量 · 中断同步 · 栈深度优化
14
中断管理
优先级
嵌套抢占
临界区
中断优先级配置 · 嵌套与抢占 · 临界区保护 · 延迟优化
15
定时器应用
基本定时
PWM
输入捕获
输出比较
调度 · PWM生成 · 输入捕获测速 · 输出比较精确延时
16
看门狗与系统安全
IWDG
WWDG
死机恢复
独立看门狗 · 窗口看门狗 · 自动恢复机制
17
故障诊断与日志
HardFault
日志分级
环形缓冲
异常捕获 · INFO/WARN/ERROR · 环形缓冲区 · 日志导出
18
性能分析工具
DWT
CPU负载
调用栈
内存统计
代码执行时间测量 · CPU负载率 · 函数调用栈 · 内存使用
19
代码优化技巧
循环展开
查表法
内联
编译选项
循环展开 · 查表替代计算 · 内联函数 · -O0~-Os优化
20
内存优化
RAM布局
常量Flash
动态内存
栈溢出
RAM布局优化 · 常量放Flash · 避免碎片 · 栈溢出检测
21
电机噪声与振动优化
PWM调优
换向补偿
陷波滤波
PWM频率调优 · 换向力矩补偿 · 机械共振规避 · 软件陷波
22
防水与可靠性设计
IPX7
防短路
抗干扰
高低温
IPX7要求 · 软件防短路 · 潮湿抗干扰 · 高低温测试策略
23
生产测试与校准
产线测试
电机校准
霍尔校准
自动测试流程 · KV值/电阻校准 · 霍尔偏差校准 · 触摸标定
24
OTA升级实现
BLE
分包传输
断点续传
回滚
蓝牙通信协议 · 固件分包 · 断点续传 · 升级失败回滚
25
BLE调试
广播连接
MTU
服务特征值
功耗
广播与连接参数 · MTU大小 · 服务设计 · 功耗优化
26
多档位与模式切换
状态机
轻柔/正常/强劲
模式记忆
档位状态机 · 模式记忆 · 切换防抖
27
安全保护机制
过流
过温
欠压
堵转
过压
过流/过温/欠压/堵转/充电过压保护
28
用户交互体验优化
按键响应
振动反馈
APP同步
语音提示
按键延迟优化 · 振动反馈 · APP状态同步 · 语音集成
29
系统联调与压力测试
稳定性
边界条件
异常恢复
EMC
长时间运行 · 低电量/高温边界 · 异常恢复 · EMC应对
30
项目实战总结
问题复盘
调试经验
代码规范
CI流程
电机异响/死机/续航短复盘 · 调试总结 · 版本管理 · CI建议