打印

STM32内置CRC模块的使用

[复制链接]
楼主: 香水城
手机看帖
扫描二维码
随时随地手机跟帖
81
lanjackg2003| | 2015-7-30 11:26 | 只看该作者 回帖奖励 |倒序浏览
准备用STM32 的CRC32 Mark一下,好好研读.

使用特权

评论回复
82
qq513393302| | 2016-2-13 11:06 | 只看该作者
谢谢城主分享,刚好用上这个。修改成了自己的习惯,测试没有问题
#define  STM32_CRC_DEF   0x04c11db7      //STM32硬件CRC计数等式
u32 RETURN_CRC_DATA(u32 *DATA_BUF, u16 len)
{
u32    xbit = 0 ;                //CRC计算式计算 扫描变量
u32    data = 0 ;                //当前用于CRC的数据缓存
u32    CRC_DATA = 0xFFFFFFFF;    // CRC数据寄存器  返回值
u8     bits = 0 ;                    //位计数变量
while (len--)
{
  xbit = 0x80000000;
  data = *DATA_BUF++;
  for(bits = 0; bits < 32; bits++)
        {
   if(CRC_DATA & 0x80000000)   //CRC计算式计算
         {
    CRC_DATA <<= 1;
    CRC_DATA ^= STM32_CRC_DEF;
   }
   else
         {
          CRC_DATA <<= 1;
         }
                       
   if (data & xbit)   //CRC计算式计算
         {
          CRC_DATA ^= STM32_CRC_DEF;
         }
   xbit >>= 1;
  }
}
return CRC_DATA;
}




使用特权

评论回复
83
hotpower| | 2016-6-21 15:39 | 只看该作者
http://www.21ic.com/tools/HotWC3_V1.22.html

使用特权

评论回复
84
haohaojian| | 2017-5-11 17:22 | 只看该作者
96楼的算法试了,直接放到stm32中和硬计算结果一致,只是在发送数据长度比较长的时候和pc端不一致。不知如何解决这个问题。

使用特权

评论回复
85
Justin^^huang| | 2018-4-19 14:01 | 只看该作者
学习学习

使用特权

评论回复
86
fsmaidou| | 2018-4-20 11:05 | 只看该作者
qq513393302 发表于 2016-2-13 11:06
谢谢城主分享,刚好用上这个。修改成了自己的习惯,测试没有问题
#define  STM32_CRC_DEF   0x04c11db7     ...

你好,我想问一下,len这个参数代表啥,通过你写的代码并不能知道len的初值是是多少

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则