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.

[参考译文] MSP430FR5994:I2C 中重复出现启动问题

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1033569/msp430fr5994-repeated-start-issue-in-i2c

器件型号:MSP430FR5994

您好!

我一直在尝试连接一个具有非自动递增缓冲区的从器件、所以我必须发送重复起始来读取 FIFO 中存储的所有64字节数据、我将使用位移位来进行分离、但在这里、 我在发送时遇到了一个问题 使用 I2C 重复启动条件。因此我将获得一些不相关的值。我已使用 Arduino 对相同的东西进行建模、但它运行良好。但当我在 Code Composer 中对相同的算法进行建模时、我将获得不相关的值。我将附加 Arduino 代码和 MSP430代码 here.please、然后浏览该读取 FIFO 在两个程序中都能正常工作、并将您的建议拖放到一起。提前感谢

Arduino 代码:

链接:#include #define Device_FIFO_DEPTH 10//Registers#define Mode_Regi - Pastebin.com   (抱歉、我无法在此处粘贴代码)

抄送代码:

链接:#include #include #include #include <stdbool - Pastebin.com

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

    您使用的是什么从器件? 代码显示为 BMP280、但从器件地址不匹配、因此它看起来是其他内容。

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

    嗨、David、

    感谢您的快速响应。我将使用 MAX30100脉动式血氧计传感器作为我的从属传感器

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

    首先、只有当总线上有多个主器件并且您想避免仲裁失败的可能性时、才需要重复启动。 如果只有一个主器件、停止和启动与重复启动一样好。

    它看起来好像您正在使用字节计数器来生成一个停止。 我从未使用过这种方法、但从文档中可以看出、这种方法适用于发送和接收。 由于我看不到您禁用自动停止生成或设置1以外的计数的位置、因此您无法接收多个字节的数据。

    但我可能错过了一些东西。 代码组织异常(对我而言)、很难遵循。