TI中文支持网
TI专业的中文技术问题搜集分享网站

LAUNCHXL-CC1310: CC1310 动态绑定iic管脚

Part Number:LAUNCHXL-CC1310Other Parts Discussed in Thread:CC1310

1.有两个iic设备,地址相同,要分开读。计划分时复用iic,iic管脚可以动态绑定吗

Nick Sun:

您好,

感谢您的提问。我们不是很确定您所说的iic管脚的动态绑定意思。

按照我们的理解,您是想使用两个地址相同的i2c设备并在不同的时间调用。

那可以将slave设备接在不同的引脚上,然后在需要使用的时候切换引脚。用完一个,关掉i2C,再重新初始化。

在CC1310的CC1310_LAUNCHXL.c中有如下:

const I2CCC26XX_HWAttrsV1 i2cCC26xxHWAttrs[CC1310_LAUNCHXL_I2CCOUNT] = {{.baseAddr= I2C0_BASE,.powerMngrId = PowerCC26XX_PERIPH_I2C0,.intNum= INT_I2C_IRQ,.intPriority = ~0,.swiPriority = 0,.sdaPin= CC1310_LAUNCHXL_I2C0_SDA0,.sclPin= CC1310_LAUNCHXL_I2C0_SCL0,}
};

改.sclPin和.sdaPin应该就可以,相应的board.h也需要修改。(操作类似于您在https://e2echina.ti.com/support/wireless-connectivity/sub-1-ghz/f/sub-1-ghz-forum/756952/launchxl-cc1310-cc1310-iic)

改完了之后要重新初始化I2C。

,

genyi liu:

1.你们有尝试过,i2cCC26xxHWAttrs结构体是const修饰的,直接修改肯定报错的,

2. 重新初始化是调用IIC_Init()吗?

,

Nick Sun:

您好,

您的修改.sclPin和.sdaPin是ctrl+左键跳转到CC1310_LAUNCHXL.h中修改吗?,跳转后如图如图: (您应该需要新建新的DIO口为I2C设备)
您是NORTOS但也可以查看模仿SDK中i2ctmp示例: 跳转(ctrl+左键)Board_I2C_TMP会到Board.h文件中: (board.h中可自行填加新的I2C定义,配合新的I2C DIO),最后I2C_close()。

关于I2C的API您可以查看:I2C.h File Reference

,

genyi liu:

还是不太理解,需要使用的时候切换引脚。用完一个,关掉i2C,再重新初始化。

1.切换引脚。怎么用代码切换,强制修改i2cCC26xxHWAttrs里面的sdaPin数值吗?还是在I2C_open()上修改第一个参数?

,

genyi liu:

可以分时复用了,谢谢。

,

Nick Sun:

您好,

很高兴您的问题解决了,后续有问题可以继续发新帖提问,感谢您的支持。

赞(0)
未经允许不得转载:TI中文支持网 » LAUNCHXL-CC1310: CC1310 动态绑定iic管脚
分享到: 更多 (0)

© 2024 TI中文支持网   网站地图 鲁ICP备2022002796号-1