首先需要明确CRC8常见的表格数据中是按照线传输LSB,并通过右移寄存器来判断的,因此每次要判断的就是寄存器的最低位LSB。同时要将多项式X^8+X^5+X^4+X^0 (也就是0x131(0011 0001))按位颠倒后得到0x8c(1000 1100),在计算过程 中做异或运算(为什么0x131中第一个1没有被颠倒?答:因为它是隐藏的)。 具体...
uint32_t crc32_compute(const uint32_t initial_value,const uint8_t * data,const uint32_t data_length) { uint32_t crc = initial_value; uint32_t idx; const uint32_t zero = 0U; const uint32_t modulo_256 = 0xffU; const uint32_t byte_shift = 8U; const uint32_t crc32_table[...
以表的下标为0x01 作为⽰例来进⾏计算: ⾸先需要明确CRC8常见的表格数据中是按照线传输LSB,并通过右移寄存器来判断的,因此每次要判断的就是寄存器的最低位LSB。同时要将多项式X^8+X^5+X^4+X^0 (也就是0x131(0011 0001))按位颠倒后得到0x8c(1000 1100),在计算过程 中做异或运算(为什么...