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.

[参考译文] CCS/MSP430FR6989:CRC 模块-为什么不#39;t CRCDIRB 寄存器显示写入该模块的编号?

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/947984/ccs-msp430fr6989-crc-module---why-doesn-t-the-crcdirb-register-show-the-number-which-was-written-into-it

器件型号:MSP430FR6989

工具/软件:Code Composer Studio

参考代码示例文件:msp430fr69xx.c

上述代码示例将十六进制数组写入 CRCDIRB (反向字节寄存器中的 CRC 数据)。 通过"Registers"窗口、我将观察写入 CRCDIRB 寄存器的每个数字、但我在寄存器中看到的数字与写入该寄存器的数字不同。 有人能解释一下原因吗?

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

    用户指南(SLAU367P)表15-3显示"读取寄存器返回寄存器 CRCDDI"内容。 我希望这意味着您可以看到位反转的结果。  

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

    Ya……我也看到了这一点,但这不是发生的事情。

    这就是我看到的。 代码示例有一个16个数字的数组、从顺序将 0x0fc0、 0x1096和 0x5042写入 CRCDIRB 寄存器开始。 但是、CRCDIRB 寄存器和同时出现在 CRCDI 寄存   器中的值(通过"Registers"窗口可以看到)分别为0xF003、0x0869和0x0A42。 我希望看到  0x0fc0、 0x1096和 0x5042。 我也不希望出现任何逆转、因为我在任何地方都看不到这样的信息。

    我还创建了一个变量来观察数组写入寄存器的值、它验证是否从数组中选择了正确的值。 我在 FR2433上尝试过此代码、结果完全相同。

    该寄存器表中有一句我不理解它的含义。 也许它与这种行为有某种关系。 它说"根据 CRC-CCITT 标准、写入 CRCDIRB 寄存器的数据被包括在 CRCINIRES 和 CRCRESR 寄存器的当前签名中。" 我不清楚"包括在本签字中"这一短语。

    我正在使用 CCS  版本:9.3.0.00012。

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

    > 0x0fc0 -> 0xF003 是字节反转的位。

    CRCDIRB 是 CRCDI 的位反转版本。 当您读取 CRCDIRB 时显示 CRCDI 这一事实是实现的一个已记录的工件。

    "签名"只是迄今为止的 CRC。

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

    谢谢你。