笔记:STM32 CubeMX LL库 CRC

本文介绍使用STM32进行CRC校验计算的方法,包括CubeMX配置、CRC计算函数实现及实验数据验证过程。通过软件与硬件相结合的方式,详细展示了CRC校验的实际应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 环境

keil、STM32L051C8T6、STM32 CubeMX、LL库

2. CubeMX配置

保持默认即可。
保持默认参数即可

3. 实践

3.1 CRC计算函数

代码参考【https://mlog.club/article/3454164】

uint32_t My_CRC(uint32_t *buffer, uint8_t buffer_legnth){
  uint8_t i;
  uint32_t temp = 0;
  LL_CRC_ResetCRCCalculationUnit(CRC);
  for (i = 0; i < buffer_legnth; i++) {
    LL_CRC_FeedData32(CRC,buffer[i]);
  }
  temp = (LL_CRC_ReadData32(CRC));
  printf("CRC : %X \r\n", temp);
  return temp;
}

3.2 实验用数据(STM32)

实验用数据参考【《嵌入式-STM32开发指南》第二部分 基础篇 - 第13章 CRC(HAL库)】

#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
};

3.3 函数调用

My_CRC(DataBuffer,BUFFER_SIZE);

3.4 硬件实际输出

在这里插入图片描述

3.5 网页计算对比

在线计算CRC,测试用数据,可直接复制:

0000102120423063408450a560c670e79129a14ab16bc18cd1ade1cef1ef12313273225252b5429472f762d693398318a35ad3bdc39cf3ffe3de24623443042064e674c744a45485a56ab54b85289509f5cfc5acd58d365326721611063076d7569546b4b75ba77a97198738f7dfe7fec7bc48c458e5688678a7084018612802c9ccd9ede98ef9af89489969a90ab92b4ad47ab76a961a710a503a332a12dbfdfbbfeb9e9b798b58bb3bab1a6ca67c875cc52c223c030c601c41edaefd8fcdecad2abd0b8d689d497e976eb65ed54ef42e321e510e70ff9fefbedfddcffcbf1b9f598f78918881a9b1caa1ebd10cc12de16f108000a130c220e350044025704683b99398a3fbb3dac33dd31ce37ff35e129022f332d24235521462777256b5ea95a88589f56ee54fd52cc50d34e224c304817466644754244405a7dbb7fa8799e75ff77ec71dd73c26d336f2069116b0767646155634d94cc96df90ee92f99c8b98aa9ab584448657806682718c008e128a3cb7ddb5ceb3ffb1e8bf99bd8abbb4a755a546a377a160af11ad02ab33a92ed0fdd6ccd4dbdaaad8b9de88dc97c265c644c453ca22c831ce00cc1ef1fff3edf7caf9bbfba8fd99ff86e177e364e552e933eb20ed11ef0

参数选择:
在这里插入图片描述
网页结果展示:相同
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值