STM32读取SN8765的问题

我有个笔记本电池,电源芯片的型号是SN8765,查不到资料,貌似是定制芯片。我想使用STM32的软件IIC读取电池电量,使用SMBUS协议的芯片的寄存器地址一般是一样的吧。

从机地址是0x16,单片机读取一直是FF。使用上位机IIC软件读取到值也不准确,例如电池电量0F,读到是一个定值df f3,放电一段时间后还是不变,明显错误。

请问使用单片机读取电量的步骤一般是什么,读取之前还需要解锁吗?

读取部分代码如下,第一次弄这个请勿见笑,谢谢大家了

u8  getBatteryInfo(u8 slaveAddr, u8 Comcode,u8 *data, u8 size)
{  

	 //uint8_t buff[2];

	 IIC_Start();  
	
	 IIC_Send_Byte(slaveAddr);//发送地址
   IIC_Wait_Ack();
	 IIC_Send_Byte(Comcode);	//发送命令
	 IIC_Wait_Ack();

	 delay_us(750);
	
   IIC_Start(); 
	 IIC_Send_Byte(slaveAddr+1);//发送地址
	 IIC_Wait_Ack();
	 delay_us(50);
 
   while(size-1){
	 *data =   IIC_Read_Byte(1);
	 IIC_Ack(); 
 
	  delay_us(10);
      data++;
	  size--;
	 }
	 delay_us(60);
	 *data++ = IIC_Read_Byte(0);
	
	 IIC_Stop();
	 delay_ms(5);
	
}