STM32C5 硬件 CRC 值的计算话题
硬件 CRC 外设广泛用于固件完整性校验、通信帧校验。有开发者遇到一个隐蔽问题:多项式、初始值完全一致,输入原始数据也相同,STM32C5 与 STM32H5 硬件 CRC 输出结果却不一样。 样例测试输入数据0x1234,STM32H5 输出 CRC 结果0xEF,STM32C5 输出0x98。很多工程师反复核对多项式、初始值,始终找不到差异来源。 该差异不是硬件外设 BUG,而是 HAL2 驱动 API 默认行为与 CRC 新增硬件翻转位带来的跨平台兼容陷阱。本文基于 LAT1709 官方文档,还原现象、根因、寄存器配置、CubeMX 操作以及工程落地排错。