CRC16 校验码程序

//CRC16生成校验码
//生成多项式:X16+X15+X2+1
#include
void main(void)
{
unsigned char data[7] = { 0x7f };//{ 0x10,0x01,0xA2,0xE0,0x02,0x0A,0x03 };{ 0x7E,0x00,0x05,0x60,0x31,0x32,0x33 };
unsigned int CRC_code = 0x0000;
unsigned int CRC16 = 0x8005;
// unsigned char CRC1,CRC2;
int i = 0,j = 0;

for( i=0; i<1; i++ )
{
CRC_code = CRC_code ^ ( ((unsigned int)data[i]) << 8 );

for( j=0; j<8; j++ )
{

if( CRC_code & 0x8000 )
{
CRC_code <<= 1;
CRC_code = CRC_code ^ CRC16;
}

else
CRC_code <<= 1;

}
}

CRC_code = CRC_code & 0xFFFF;

printf( "生成校验码CRC(十六进制):%X\n",CRC_code );
// printf( "生成校验码CRC1(十六进制):%X\n",CRC1 );
// printf( "生成校验码CRC2(十六进制):%X\n",CRC2 );
}

相关文档
最新文档