您好,
客户在使用客户主板中的 IC 时遇到问题,请参阅以下详细信息。
“您好,我正在尝试将 cc1350与2个单独的 I2C 设备连接。 它们目前不在同一个 PCB 总线上,这意味着它们连接到1350上的2组引脚(例如 dev1在1和2上,dev2在8,9上)。 是否可以使用 cc1350与双方通信? 我尝试在打开另一个接口之前确保关闭了一个接口,但在第一次尝试设置第二个接口时,程序挂起。”
请提前感谢。
此致,
五月纳德
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.
您好,
客户在使用客户主板中的 IC 时遇到问题,请参阅以下详细信息。
“您好,我正在尝试将 cc1350与2个单独的 I2C 设备连接。 它们目前不在同一个 PCB 总线上,这意味着它们连接到1350上的2组引脚(例如 dev1在1和2上,dev2在8,9上)。 是否可以使用 cc1350与双方通信? 我尝试在打开另一个接口之前确保关闭了一个接口,但在第一次尝试设置第二个接口时,程序挂起。”
请提前感谢。
此致,
五月纳德
只要您以前设置驱动程序,并在将驱动程序用于一组指定的引脚后关闭驱动程序,就可以这样做。
您如何在两个 IC 接口之间设置和切换物理针脚?
[引用 userid="451819" url="~ë/support/wireless-connectivity /蓝牙组/Bluetooth/f/Bluetooth-forum/1071427/cc1350- connecting-cc1350-带有-2个独立 i2c-devices "],但该程序在第一次尝试设置第二个接口时挂起此外,调试并找出程序在代码中的挂起位置。
如何设置接口? 以下代码显示了如何使用两个不同的针脚组在两个接口之间进行交换:
void *mainThread(void *arg0) { uint8_t txBuffer[2]; uint8_t rxBuffer[4]; I2C_Handle i2c1, i2c2; I2C_Params i2cParams1, i2cParams2; I2CCC26XX_I2CPinCfg pinCfg; I2C_Transaction i2cTransaction; I2C_init(); I2C_Params_init(&i2cParams1); i2cParams1.bitRate = I2C_100kHz; i2c1 = I2C_open(Board_I2C_TMP, &i2cParams1); if (i2c1 == NULL) { while (1); } i2cTransaction.writeBuf = txBuffer; i2cTransaction.readBuf = rxBuffer; // Write 0x01 to register 0x0F (start conversion) i2cTransaction.slaveAddress = 0x41; txBuffer[0] = 0x0F; txBuffer[1] = 0x01; i2cTransaction.writeCount = 2; i2cTransaction.readCount = 0; I2C_transfer(i2c1, &i2cTransaction); I2C_close(i2c1); I2C_Params_init(&i2cParams2); pinCfg.pinSDA = CC1310_LAUNCHXL_DIO12; pinCfg.pinSCL = CC1310_LAUNCHXL_DIO1; i2cParams2.custom = &pinCfg; i2c2 = I2C_open(Board_I2C_TMP, &i2cParams2); if (i2c2 == NULL) { while (1); } i2cTransaction.writeBuf = txBuffer; i2cTransaction.readBuf = rxBuffer; // Write 0x01 to register 0x0F (start conversion) i2cTransaction.slaveAddress = 0x41; txBuffer[0] = 0x0F; txBuffer[1] = 0x01; i2cTransaction.writeCount = 2; i2cTransaction.readCount = 0; I2C_transfer(i2c2, &i2cTransaction); I2C_close(i2c2); return (NULL); }
此外,在信号灯上出现代码之前,I2C 总线上是否有任何活动?