标题:请教达人,关于末尾的CRC16校验问题。
只看楼主
vens777
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2011-12-1
 问题点数:0 回复次数:0 
请教达人,关于末尾的CRC16校验问题。
这段代码只校验数据部分,不包含起始、校验、结束标志。
但是不知道这样的算法行不行啊? 请教啦~~

CRC16校验算法如下:
/* ::---------------------------------------------------------------------
:: FN: CreateCRC; CRC in ANSI - C
:: Synopsis: static void CreateCRC(BYTE *CommData,WORD uLen)
:: Function: formation of the CRC16[code] checksum.
------------------------------------------------------------------------*/
static WORD CreateCRC(unsigned char *CommData, unsigned int uLen )
{
unsigned short uCrc16;
unsigned char abData[2];
uCrc16 = 0;
abData[0] = 0;
while (uLen-- )
{
abData[1] = abData[0];
abData[0] = *CommData++;
if(uCrc16 & 0x8000)
{
uCrc16 = (uCrc16 & 0x7fff) << 1;
uCrc16 ^= CRC16_GEN_POL;
}
else
{
uCrc16 <<= 1;
}
uCrc16 ^= MKSHORT (abData[0] , abData[1]);
}
return(uCrc16);
}
搜索更多相关主题的帖子: 算法 void 
2011-12-01 09:08



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-356666-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.079081 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved