This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
大家好、
我使用 VCU 模块的 CRC 校验功能来验证 SCI 通信、代码如下。
获得的 CRC 代码与使用 CRC 计算器和表查找方法获得的结果始终不同、使用 CRC 自定义计算器根据配置的 CRC 结构参数计算的结果也与程序获得的结果不同。
请告诉我如何配置它以获得 Modbus 格式的 CRC 代码、以及如何使用 CRC 计算器计算与程序结果相同的 CRC 代码?
CRC.seedValue = 0xFFFF;
crc.nMsgBytes = uiLen; //communication array length=uiLen (16位)
crc.parity = crc_parity;
crc.crcResult = 0;
crc.pMsgBuffer =(uint16 *) pucFrame; //pucFrame 是通信数组的地址
crc.pCrcTable =空;
CRC.init =(void (*)(void *)) crc_init16Bit;
CRC.run =(void (*)(void *)) crc_run16BitPoly1Reflected;
//步骤2:运行 VCU 16位 CRC 例程并保存结果
handleCRC =&CRC;
// CRC.init(handleCRC);
CRC.run(handleCRC);
uiCRC = crc.crcResult;
上面配置的多项式 I 为8005、CRC 的初始值为 FFFF、输入数据被反转。
读取例程后、我不确定 结果的 XOR 值是0000还是 FFFF。 我尝试了与计算机的各种组合,但没有获得与程序相同的结果。
VCU 执行 CRC 校验时、结果的 XOR 值(XOROUT)是多少? 如果 我知道该值、 我可能可以使用计算器来计算程序的结果。 是 FFFF 还是0000? 我已经尝试过这两种方法、但看起来并不正确。
此致、
凯瑟琳
凯瑟琳
请参阅此问题、并查看其中提供的解决方案是否可以解决您的问题。
谢谢、
Sira
您好,Sira,
客户表示通过上面的问题找到了问题的原因。 他将 字 数的字节误码 、这样 只验证了一半程序。
此致、
凯瑟琳