godzhwei 2010年08月19日
请问这是哪种算法的CRC16检验??
48 42 08 00 00 40 00 00 CD 07这是我要下发的指令,CD 07是08 00 00 40 00 00这6个字节的CRC16检验。但是我用了多个CRC16检验的函数都算不出CD 07。以下是其中之一:

#include "stdafx.h"

WORD CRC16(unsigned char* pDataIn, int iLenIn)
{
WORD wTemp = 0;
WORD wCRC = 0xffff;

for(int i = 0; i < iLenIn; i++)
{
for(int j = 0; j < 8; j++)
{
wTemp = ((pDataIn[i] << j) & 0x80 ) ^ ((wCRC & 0x8000) >> 8);

wCRC <<= 1;

if(wTemp != 0)
{
wCRC ^= 0x1021;
}
}
}

return wCRC;
}


int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
// TODO: Place code here.
BYTE bCommand[8] = {0x08, 0x00, 0x00,0x40, 0x00, 0x00};

WORD uiCRC;
uiCRC = CRC16(bCommand,6); //CRC16校验
bCommand[6] = uiCRC/0x100;
bCommand[7] = uiCRC%0x100;

return 0;
}


怎样能让bCommand[6]=0xCD,bCommand[7]=0x07呢?
谁能给个能算出我这校验的CRC16函数?谢谢!
...全文
233 点赞 收藏 17
写回复
17 条回复

还没有回复,快来抢沙发~

发动态
发帖子
界面
创建于2007-09-28

7970

社区成员

11.5w+

社区内容

VC/MFC 界面
社区公告
暂无公告