你好。
我已通过示例项目中的VCU2函数计算了测试阵列"0xAF41"的CRC-16。
对于"INIT_CRC16 = 0x0000""Calculated_CRC = 0x1C73",对于"INIT_CRC16 = 0xff",对于"Calculated_CRC = 0x9C7E"。
如果我手动计算此测试阵列的CRC-16,我将获得相同的初始值"0"结果,但对于初始化"0xFFFFFF"("calculated_CRC = 0x1C57",请参见下图)。
如果我想要通过VCU计算的CRC等于手动计算的CRC,我必须在 测试阵列前面设置"init_CRC16 = 0x0000"和实际初始值(0xFFff)写入(在这种情况下,测试阵列将为"0xFFFFFAF41")。 然后 ,"Calculated_CRC = 0x1C57"。
这是否是CRC VCU计算的正常行为? 在调用CRC VCU函数以获得正确结果之前,是否需要在数组前面写入初始值?
我知道在线CRC计算器会产生CRC VCU函数之类的结果,但我无法理解他们为什么会这样做以及我必须做什么。 可能全球惯例是计算CRC?
我的CRC参数:
名称:CRC-16
宽:16
Poly:0x8005
初始化:0xFFFF
参考:错误
RefOut:错误
XorOut:0xFFFF






