CRC16 校验码程序
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
//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 );
}