发布于 1 天前
摘要
TIM4 只有一个 ARR,四个通道共享同一频率。运行位图、start_group 同步启动、手动通道关闭避坑、二次挂轴不重置软起步——来自 1121 行步进驱动的真实工程经验。
TIM4 只有一个 ARR,四个通道共享同一频率。运行位图、start_group 同步启动、手动通道关闭避坑、二次挂轴不重置软起步——来自 1121 行步进驱动的真实工程经验。
参数描述表驱动读写、CRC 校验 EEPROM 完整性、写操作不自动保存防寿命耗尽、HMIS 协议动态参数发现。
V1.1 废弃 DGUS 5A A5,改为 HMI Session Protocol。SEQ 序号匹配、能力位图、参数目录动态发现、日志事件独立推送。
硬件映射表、错误码枚举映射、DMA+回调通知、纯格式化+回调分发、直接寄存器——BSP 层 10 个驱动的五种模式。
从状态机引擎内部视角看 psh_task_once 完整执行流、sm_* 子流程注册模式、事件系统解耦、子阶段枚举、状态切换全链路。
三层隔离:GPIO bit-bang 时序、AT24C02 芯片协议、统一接口。展示了 BSP 层设计的四个核心原则。
同一个 STM32 项目同时支持 GCC ARM 和 LLVM/Clang。GCC 日常开发,LLVM 发布优化。两个工具链文件不到 70 行。
任务通知比信号量快约 40%。项目中 xTaskNotifyGive 承担了状态推送、ISR 唤醒、UART 驱动三种不同模式。
来自一个 STM32+FreeRTOS 工业控制项目的真实复盘。中断快照、协议回复时机、残余 done、隐式斩杀、超时错觉……每一个都踩过。
一个 18 状态的嵌入式状态机如果全部塞在一个 switch-case 里,一个文件 900 行。回调注册表模式让每个状态独立文件、三回调驱动,新增状态零侵入。