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.

[参考译文] RF430FRL152H:152H eUSCI Q

Guru**** 2548650 points


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

https://e2e.ti.com/support/wireless-connectivity/other-wireless-group/other-wireless/f/other-wireless-technologies-forum/615215/rf430frl152h-152h-eusci-q

器件型号:RF430FRL152H

您好!

基本 Q 是我是否正确设置 eUSCI、因为每当我读取一个字节时、从器件返回两个字节。  读取世卫组织 I 寄存器0xF、结果是需要0x3D。

这是从 SensorHub 项目中借用的代码。

我对 UCASTP_0、1等和 UCB0TBCNT 值的用法感到困惑。  在写入从器件地址时、我如何使用这些地址、将寄存器地址设置为红色、将返回的数据写入一个字节?

问题可能不是152H、而是 LIS3MDL 中的问题。

感谢您查看此帖子。

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

    Ken 您好、

    [引用用户="Ken Ward"]

    我对 UCASTP_0、1等和 UCB0TBCNT 值的用法感到困惑。  在写入从器件地址时、我如何使用这些地址、将寄存器地址设置为红色、将返回的数据写入一个字节?

    [/报价]

    这些值用于定义您是希望器件自动处理发送停止条件、还是希望自己执行、如您发布的示例所示。

    我建议详细阅读 TRM 第12.3节的相关部分: http://www.ti.com/lit/ug/slau506/slau506.pdf

    12.3.4、12.3.5.2和12.3.8等章节可能会对您当前的一些问题有所帮助。

    关于获得额外的数据字节、我不喜欢您的流程的一件事是、您在将 UCB0CTL1设置为"读取操作"之前发送重复起始值。 我将反转该序列、看看它是否修复了额外的字节。

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

    您好 Ralph、

    已尝试您建议的交换、以便 RepeatedStart 指令现在遵循 Read 指令;无更改。  当我只需要一个时、从从器件到主器件仍会获得两个字节。

    用红色标记您建议的部分。  因为我要做的是:

    1.创建起始条件,用 W 位发送从属地址,期待收到背包

    2.将 reg 的 addr 转至所需的位置,以便阅读,期待收到一个背包

    3.创建重复起始,发送带有 R 位的从属设备地址,期望收到袋

    从器件发送请求地址处的字节

    5、现在我已经完成了、创建了 MNAK 和 STOP 条件  

    也许我可以设置 UCBxTBCNT = 4 (3字节 TX + 1字节 Rx)、其中 UCBxCTLW1 = UCASTP_1 (因为我希望在 Rx 数据字节后停止)。  计数器和停止计数器的正确用法吗?

    这是我的代码片段:

    感谢您花时间了解这一点!

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

    Ken 您好、

    [引用 USER="Ken Ward ]\n 也许我可以设置 UCBxTBCNT = 4 (3字节 TX + 1字节 Rx)、其中 UCBxCTLW1 = UCASTP_1 (因为我希望在 Rx 数据字节后停止)。  计数器和停止计数器的这种正确用法吗?[/quot]

    我不确定 UCBxTBCNT 是否会像这样工作。 虽然听起来可以同时用于 TX 和 RX、但我认为它不会像您描述的那样对 TX+RX 字节进行计数。 您可以对其进行测试并查看吗?

    我想此时、您需要使用一个示波器、或者理想情况下需要一个逻辑状态分析器、查看 I2C 线路并查看通信方面的情况。 调试 I2C 时、我从未有幸尝试"盲目"地对代码进行调试、只有查看 SDA/SCL、问题才会变得明显。 我建议您继续执行此操作。