crctest.c

来自「一种crc的写法已经测试」· C语言 代码 · 共 70 行

C
70
字号
//与富马一致得校验
unsigned short CalcCRC16(unsigned char * pPtr,unsigned int nCount)
{
	unsigned short  wCRC,i;
	wCRC = 0;

	while (nCount > 0)
	{
		nCount--; 
		wCRC = wCRC ^ (unsigned short)(0xFF&*pPtr++);
		for (i=0; i<8; i++)
		{
			if (wCRC & 0x0001)
				wCRC = wCRC >> 1 ^ 0x8408;
			else
				wCRC = wCRC >> 1;
		}
	}
	wCRC = (wCRC<< 8) | ((wCRC >> 8) & 0xFF);
    return wCRC;
}

//ok 
int main(void)
{

 	unsigned char beforecrc[20];    unsigned char  aftercrc[20];   // Cmd[0]=0x7E;   unsigned int len;
   unsigned short crc;
   int i;
   crc=0;       len=10; 						beforecrc[0]=1;
						beforecrc[1]=1;
						beforecrc[2]=1;						beforecrc[3]=1;						beforecrc[4]=0;						beforecrc[5]=0;						beforecrc[6]=0x21;						
						beforecrc[7]=0;//if success set 0; or set not 0;						
						beforecrc[8]=0;
						beforecrc[9]=0;    printf("test the function of crc :: \n");    printf("Befor crc:: \n");	
      if(len>0)    {        for(i=0;i<len;i++)        printf("*%2X*",beforecrc[i]);    }
    
    crc=CalcCRC16(beforecrc,len);
    beforecrc[11]=crc%256;
    beforecrc[10]=crc/256;
    
    
    printf("After crc:: \n");	
    len=len+2;
      if(len>0)    {        for(i=0;i<len;i++)        printf("*%2X*",beforecrc[i]);    }
    
    return 1;
}

⌨️ 快捷键说明

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