DSP

CRC4的C语言实现代码

2019-07-13 17:40发布

今天,写了一个函数,实现DSP通讯中的CRC4校验 。特征码为0x13。 CRC的原理此处不再赘述,具体的函数实现代码如下: BYTE FormCRC4(BYTE* pData, Uint16 Length)
{  BYTE tempRegs, tempResult;
 BYTE midval;
 Uint16 i, j;  midval = 0x13;
 tempRegs = *pData++;
 tempRegs ^= 0xff;
 i = 0;  while(i < Length)
 {
  for(j = 0; j < 8; j++)
  {
   if (tempRegs & 1)
   {
    tempRegs >>= 1;
    tempRegs ^= midval;
   }
   else
   {
    tempRegs >>= 1;
   }
  }   if (i++ == (Length - 1)) return tempRegs;
  tempResult = *pData++;
  tempRegs ^= tempResult;
 }
 
 return 0; }