📄 nodecrc.c
字号:
//This project is intended to verify the CRC function in Node.
//Somehow, the result is not right.
#include "stdafx.h"
#define U8 unsigned char
#define U16 unsigned short int
U16 ProtocolComputeCrc(U8 *Buffer, U8 Length, U8 Seed);
int main(int argc, char* argv[])
{
U16 Result;
//unsigned char Buffer[15] = {77,8,0xff,0xff,0xff,0xff,0xdd,0xdd,0xff,0xff,0xff,0xff,0xff,0xff,0xdd};
unsigned char Buffer[15] = {1,1,0,0,0,0,0,0,0,0,0,0,0,0,0};
Result = ProtocolComputeCrc(Buffer, 15, 0);
return 0;
}
U16 ProtocolComputeCrc(U8 *Buffer, U8 Length, U8 Seed)
{
U8 Data;
U8 Count = 0;
// Load the CRC with an initial value.
U16 Crc = (U8)Seed;
// loop through all bytes in the buffer
while (Count < Length)
{
Data = Buffer[Count];
// Update the CRC for transmitted and received data using
// the CCITT 16-bit CRC algorithm (X^16 + X^12 + X^5 + 1).
// The next 5 lines take 143 bytes
Crc = (U8)(Crc >> 8) | (Crc << 8);
Crc ^= Data;
Crc ^= (U8)(Crc & 0xff) >> 4;
Crc ^= (Crc << 8) << 4;
Crc ^= ((Crc & 0xff) << 4) << 1;
Count++;
}
return Crc;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -