NTC 的 10 位 ADC 直接读出来误差能到 5℃。本文把 B 参数法、Steinhart-Hart 三系数法与查表插值都实现一遍,用实测误差告诉你该怎么选。
步进电机一快就堵转、一停就过冲,根因都是「速度突变」。本文实现梯形与 S 曲线两种速度规划器,并把速度曲线真跑出来给你看。
不用 RTOS,也能让「1ms 采样、10ms 控制、100ms 上报、1s 心跳」各自跑各自的。本文给出一套时间轮 + 回调的软定时器,主循环再也不用 delay。
网上抄来的 PID 一上机就震荡、超调、起步无力?本文用「位置式 + 微分先行 + 积分限幅 + 输出限幅」四件套把 PID 补完整,并用一个直流电机仿真模型真跑曲线。
电子秤读数忽上忽下、换一个位置就差了 5 克?问题在标定与数字滤波。本文从 24 位补码解码讲到多点标定与稳定判定,全部在电脑上验证过。
几百行 if/else 和嵌套 switch 堆出来的逻辑,改一个分支就要重新读一遍全文件。把状态机写成「一张表 + 一个引擎」之后,流程变成了数据:可以打印、可以校验、可以自动查出不可达状态和死状态。本文实现一个带超时迁移和层次状态的表驱动引擎,并用投币咖啡机实测。
往 Flash 里存参数最容易踩的坑是「写一半掉电」和「擦写寿命」。本文用日志式记录 + 双 bank 轮换 + CRC16 做一套完整的 KV 存储,并用一个能模拟掉电和位翻转的 Flash 仿真器把每种故障都实测一遍。
没有 FPU 的 MCU 上做控制算法,Q15 定点是标配。但定点数的坑全在细节里:乘法不扩位就是垃圾、(a+b)/2 会溢出、截断和舍入差 1 个 LSB、π 在 Q15 里根本装不下。本文把每一项都用本机实测标出来。
低速时 M 法测速跳得像心电图?问题不在编码器,在方法选错了。本文实现四倍频正交解码 + M/T/M-T 三种测速,用仿真脉冲流跑出误差曲线。
只用加速度计算角度抖得没法看,只用陀螺仪半分钟就漂走。本文给出互补滤波与二阶卡尔曼滤波的完整代码,并量化对比两者的静态/动态误差。