📄 crc16one.c
字号:
/*********************************************************************
*文件名:crc16one.c
*功能: 计算CRC16循环冗余校验程序,所用方法为计算法 。
**********************************************************************/
#include <reg51.h> //单片机头文件
#include <ctype.h>
#include <string.h>
#include <absacc.h>
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <Intrins.h>
#include <Stdarg.h>
#define uchar unsigned char //简化定义
#define uint unsigned int
void timedelay(uint timess); //函数说明
void delay1(uint x);
uint crc16(uchar *str,uint num);
uint data arc,crc1; //变量定义
uchar data rbut[8];
uint crc16(uchar *str,uint num) //CRC计算子程序
{
uint i,j,c,crc;
crc=0xffff;
for (i=0;i<num;i++)
{ c=str[i]&0x00ff;
crc^=c;
for (j=0;j<8;j++)
{
if (crc&0x0001)
{
crc>>=1;
crc^=0xa001;
}
else
crc>>=1;
}
}
return(crc);
}
void main() //主程序
{
//初始化
SP =0xcf; //堆栈初始化
rbut[0]=0x01; //数据初始化
rbut[1]=0x02;
rbut[2]=0x03;
rbut[3]=0x04;
rbut[4]=0x05;
rbut[5]=0x06;
rbut[6]=0x07;
rbut[7]=0x08;
crc1=crc16(rbut,8); //调用CRC计算子程序,
while(1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -