您的位置:首页 > 房产 > 建筑 > 莆田网站建设费用_东莞网站建设报价方案_厦门网站建设公司哪家好_营销活动策划

莆田网站建设费用_东莞网站建设报价方案_厦门网站建设公司哪家好_营销活动策划

2025/5/9 16:37:22 来源:https://blog.csdn.net/13011803189/article/details/147308761  浏览:    关键词:莆田网站建设费用_东莞网站建设报价方案_厦门网站建设公司哪家好_营销活动策划
莆田网站建设费用_东莞网站建设报价方案_厦门网站建设公司哪家好_营销活动策划

本文是《嵌入式开发–STM32软件和硬件CRC的使用》的续篇,又踩到一个坑,发出来让大家避一下坑。

按照G0系列的设置,得出错误的结果

前文对应的是STM32G0系列,今天在用STM32G4系列时,按照前文的设置,用硬件CRC计算得出的结果不对,
在这里插入图片描述
待计算的字符串为
在这里插入图片描述
正确的结果应该是 0x9118E1C2
但我计算出来的结果不正确,如下图,
在这里插入图片描述

G4系列正确的设置

搭配目前最新的CubeMX 6.14和G4 支持包1.6.1,设置如下:
在这里插入图片描述
生成后的代码:

void MX_CRC_Init(void)
{/* USER CODE BEGIN CRC_Init 0 *//* USER CODE END CRC_Init 0 *//* USER CODE BEGIN CRC_Init 1 *//* USER CODE END CRC_Init 1 */hcrc.Instance = CRC;hcrc.Init.DefaultPolynomialUse = DEFAULT_POLYNOMIAL_ENABLE;hcrc.Init.DefaultInitValueUse = DEFAULT_INIT_VALUE_DISABLE;hcrc.Init.InitValue = 0xffffffff;hcrc.Init.InputDataInversionMode = CRC_INPUTDATA_INVERSION_WORD;hcrc.Init.OutputDataInversionMode = CRC_OUTPUTDATA_INVERSION_ENABLE;hcrc.InputDataFormat = CRC_INPUTDATA_FORMAT_WORDS;if (HAL_CRC_Init(&hcrc) != HAL_OK){Error_Handler();}/* USER CODE BEGIN CRC_Init 2 *//* USER CODE END CRC_Init 2 */
}

以下是验证图片
在这里插入图片描述

在这里插入图片描述

注意事项

硬件CRC计算时,输出结果需要取反,才能与主流CRC32的计算结果一致。
验证网站:http://www.ip33.com/crc.html

sys_cnt1 = ~HAL_CRC_Calculate(&hcrc,(u32*)g_text_buf, 2);

大坑

我的工程是以前验证过OK的,今天把工程调出来用就出错了。
区别就是以前的工程用的CubeMX版本是6.10.0,G4系列的支持包版本是1.5.1
最近将CubeMX升级到了6.14,G4系列的支持包版本也升级到了1.6.1
计算结果竟然不一致,大家千万要注意啊。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com