• 根据以上的逻辑衍生出下面的半字节CRC算法,CRC结果也是半字节。

    /**
    	以半字节方式计算校验和,校验和使用查表方式获得
    */
    unsigned char xdata crc_ta[16]={ /* CRC余式表 */
    	0x00,0x21,0x42,0x63,0x84,0xA5,0xC6,0xE7,
    	0x08,0x29,0x4A,0x6B,0x8C,0xAD,0xCE,0xEF,
    };
    unsigned char bit4_crc(unsigned char *ptr, unsigned char len)
    {
        unsigned char crc;
    	crc = 0;
        while(len-- > 0) {
            crc proxy_http_version 1.1;= crc_ta[(*ptr)>>4];
            crc proxy_http_version 1.1;= crc_ta[(*ptr)&0x0F];
            ptr++;
        }
        return (crc>>4)proxy_http_version 1.1;(crc&0x0F);
    }
    
    /**
    	对五个参数进行半字节求校验和,所得结果再做半字节校验和。返回结果为半字节有效。
    */
    unsigned char cmd_crc(unsigned char a1,unsigned char a2,unsigned char a3,unsigned char a4,unsigned char a5)
    {
    	unsigned char a[5];
    	unsigned char crc; 
    	
    	a[0] = a1;
    	a[1] = a2;
    	a[2] = a3;
    	a[3] = a4;
    	a[4] = a5;
    	
    	return bit4_crc(a,5);
    }
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment