我使用编码器,在这里我得到0到24位,其中0到5位是CRC位。有人能帮助我理解如何计算这6位的CRC码吗?
发布于 2022-03-14 21:14:17
如果没有一个例子,我无法确定,但这将按描述计算CRC,假设触发器的初始值为零。
unsigned crc6biss(uint32_t data, unsigned bits) {
while (bits--)
data = data & 0x80000000 ? (data << 1) ^ 0x0c000000 : data << 1;
return ~data >> 26;
}
在这里,data
是您的数据位,但非常重要的是,在32位字中移动,以便最重要的数据位是最重要的data
位。bits
是要处理的位数。所以数据位是位32-bits
.31
of data
。剩下的位是零。在返回值的最不重要的六位中返回6位CRC .
从您的文档中,bits
将是18、19或21。
https://stackoverflow.com/questions/71462986
复制相似问题