请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:MSP430FR5962 您好!
我一直在尝试使用硬件 CRC-32模块、但未能产生预期结果。 我将硬件输出与在线 CRC-32计算器进行比较、这些计算器具有与用户指南中相同的多项式。 我没有找到任何使用32模块而不是16的示例代码。 我还尝试使用反向输入和输出寄存器、但仍然没有获得预期的输出。
//必须为以 null 结尾 的 uint32_t str_CRC32 (const char* str){ uint32_t CRC = 0; //使用 SEED 初始化 CRC32 CRC32INIRESW0 = 0xFFFF; CRC32INIRESW1 = 0xFFFF; //将输入字符串馈入 CRC32输入寄存器 while (* str){ CRC32DIW0 =(uint8_t)*str++; } //从 CRC32输出寄存器获取结果 CRC |= CRC32INIRESW0; CRC <<= 16; CRC |= CRC32INIRESW1; 返回 CRC; }
输入:"AAAAAA"/{0x61、0x61、0x61}
输出:0x125D3369
预期输出: 0xAD98E545
非常感谢您的任何帮助!