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.

[参考译文] EK-TM4C123GXL:I2C MTR 寄存器可以#39;t 被写入

Guru**** 2460850 points
Other Parts Discussed in Thread: TM4C123GH6PM

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/654242/ek-tm4c123gxl-i2c-mtr-register-can-t-be-written

器件型号:EK-TM4C123GXL
主题中讨论的其他器件:TM4C123GH6PM

大家好、请检查一下。 我正在尝试将一些数据放入 MDR 寄存器中、但 MDR 内的值保持为0x00? 我错过了什么吗? 重要寄存器的值如图所示。  

我是来自 TM4C123GH6PM 数据表的第16.4.1章。

 




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

    [报价用户="Igor Misic"]我是否错过了某些内容?

    供应商具有广泛的 API、详尽地详细介绍了(所有) I2C 的"保养/处理"。   而且-引人注目的是、"速度、易用性、增强"您(和他人)的编程工作。

    使用 "直接寄存器操作"(如您所见)会增加极大的复杂性-有时会被称为"提高理解"、但(相反)会导致延迟、沮丧缺乏理解!

    如果您"被迫"使用(仅限于)这样的 "过时、吃时间、错误邀请"代码方法-您可能希望考虑、 "简要切换到 API"-采用其中一个(许多) I2C 代码示例-使其快速/轻松地工作-然后查看并记录各种 MCU I2C 寄存器-在这种成功过程中得到很好的展示和展示。

    大多数成功的技术公司寻求(并期望)员工的"一些"效率。   DRM -正如您(和无数其他人)发现的-严重降低了效率-因此它的使用-证明"难以证明!"   (我会您的讲师或上司:"效率和/或理解程度如何?")   这里有很多/大多数-看不到!   (您是"众多客户之一"-遭遇沉船-登陆这片荒芜的海岸-由 DRM 提供!)    为什么?

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

    您好 CB1_MOBILE、

    感谢您的努力。 我知道供应商 API。 在本例中、我将为 I2C 编写用于教育目的的驱动程序。  

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

    好的、看起来我已经解决了问题。

    首先、CCS 存在"问题"、它不显示 MDR 寄存器中包含写入的数据。 它仅在接收到数据时显示值。

    但是、即使该字节未显示在寄存器中、它也会发送到 SDA。 我使用了逻辑分析仪来了解这一点。

    其次、TM4C123GH6PM 数据表的第16.4.1章规定:

    10、向 I2CMCS 寄存器写入0x0000.0007 (停止、启动、运行)、以此启动从主机到从机的单字节数据传输。

    这是错的!  如果同时为 STOP、START 和 RUN 设置全部3个标志、则不会发送数据字节。

    首先、您需要设置启动和运行、然后可以停止它。

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

    [引用用户="Igor Misic"]

    如果同时为 STOP、START 和 RUN 设置全部3个标志、则不会发送数据字节。

    首先、您需要设置启动和运行、然后可以停止它。 [/报价]

    在"将该解决方案刻在石头上"之前-也许最好证明:"读取/查看 API 代码"(源代码是免费提供的)-试图确定 "API 代码"是否也是如此-演示了"多次写入 I2CMCS "。   

    虽然我没有这样做-我的预期是、"使用 DRM "导致/促成了这样的"I2CMCS 灵敏度!"

    如果我 的"感觉 DRM 是您问题的原因"-并且您继续使用它-您可能会"邀请"其他问题(绝不是好的)-您可以通过使用"久经考验的"API 来避免这些问题。   

    聪明、熟练、无论您是"单身人士的使用情况"、都不能开始与 API 所收到的"大规模改进"进行比较、这使得 API 的使用"更安全、更轻松、更快速!"    (即使是这些关键优势中的"一个"、也会推动 许多/大多数: "效率和"准时送达"寻求者 -绝大多数-朝着 API 的方向...)