⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 crc.c

📁 CRC采用比特型算法
💻 C
字号:
#include <stdlib.h>
#include <stdio.h>
#include <math.h>

#include "gentype.h"


//比特型CRC计算
USINT CrcCheck(UCHAR *ucStarAddr ,UCHAR ucDataLen)		//ucStarAddr为需作crc校验的数组首地址,ucDataLen为crc校验的数据个数
{	
	USINT cRc_16 = ucStarAddr[0]<<8 | ucStarAddr[1];    // 初始化
	USINT i;
	USINT uiTemp;
    
	ucStarAddr += 2;
    while(ucDataLen>0)
    {
        for(i=0x80; i!=0; i >>=1)
		{			
			if(*ucStarAddr&i)
				uiTemp = 1;
			else
				uiTemp = 0;

			if(cRc_16&0x8000)
				cRc_16 = (cRc_16<<1 | uiTemp)^0x1021;					//反转时cRc_16=(cRc_16>>=1)^gEnpoly
			else
				cRc_16 = (cRc_16<<1 | uiTemp);									//反转时cRc_16>>=1
			
		}
		ucDataLen--;
        ucStarAddr++;
    }
    
    return cRc_16; 
}

void main()
{
	USINT CRCResult;
	//USINT i;
	printf("Start Test\n");

	CRCResult = CrcCheck(TestArray,10);
	

	printf("CRC Result = %x\n",CRCResult);

	getchar();
}




⌨️ 快捷键说明

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