test_c.c

来自「单片机下CRC7校验码生成程序」· C语言 代码 · 共 52 行

C
52
字号
#define uchar unsigned char

uchar crcbuff[]={0x7b,0,0,0,0,0,0};
uchar *ptr;
uchar crc;
uchar crc7(uchar *pp,uchar len);
uchar crc7end(uchar *pp);

void main (void)
{
	ptr=crcbuff;
	crc=crc7(ptr,5);
	*ptr=(crc<<1)|1;
	
	ptr=crcbuff;
	crc=crc7(ptr,5);
	*ptr=crc7end(ptr);
	
	while(1);
}

uchar crc7end(uchar *pp)
{
	uchar i;
	for(i=0x80;i!=1;i>>=1)
		{
			if((crc&0x40)!=0) {crc<<=1;crc^=9;}
			else crc<<=1;
			if((*pp&i)!=0) crc^=9;
		}
	ptr++;
	return(crc);
}

uchar crc7(uchar *pp,uchar len)
{
	uchar i;
	crc=0;	
	while(len--)
	{
		for(i=0x80;i!=0;i>>=1)
		{
			if((crc&0x40)!=0) {crc<<=1;crc^=9;}
			else crc<<=1;
			if((*pp&i)!=0) crc^=9;
		}
		pp++;
	}
	ptr = pp;
	return(crc);
}

⌨️ 快捷键说明

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