笔记:STM32 CubeMX LL库 CRC

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

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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于学习STM32CUBEMX,我可以提供一些学习笔记和建议。首先,了解STM32CUBEMX是什么以及它的作用。STM32CUBEMX是一个图形化的配置工具,用于快速生成STM32微控制器的初始化代码和配置文件。 以下是一些学习STM32CUBEMX的步骤和注意事项: 1. 安装和启动:首先,你需要下载并安装STM32CUBEMX软件。安装完成后,启动软件。 2. 选择芯片型号:在启动界面上,选择你要使用的STM32微控制器型号。如果你不确定选择哪个型号,可以查阅相关的STM32官方文档或参考资料。 3. 配置引脚:在主界面上,你可以看到一个引脚图,它显示了你所选芯片的引脚布局。通过拖拽和连接引脚,你可以配置外设的连接方式。 4. 配置时钟:在时钟配置选项卡中,你可以设置系统时钟和外设时钟。根据你的应用需求,选择合适的时钟源和分频系数。 5. 配置外设:在外设配置选项卡中,你可以启用或禁用各种外设,如UART、SPI、I2C等。你还可以配置它们的参数,例如波特率、数据位数等。 6. 生成代码:完成以上配置后,点击“生成代码”按钮,STM32CUBEMX将为你生成初始化代码和配置文件。你可以选择使用HAL或标准外设,以及选择你喜欢的开发环境。 7. 导入代码:将生成的代码导入到你的开发环境中,并进行编译和烧录。 除了以上步骤,还有一些额外的学习资源可以帮助你更好地理解和使用STM32CUBEMX。例如,你可以查阅官方文档、参考手册、应用笔记和示例代码等。 希望这些学习笔记对你有所帮助!如果你有更多问题,可以随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值