在bq27421的配置中,我按照技术文档上的例子顺序去写Data Memory parameter,按照顺序执行的时候,在写0x61寄存器值00的时候,i2c就不再返回了,i2c直接读取当前电量没有问题。代码顺序如下,到61就过不去了
i2ctxbuf[0]=0;
I2C_BufWriteT(0xAA,0x00, i2ctxbuf, 1); //0xaa 芯片地址,0x00 寄存器地址
i2ctxbuf[0]=0x80;
I2C_BufWriteT(0xAA,0x00, i2ctxbuf, 1); //0xaa 芯片地址,0x00 寄存器地址
I2C_BufWriteT(0xAA,0x00, i2ctxbuf, 2);
i2ctxbuf[0]=0x13;
i2ctxbuf[1]=0x0;
I2C_BufWriteT(0xAA,0x00, i2ctxbuf, 2);
while((EEP.ReadBuf[0]&0x10)!=0x10)
{
I2C_BufReadT(0xAA,0x06 , 1);
OSTimeDly(500);
}
// OSTimeDly(1000);
i2ctxbuf[0]=0;
I2C_BufWriteT(0xAA,0x61, i2ctxbuf, 1);
i2ctxbuf[0]=0x52;
I2C_BufWriteT(0xAA,0x3e, i2ctxbuf, 1);