⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 nodecrc.c

📁 COBS-consistent overhead byte stuffing
💻 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 + -