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

📄 crc1024.c

📁 频率合成器加数字调制芯片ADF7012的应用 CRC校验C程序 扩展I/O口芯片HC595程序
💻 C
字号:

#include "includess.h"


/* CRC余式表 */

static const unsigned int Crc1021Table[16] = {
0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5, 0x60c6, 0x70e7,
0x8108, 0x9129, 0xa14a, 0xb16b, 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef};


//按生成多项式0X1021进行CRC运算
//输入参数	*Buff	需进行CRC运算的数据
//Len	运算的数据字节个数
//输出参数:
//*h:CRC的高8位
//*l:CRC的低8位


void fCRC1021(unsigned char *Buff, unsigned char Len, unsigned char *h, unsigned char *l)
{
    unsigned int crc;
    unsigned char da;
    crc = 0;
    while((Len--) != 0)
    {
         da = ((unsigned char)(crc / 256)) / 16;          /* 暂存CRC的高四位 */
         crc <<= 4;                                   /* CRC右移4位,相当于取CRC的低12位)*/
         crc ^= Crc1021Table[da ^ ((*Buff) / 16)];        /* CRC的高4位和本字节的前半字节相加后查表计算CRC,
                                                    然后加上上一次CRC的余数 */
         da = ((unsigned char)(crc / 256)) / 16;          /* 暂存CRC的高4位 */
         crc <<= 4;                                   /* CRC右移4位, 相当于CRC的低12位) */
         crc ^= Crc1021Table[da ^ ((*Buff) & 0x0f)];      /* CRC的高4位和本字节的后半字节相加后查表计算 */
         Buff++;
    }
    *h = (unsigned char)(crc >> 8);
    *l = (unsigned char)(crc);
    return;
}
///-----------------------------------------

⌨️ 快捷键说明

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