| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 311 人关注过本帖
标题:请教达人,关于末尾的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
快速回复:请教达人,关于末尾的CRC16校验问题。
数据加载中...
 
   



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

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