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

📄 drv_crc.c

📁 motorola mpc系列 mpc852cpu bsp
💻 C
字号:
#include "Typedef.h"
#include "Drv_Crc.h"
_U16      CrcTable[256];

void InitCrcTable( void )
{
    /*  CRC-CCITT 16 基于多项式 x^16+x^12+x^5+1,参考值 0x1021  */
    #define CRC16_POLY              0x1021

    _U16    i, j;
    _U16    usValue;

    for( i = 0; i < 256; i++ )
    {
        usValue = (_U16)(i << 8);
        
        for( j = 0; j < 8; j++ )
        {
            if( ( usValue & 0x8000 ) != 0 )
            {
                usValue = (_U16)( usValue << 1 ) ^ CRC16_POLY;
            }
            else
            {
                usValue <<= 1;
            }
        }
        
        CrcTable[i] = usValue;
    }

    return;
}
_U16 CalcCrc( _U8 *DataStartAddr, _U32 DataLen )
{
    _U16    usCrc = 0;
    /* CRC计算*/
    while( DataLen-- != 0 )
    {
        usCrc = (_U16)( usCrc << 8 ) ^ CrcTable[ (_U16)( usCrc >> 8 ) ^ *DataStartAddr++ ];
    }

    return usCrc;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -