你(们)好
GeneralReturnType BqIf_SetDeviceByte (uByte addr、uByte 数据)
{
uByte I = 0;
uByte wr_CRC;
uByte calc_crc_data[3];
_DI ();//关闭中断
CALC_CRC_DATA[0]= BQ76940_WR;
CALC_CRC_DATA[1]=地址;
CALC_CRC_DATA[2]=数据;
WR_CRC = CRC8_CHECK (calc_CRC_DATA、3)//计算 CRC
//写入3次,直至写入正常
对于(I = 0;I < 3;I++)
{
BqIICStart();//
BqIf_WriteByte (BQ76940_WR);
if (BQIF_ERR_OK!= BqIF_IICAckDevice())
{
BqIf IICStop();
继续;
}
BqIf_WriteByte (addr);
if (BQIF_ERR_OK!= BqIF_IICAckDevice())
{
BqIf IICStop();
继续;
}
BqIf_WriteByte (data);
if (BQIF_ERR_OK!= BqIF_IICAckDevice())
{
BqIf IICStop();
继续;
}
BqIf_WriteByte (wr_CRC);
if (BQIF_ERR_OK!= BqIF_IICAckDevice())
{
BqIf IICStop();
继续;
}
BqIf IICStop();
中断;
}
_EI();
if (i >= 3)
{
返回 BQIF_ERR_WR;
}
返回 BQIF_ERR_OK;
}

