你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

不同的 STM32 CPU 算:硬件 CRC:为何 输出不同的数值 ?

[复制链接]
caosix_cq 提问时间:2021-6-29 13:57 / 未解决
【一模一样】 的 一组 原始数据 、一样的 CubeMX 和 编译环境,
使用 不同的 STM32 CPU 的 硬件CRC模块 —— 居然算出不同的结果!

#define BUFFER_SIZE    114
static const uint32_t dataBuffer[BUFFER_SIZE] =
{
    0x00001021, 0x20423063, 0x408450a5, 0x60c670e7, 0x9129a14a, 0xb16bc18c,
    0xd1ade1ce, 0xf1ef1231, 0x32732252, 0x52b54294, 0x72f762d6, 0x93398318,
    0xa35ad3bd, 0xc39cf3ff, 0xe3de2462, 0x34430420, 0x64e674c7, 0x44a45485,
    0xa56ab54b, 0x85289509, 0xf5cfc5ac, 0xd58d3653, 0x26721611, 0x063076d7,
    0x569546b4, 0xb75ba77a, 0x97198738, 0xf7dfe7fe, 0xc7bc48c4, 0x58e56886,
    0x78a70840, 0x18612802, 0xc9ccd9ed, 0xe98ef9af, 0x89489969, 0xa90ab92b,
    0x4ad47ab7, 0x6a961a71, 0x0a503a33, 0x2a12dbfd, 0xfbbfeb9e, 0x9b798b58,
    0xbb3bab1a, 0x6ca67c87, 0x5cc52c22, 0x3c030c60, 0x1c41edae, 0xfd8fcdec,
    0xad2abd0b, 0x8d689d49, 0x7e976eb6, 0x5ed54ef4, 0x2e321e51, 0x0e70ff9f,
    0xefbedfdd, 0xcffcbf1b, 0x9f598f78, 0x918881a9, 0xb1caa1eb, 0xd10cc12d,
    0xe16f1080, 0x00a130c2, 0x20e35004, 0x40257046, 0x83b99398, 0xa3fbb3da,
    0xc33dd31c, 0xe37ff35e, 0x129022f3, 0x32d24235, 0x52146277, 0x7256b5ea,
    0x95a88589, 0xf56ee54f, 0xd52cc50d, 0x34e224c3, 0x04817466, 0x64475424,
    0x4405a7db, 0xb7fa8799, 0xe75ff77e, 0xc71dd73c, 0x26d336f2, 0x069116b0,
    0x76764615, 0x5634d94c, 0xc96df90e, 0xe92f99c8, 0xb98aa9ab, 0x58444865,
    0x78066827, 0x18c008e1, 0x28a3cb7d, 0xdb5ceb3f, 0xfb1e8bf9, 0x9bd8abbb,
    0x4a755a54, 0x6a377a16, 0x0af11ad0, 0x2ab33a92, 0xed0fdd6c, 0xcd4dbdaa,
    0xad8b9de8, 0x8dc97c26, 0x5c644c45, 0x3ca22c83, 0x1ce00cc1, 0xef1fff3e,
    0xdf7caf9b, 0xbfba8fd9, 0x9ff86e17, 0x7e364e55, 0x2e933eb2, 0x0ed11ef0
};

___我使用 STM32L011 ___算出来  与 F103 c8t6 就不一样 啊____
CRCValue = HAL_CRC_Calculate(&hcrc,(uint32_t *)dataBuffer,114);


我的结果是 E515927A——怎么会与网页示例 对不上呢?




可是、可是:改用 单片机 STM32F103 C8T6

算出来 就 和 网页 示例 一致了 :输出 0x379E9F06 .




收藏 评论3 发布时间:2021-6-29 13:57

举报

3个回答
butterflyspring 回答时间:2021-6-30 14:29:32
STM32F103系列的CRC外设的多项式是固定的,并且初始值也是固定的。而STM32L0XX相对灵活一些。多项式是可以配置的,而且初始值也是可以编程设置的。建议你检查一下这两项是否是相同的。
caosix_cq 回答时间:2021-6-30 15:22:59
butterflyspring  _ 谢谢 你的 回复 。。可是 HAL 库 说明书 里面

没看见 什么 地方 去设置 L011 的 CRC运算 初始数值 啊 ???
butterflyspring 回答时间:2021-7-1 16:06:47
caosix_cq 发表于 2021-6-30 15:22
butterflyspring  _ 谢谢 你的 回复 。。可是 HAL 库 说明书 里面

没看见 什么 地方 去设置 L011 的 CRC ...

在初始值里有的,请参考附图
L0CRC initialdata.PNG

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版