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.

TMS320F28374S: 怎么调整VCU的CRC校验函数,使计算得到的CRC码得到MODBUS格式的结果

Part Number: TMS320F28374S

我使用VCU模块的CRC校验功能对SCI通信进行校验,代码如下所示

得到的CRC码与使用CRC计算器和查表法得到的结果一直不同,按照配置的CRC结构体参数使用CRC自定义计算器算出来的结果也和程序跑出来的结果不同

请问我怎么配置才能得到modbus格式的CRC码,怎么才能使用CRC计算器计算出和程序结果一样的CRC码。

    CRC.seedValue    = 0xFFFF;

    CRC.nMsgBytes    = uiLen;    //通信数组长度=uiLen (16bit)

    CRC.parity       = CRC_parity_even;

    CRC.crcResult    = 0;

    CRC.pMsgBuffer   = (UINT16 *)pucFrame;   //pucFrame为通讯数组的地址

    CRC.pCrcTable    = NULL;

    CRC.init         = (void (*)(void *))CRC_init16Bit;

    CRC.run          = (void (*)(void *))CRC_run16BitPoly1Reflected;  

 

    // Step 2: Run the VCU 16-bit CRC routine and save the result

    handleCRC = &CRC;

//    CRC.init(handleCRC);

    CRC.run(handleCRC);

    uiCRC   = CRC.crcResult;

我上面配置的多项式是8005,CRC初值FFFF,输入数据反转,

看了例程不知道结果异或值是0000还是FFFF,用计算机尝试了各种组合也没有得到程序跑出的结果。