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/TM4C1231D5PM:TM4C123上的 I2C

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/757886/ccs-tm4c1231d5pm-i2c-on-tm4c123

器件型号:TM4C1231D5PM

工具/软件:Code Composer Studio

我正在通过 I2C 传输4个字节、因此 I2CMasterErr 将返回值12。 未定义返回错误状态12、它应该是以下之一:

发送功能:

  

对 I2CMasterErr 返回值为12的情况有何解释?

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

    你好 Joe、

    I2CMasterErr 函数是否以任何方式进行了修改?

    0x12的错误仅意味着仲裁丢失和发生错误。 0x10是仲裁丢失、0x02是 I2C 错误的指示器。 I2CMasterErr 函数屏蔽 I2C 错误指示符、因此您只能返回您提到的标志之一:

    //
    //检查错误。
    //
    IF (ui32Err &(I2C_MCS-78_ERROR | I2C_MCS-78_ARBLST))
    {
    return (ui32Err &(I2C_MCS-78_ARBLST | I2C_MCS-78_DATAACK | I2C_MCS-78K));
    }
    其他
    {
    return (I2C_MASTER_ERR_NONE);
    } 

    我怀疑上述代码是在 driverlib 中修改的。

    无论如何、0x12意味着仲裁丢失、因此您可以从此处进行调试。

    这样、  您就可以在器件数据表的981页和982页上看到该寄存器位的完整说明。