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.

[参考译文] CC2640R2F:连续写入 I2C

Guru**** 2582405 points


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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/594412/cc2640r2f-continuous-writing-of-i2c

器件型号:CC2640R2F

大家好、我目前正在使用 I2C_transfer 函数从我的器件写入或读取数据、这种做法效果很好。  但是、我有一个大小为10k 的 char 数组、该数组太大、无法复制到具有寄存器地址的单独数组中、这意味着:

|

最好使用一个 I2C_transfer 调用写入寄存器、然后使用另一个 I2C_transfer 调用写入大数组。  有可能吗?  我现在观察的是传输实际完成、然后再次开始。  

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

    我不确定从描述中了解您的问题。 您是否采用了逻辑分析仪跟踪来确认软件操作是否与总线上发生的情况相匹配?

    祝你一切顺利
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你(们)好,谢谢。 基本上,我想发送两个数组,其中有两个 I2C_transfer()调用,如下所示:

    i2cTransaction.slaveAddress = device_Add;
    //寄存器地址
    i2cTransaction.writeBuf =寄存器地址;
    i2cTransaction.writeCount = 2;
    i2cTransaction.readBuf =空;
    i2cTransaction.ReadCount = 0;
    I2C_transfer (i2c、&i2cTransaction);

    //dataToWrite 是要写入的超长数据
    i2cTransaction.writeBuf = dataToWrite;
    i2cTransaction.writeCount = 1000;
    I2C_transfer (i2c、&i2cTransaction);


    基本上是因为数组 dataToWrite 太大、无法复制到另一个数组中、且寄存器地址数组位于前。 从分析仪上、我可以看到整个传输完成、并在第二个呼叫中重新启动。 我想知道的是、是否有一个选项可以在第一次传输时说"不要发送停止"。 有办法吗?