主题中讨论的其他器件:BQ27426
尊敬的 TI 专家:
我正在研究这个项目、BQ27426_Read 和 BQ27426_write、 i2cTransaction。slaveAddress = BQ27426_DEVICE_ADDRESS、我认为这是不对的、 它应该是 i2cTransaction.slaveAddress = BQ27426_DEVICE_ADDRESS<<1;对吗?

静态 BQ27426_read (uint8_t nRegister、uint8_t *数据、uint8_t nLength)
{
I2C_Transaction i2cTransaction;
uint8_t writeBuffer[1];
volatile bool i=1;
易失性 bool transferOK;
i2cTransaction。slaveAddress = BQ27426_DEVICE_ADDRESS;// 7位外设从地址*
i2cTransaction.writeBuf = writeBuffer;//要写入的缓冲区
i2cTransaction.writeCount = 1;/*要写入的字节数*/
i2cTransaction.readBuf = NULL;/*要读取的缓冲器*/
i2cTransaction.ReadCount = 0;/*要读取的字节数*/
writeBuffer[0]= nRegister;
transferOK = I2C_transfer (i2c、&i2cTransaction);//执行 I2C 传输
如果(!transferOK){
I = 0;
/* I2C 总线故障*/
}
i2cTransaction.writeBuf =空;//要写入的缓冲区
i2cTransaction.writeCount = 0;/*要写入的字节数*/
i2cTransaction.readBuf = pData;/*要写入的缓冲器*/
i2cTransaction.ReadCount = nLength;/*要读取的字节数*/
transferOK = I2C_transfer (i2c、&i2cTransaction);//执行 I2C 传输
如果(!transferOK){
I = 0;
/* I2C 总线故障*/
}
}