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.

[参考译文] MSP432E411Y:Driverlib 函数 SSIAdvDataPutFrameEnd 在 simplelink msp432e4 SDK 2.20.00.20中的断言错误

Guru**** 2589245 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/725090/msp432e411y-driverlib-function-ssiadvdataputframeend-seems-to-have-incorrect-assertion-in-simplelink-msp432e4-sdk-2-20-00-20

器件型号:MSP432E411Y
void SSIAdvDataPutFrameEnd (uint32_t ui32Base、uint32_t ui32Data)
{
assert (_SSIBaseValid (ui32Base));
assert ((ui32Data & 0xff)==0);

while (!(HWREG (ui32Base + SSI_O_SR)& SSI_SR_TNF));

HWREG (ui32Base + SSI_O_CR1)|= SSI_CR1_EOM;
HWREG (ui32Base + SSI_O_DR)= ui32Data;
} 


Assert (((ui32Data & 0xff)==0)对我来说似乎不正确。 说明表明硬件将忽略 ui32Data 中较高的24位、这是正确的、但该断言仅允许在帧结束时写入0。

将任何非零数据写入帧的末尾肯定是正确的。 在 SimpleLink SDK 提供的示例中、此函数甚至可与非零值一起使用。 如果我的理解是正确的,如果我可以忽略这一说法,我将得到确认。

此致。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我认为这是为了检查高24位是否为0、而不是低8 (以便您可以检测用户是否尝试写入会被忽略的数据)。 我将把它作为一个 TT 进行归档、以便在下一个版本中清理它。 现在、您可以忽略这一点。
    -Bob L.
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您的快速回答、这正是我所想的。

    此致。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我只是想在 Tivaware 中报告同样的问题、它也会影响函数的非阻塞版本。 我没有此 SDK、但我怀疑您在它的非阻塞版本中也会发现相同的错误。