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

bq34z100 stateofcharge()

用上位机bqStudio软件Advanced Comm发送I2C指令获取stateofcharge():

I2C Address(Hex): AB

Start Register(Hex): 02

Number of Bytes to Read(Decimal): 2

Read

返回的结果是不固定的值,且不等于stateofcharge()的值

返回的结果截图:

TimeStamp , Read/Write , Address , Register , Length , Data ,2017-07-26 11:42:37 758 , Rd , AB , 02 , 2 , 64 052017-07-26 11:42:38 333 , Rd , AB , 02 , 2 , 7F FF2017-07-26 11:42:39 145 , Rd , AB , 02 , 2 , BE 0A2017-07-26 11:42:40 003 , Rd , AB , 02 , 2 , 64 062017-07-26 11:42:40 690 , Rd , AB , 02 , 2 , 7F FF2017-07-26 11:42:41 127 , Rd , AB , 02 , 2 , 64 062017-07-26 11:42:42 063 , Rd , AB , 02 , 2 , 64 062017-07-26 11:42:42 983 , Rd , AB , 02 , 2 , 7F FF2017-07-26 11:42:43 701 , Rd , AB , 02 , 2 , BE 0A2017-07-26 11:42:44 467 , Rd , AB , 02 , 2 , Error

Eric Lim:

回复 Cheng.W:

读取stateofcharge()电量,Advanced comm要怎么填,你是怎么操作的,为什么我读到的值是不固定的错误值

Eric Lim:

回复 Eric Lim:

I2C Address(Hex): AA

Start Register(Hex): 02

Number of Bytes to Read(Decimal):1

Read

读出的数据直接就是剩余电量百分比(HEX)

user5284978:

回复 Cheng.W:

我也用stm32模拟i2c,发aa有时候ack,然后回复很多0xff,我写流程这样可以吗?
i2c_Start();i2c_SendByte(BQ34Z100_SLAVE_ADDRESS);i2c_WaitAck();i2c_SendByte(0x0C);i2c_WaitAck();
i2c_Start();i2c_SendByte(BQ34Z100_SLAVE_ADDRESS + 1);i2c_WaitAck();
ucReadBuf[2] = i2c_ReadByte();i2c_WaitAck();
ucReadBuf[3] = i2c_ReadByte();i2c_NAck();
i2c_Stop();

Eric Lim:

回复 user5284978:

你好,你是用PIO模拟I2C,PIO模拟得测量时序正确性才行,由于时间关系,我没尝试用模拟的。不过看你这回复都是0xFF,你ACK后,应该是引脚一直都是拉高的?你用TI的芯片来通信,建议你用IC内部提供的I2C接口与TI芯片通信,会比较方便,时序比较容易连接。如果你用PIO模拟I2C,得时序对。

赞(0)
未经允许不得转载:TI中文支持网 » bq34z100 stateofcharge()
分享到: 更多 (0)