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.

cc1310I2C读写控制位

Other Parts Discussed in Thread: CC1310, TMP007, TMP116

请教大家个问题:

cc1310 I2C通信。最后的读写控制位,不需要填写吗?1310会自己判断读写吗?

例程中是读写tmp007的温度,我查阅了tmp007的手册。例程中tmp007的地址为0x40.

假如按照手册中tmp007地址为 1000 000 前面补0 .则tmp007地址为0x40.可是看这个读写时序,读写位没有了,按照这个时序图,应该发0x80;

请教大家一下这个问题,

  •  
     *  I2C slave address with the appropriate read/write bit is handled internally
     *  by this driver.

    i2cTransaction.slaveAddress = TMP116_ADDR;

    i2cTransaction.writeBuf = txBuffer;

    i2cTransaction.writeCount = 1;

    i2cTransaction.readBuf = rxBuffer;

    i2cTransaction.readCount = 2;

    关于CC1310 I2C 读写如果你在writeCount或者readCount 置0以及buf设置为NULL, 则只会进行read/write操作。

    /*!
     *  @brief    Structure used to perform I2C bus transfers.
     *
     *  The application is responsible for allocating and initializing an
     *  I2C_Transaction structure prior to passing it to I2C_Transfer(). This
     *  structure must persist in memory unmodified until the transfer is complete.
     *  This driver will always perform write operations first. Transmission of the
     *  I2C slave address with the appropriate read/write bit is handled internally
     *  by this driver.
     *
     *  \note #I2C_Transaction structures cannot be re-used until the previous
     *        transaction has completed.
     *
     *  @sa I2C_transfer()
     */
    typedef struct I2C_Transaction_ {
        /*! Pointer to a buffer of at least \p writeCount bytes. If \p writeCount
         *  is 0, this pointer may remain uninitialized. */
        void         *writeBuf;
        /*! Number of bytes to write to the I2C slave device. A value of 0
         *  indicates no data will be written to the slave device. */
        size_t        writeCount;
        /*! Pointer to a buffer of at least \p readCount bytes. If \p readCount
         *  is 0, this pointer may remain uninitialized. */
        void         *readBuf;
        /*! Number of bytes to read from the I2C slave device. A value of 0
         *  indicates no data will be read from the slave device. */
        size_t        readCount;
        /*! I2C slave address of the slave device */
        uint_least8_t slaveAddress;
        /*! Optional application argument. This argument will be passed to the
         *  callback function specified by #I2C_Params.transferCallbackFxn when
         *  using #I2C_MODE_CALLBACK. */
        void         *arg;
        /*! This is reserved for use by the driver and must never be modified by
         *  the application. */
        void         *nextPtr;
    } I2C_Transaction;

  • 您好感谢您的回答:

          请问您这个介绍在哪里找到。我的SDK中的介绍如下,好像没有您的详细,我的是在I2C.h

  • 你去下载3.10 SDK应该是里面有写的。
  • 好的,谢谢