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:
您好,
很高兴您的问题解决了,后续有问题可以继续发新帖提问,感谢您的支持。