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 );
}
相关主题