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.

[参考译文] TM4C1290NCPDT:driverlib 中的 CRC16 CCITT。

Guru**** 2466550 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/669084/tm4c1290ncpdt-crc16-ccitt-in-the-driverlib

器件型号:TM4C1290NCPDT

您好!  

我必须实现 crc16-CCITT、如  http://srecord.sourceforge.net/crc16-ccitt.html#results 中所述 

这表示对于文本字符串"1234546789"、我应该得到"0xEC55"、这也是我的规范的预期值。  

尽管网页中的代码起作用、但我认为最好使用 driverlib 中的 CRC。  

这里是我的代码  

uint32_t URES=0;
char ZTEST []="123456789";
MAP_CRCConfigSet (CCM0_BASE、
CRC_CFG_INIT_SEED |
CRC_CFG_TYPE_P1021 |
CRC_CFG_SIZE _8位);
CRCSeedSet (CCM0_BASE、0xFFFF);
URES = CRCDataProcess (CCM0_BASE、ZTEST、9、false); 

因此、我得到0x29B1、 这被称为链路中的"错误 CRC 计算"、它说"在实施"bad_crc"的问题中、它不会像计算标准 CRC 时所要求的那样(隐式或显式)增加16位的零长度消息。  因此、它报告    一个长度为零的消息的 CRC 为0xFFFF -而不是0x1D0F "

欢迎您提出任何关于如何适应以获得预期结果的想法。  

此致

Micky

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Michael、
    您是否尝试使用 CRCSeedSet (CCM0_BASE、0x1D0F)?您得到了什么?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    啊、你是对的。 我不是很明白在这里该怎么做。
    感谢您的提示。