是一共项目涉及到BLE传输数据以及Flash存储数据的场景,被存储或传输的数据是一个结构体,需要对其做CRC效验.

效验的方式利用了CRC计算时在被计算的数据后方补上CRC结果,并对这个数据+结果作为一个整体再次做CRC会导致的CRC的结果为0的特性来实现的.

CRC的实现代码参考:记录一个自己用CRC效验的场景(分段计算)

示例代码:

int main()
{
    unsigned char test[8]={0xff,0xff,0xff,0xff,0xff,0x12,0x26,0xbe};
    printf("soft_crc32_1:%x\r\n",soft_crc32(test,4,0xFFFF));
    printf("soft_crc32_2:%x\r\n",soft_crc32(test,8,0xFFFF));
    return(0);
}

运行结果: