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.

[参考译文] CC3220MOD:CC3220MODSF I2C

Guru**** 2564565 points
Other Parts Discussed in Thread: CC3220SF

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/601017/cc3220mod-cc3220modsf-i2c

器件型号:CC3220MOD
主题中讨论的其他器件:CC3220SF

您好!

我在自己的应用中使用 CC3220MODSF、I2C 接口连接到外部实时时钟。

使用以下设置:

接下来的两个文件是使用 Pinmux V4工具生成的

CC3220SF_LAUNCHXL.h:

/*!
*@def CC3220SF_LAUNCHXL_I2CName
*@CC3220SF_LAUNCHXL 开发板上 I2C 名称的简短枚举
*/
typedef enum CC3220SF_LAUNCHXL_I2CName{
CC3220SF_LAUNCHXL_I2C0 = 0、

CC3220SF_LAUNCHXL_I2CCOUNT
}CC3220SF_LAUNCHXL_I2CName; 

CC3220SF_LAUNCHXL.c:

/*
================================================ I2C ================================================
*/
#include 
#include 

I2CCC32XX_Object i2cCC3220SObjects[CC3220SF_LAUNCHXL_I2CCOUNT;

const I2CCC32XX_HWAttrsV1 i2cCC3220SHWAttrs[CC3220SF_LAUNCHXL_I2CCOUNT ={
{
baseAddr = I2CA0_BASE、
.intNum = INT_I2CA0、
.intPriority =(~0)、
clkPin = I2CCC32XX_PIN_03_I2C_SCL、
.dataPin = I2CCC32XX_PIN_04_I2C_SDA
}
};

const I2C_Config I2C_CONFIG[CC3220SF_LAUNCHXL_I2CCOUNT ={
{
.fxnTablePtr =&I2CCC32XX_fxnTable、
.object =&i2cCC3220SObjects[CC3220SF_LAUNCHXL_I2C0]、
hwAttrs =&i2cCC3220SHWAttrs[CC3220SF_LAUNCHXL_I2C0]
}
};

const uint_least8_t I2C_count = CC3220SF_LAUNCHXL_I2CCOUNT;

main.c

//... 

void main() { Board_initGeneral(); Board_initI2C(); //其他内容... I2C_Handle I2C; I2C_Params i2cParams; I2C_Transaction i2cTransaction; uint8_t TX[10]; uint8_t RX[10]={0}; I2C_Params_init (&i2cParams); i2cParams.bitrate = I2C_400kHz; i2cParams.transferMode = I2C_MODE_BLOCKING; I2C = I2C_open (Board_I2C0、&i2cParams); if (!i2c) { 报告("初始化 I26\r\n"\n 时出错"); } 其他 { int n = 0; while (1){ uint8_t stop[]={0x2E、0x01}; i2cTransaction.slaveAddress = 0xA2; i2cTransaction.writeBuf =停止; i2cTransaction.writeCount = 2; i2cTransaction.readBuf = 0; i2cTransaction.ReadCount = 0; 报告("%d\r\n"、I2C_transfer (i2c、&i2cTransaction)); } }

但是、无论 slaveAddress 是什么、传输的数据是什么或尝试读出的数据、我都会在 SCL (黄色)和 SDA (绿色)线路上得到这种行为、
并且 I2C_transfer 始终返回0 (false)。


出什么问题了?

此致
Jorg

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

    我看到您更改了用于 I2C 的引脚。 您是否正在使用 launchpad? 您是否为此更改了 launchpad 上的跳线配置?

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

    您好、Charles、

    我不使用 launchpad、而是在我自己的应用中使用该模块。

    将 I2C 重新配置为其他引脚时是否存在问题?

    此致
    Jorg