crc.c

来自「AVR16源代码 ICC编译器」· C语言 代码 · 共 38 行

C
38
字号
#include	<iom16v.h>
#include	"Crc.h"

//============================================================
//函	数:unsigned short CRC16(unsigned char *Message, int Len)
//功	能:CRC16计算
//入口参数:Message 要进行CRC16计算字符串,Len字符串长度  
//返 回 值:CRC16计算结果  
//设 计 者:覃道堂 
//创作时间:2004-03-30
//修改时间:
//修改目的:
//============================================================
unsigned int  BlockCRC16UsingAlgorithm(unsigned char *Block, unsigned int Len)
{
   unsigned int CRC;
   unsigned int uiCharShifted;
   unsigned int i;
   unsigned char v;

   CRC = 0;
   for (i=0; i<Len; i++)
     {
     uiCharShifted = ((unsigned int)(Block[i]) & 0x00FF) << 8;
     CRC = (CRC) ^ uiCharShifted;
     for (v = 0; v < 8; ++v)
       {
       if ( CRC & 0x8000 )
         CRC = (CRC << 1) ^ 0x1021;
       else
         CRC = CRC << 1;
       }
     CRC = CRC & 0xFFFF;
     }
     // ByteCRC16UsingAlgorithm(CRC, Block[i]);
   return CRC;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?