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.

LAUNCHXL-CC3235S: 关于I2Ctmp例程代码的三个疑问

Part Number: LAUNCHXL-CC3235S
Other Parts Discussed in Thread: CC2640R2F, CC3235S, CC2640

TI工程师你们好

我正在I2Ctmp例程的基础上继续开发,我要写一个IIC初始化函数,其他函数来调用这个函数。

怎么写IIC初始化函数我是参考CC2640R2F的IIC初始化函数写,这个IIC初始化函数在CC2640R2F中应用的不错,

在CC2640R2F的IIC初始化函数中有这么两行:

//初始化

I2CCC26XX_fxnTable.initFxn(&I2C_config[0]);

i2c = I2CCC26XX_fxnTable.openFxn(&I2C_config[0],&i2cParams);

问题1:

经查里面的initFxn函数在CC2640R2F的协议栈的I2C里是:typedef void(*I2C_InitFxn) (I2C_Handle handle) ;但是在CC3235S的例程代码中或协议栈中不仅没有fxnTable这个结构体,initFxn函数也没有。

问题2:

在CC2640R2F的IIC配置函数I2C_config里有这个函数 .fxnTablePtr=&I2CCC26XX_fxnTable,但在CC3235S的例程代码中或协议栈中没有这个参数。

上述没有的这些函数、参数可以忽略不写吗?能达到像CC2640R2F那样IIC初始化成功吗? 如果不能忽略有办法解决吗?用其他函数、参数替代行不行呢?

问题3:

在i2ctmp例程的代码的i2ctmp中,有看到“I2C_Init()”,但点进去看里面是空的,这个函数里面内容在哪里能看到呢?

  • 您好我们已收到您的问题并反馈,如有答复将尽快回复您。谢谢!

  • I2C_Init() 在两个平台中都不执行任何操作 (I2C_transfer 执行所有必要的配置)。

    我们目前不太确定您在哪里可以看到 initFxn 函数 (和 fxnTable) ,但 CC2640 可能会使用不同的 TI 驱动程序 API 实现。

    对于 CC32xx 来说,不需要这些您所提的这些。

    希望以上回答对您有所帮助,如有其他问题请随时联系我们。

  • 好的谢谢Cherry,

    在CC2640R2F的协议栈的I2C.h文件中,有个结构体I2C_FxnTable, 里面有个参数initFxn,打开后是它是一个函数:typedef void(*I2C_InitFxn)(I2C_Handle handle),在CC2640R2F里面我在写的IIC初始化函数有这个initFxn,如您所说,CC3235S里面不需要它。

    另外在CC2640R2F的I2C配置函数中,它里面有个指针变量*fxnTablePtr, 它从属于I2C.h文件中的结构体I2C_Config,是不是在CC3235S里面也不需要这个指针变量?

    还有Cherry,我在I2Ctmp的例程代码中经常看到这句话  I2C_transfer(i2c, &i2cTransaction),这句代码是什么含义呢?

  • 好的收到您的问题,已跟进给工程师,如有答复将尽快回复您。

  • 抱歉我再添一个问题烦请一起解答,上述提到的CC2640R2F协议栈中的I2C.h文件中有结构体I2C_FxnTable,里面有个变量transferFxn,我在CC2640R2F中写IIC初始化函数有用到这个变量。 但是在CC3235S的协议栈中,不仅没有I2C_FxnTable结构体,变量transferFxn也是没有的,是不是CC3235S的I2C初始化就不需要initFxn、transferFxn这些变量呢?

  • 好的收到。

  • 我再添一个问题烦请一起解答,上述提到的CC2640R2F协议栈中的I2C.h文件中有结构体I2C_FxnTable,里面有个变量transferFxn,我在CC2640R2F中写IIC初始化函数有用到这个变量。 但是在CC3235S的协议栈中,不仅没有I2C_FxnTable结构体,变量transferFxn也是没有的,是不是CC3235S的I2C初始化就不需要initFxn、transferFxn这些变量呢?

    您好这两个问题在以上回复中已答复过。

    我在I2Ctmp的例程代码中经常看到这句话  I2C_transfer(i2c, &i2cTransaction),这句代码是什么含义呢?

    I2C_TRANSACTION() 是通过 i2c 行触发读取或写入事务的调用 (i2cTransaction 结构包含事务的参数)。

  • 好的cherry,非常感谢,再次谢谢您们