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.

[参考译文] MSP430F5659:CRC-16的 Driverlib 示例给出了错误的结果?

Guru**** 2511985 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1122464/msp430f5659-driverlib-example-for-crc-16-gives-wrong-result

器件型号:MSP430F5659

当我运行 driverlib 示例 crc_ex1_buildSignature.c 时、使用以下 代码返回的结果为0xA1A3。  这与使用相同多项式0x1021的任何在线 CRC 校验不匹配。  这些网站的结果是 :0x2378。  我在这里错过了什么?

  uint16_t crcSeed = 0x0000;

  uint16_t DATA[]={0x0001、0x0002、0x0003、0x0004、0x0005、0x0006、0x0007、0x0008、0x0009};\\

  //设置 CRC 种子

  CRC_setSeed (CRC_BASE、

    CrcSeed);

  对于(I = 0;I < 9;I++)

  

    //将所有值添加到 CRC 签名中

    CRC_set16BitData (CRC_BASE、

      数据[i]);

  

  //保存当前 CRC 签名校验和以供以后比较

  crcResult = crc_getResult (crc_BASE);

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    CRC 是逐位的、因此位顺序很重要、可能会导致与结果的混淆。 我看到、库具有用于为输入位和/或结果设置反向位顺序的函数。 尝试不同的组合、您应该点击一个匹配的组合。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢。  我无法使用 CRC_set16BitDataReversed()使其正常工作,即使我看到寄存器已将字节反转。  例如、使用像0x0009这样的单字节将与在线计算器不对应。  当我使用  CRC_set16BitDataReversed 函数时、它仍然无法使用 etither CRC_getResult ()或 CRC_getResultBitsReversed。  但是,如果我最初是自己混响字节; 而使用0x9000,则 CRC_getResult()将产生正确的结果。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢。  我无法使用 CRC_set16BitDataReversed()使其正常工作,即使我看到寄存器已将字节反转。  例如、使用像0x0009这样的单字节将与在线计算器不对应。  当我使用  CRC_set16BitDataReversed 函数时、它仍然无法使用 etither CRC_getResult ()或 CRC_getResultBitsReversed。  但是,如果我最初是自己混响字节; 而使用0x9000,则 CRC_getResult()将产生正确的结果。

     

    后续操作: 我发现了错误。  如果使用8位数字、请使用8位函数、如  CRC_set8BitDataReversed()。  上述16位函数将0x0009反向为0x0900、这会引起所有麻烦。  让人感觉完美!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    问题似乎已解决。 我将关闭该线程。  

    此致、

    现金 Hao