void BQ27421_Config(void) { u8 Rec_data=0; int Temp=0,checksum82=0; u16 Csum=0,Des_cap=0,Down_vol=0,Des_eng=0,Tap_num=0; BQ27421_Write_Memory(0x00,0x00,0x80); //?a¡¤aD???0x8000 BQ27421_Write_Memory(0x00,0x00,0x80); BQ27421_Write_Memory(0x00,0x13,0x00); //?????¡ê¨º? delay_ms(2000); Rec_data=BQ27421_Read_Memory(0x06); if((Rec_data&0x10)) { BQ27421_Write_Byte(0x61,0x00); //?a¨º?D¡äRAM BQ27421_Write_Memory(0x3e,0x52,0x00); //D¡ä¨¨?¨¦¨¨??2?¨ºy Csum= BQ27421_Read_Memory(0x60); Des_cap= BQ27421_Read_Memory(0x4A); //?¨¢3?¨¤¡ä¨¦¨¨??¦Ì?3?¨¨Y¨¢? Down_vol=BQ27421_Read_Memory(0x50); //1???¦Ì??1 Des_eng= BQ27421_Read_Memory(0x4C); //¦Ì?3?¨¨Y¨¢? Tap_num= BQ27421_Read_Memory(0x5B); //¨¦¨¨????¨¢¡Â¦Ì?¨¢¡Â //¡À¨º¡Á?¦Ì??a0x40+X?a¦Ì??¡¤¨ºy BQ27421_Write_Byte(0x4A,Designcapacity>>8); //¨¦¨¨??¦Ì?3?¨¨Y¨¢?4A 0x0190 400MA BQ27421_Write_Byte(0x4B,Designcapacity&0xff); BQ27421_Write_Byte(0x50,terminatevoltage>>8); //?¦Ì¨ª31?¡À?¦Ì??150 0x0D48 3400MV BQ27421_Write_Byte(0x51,terminatevoltage&0xff); BQ27421_Write_Byte(0x4C,DesignEnergy>>8); //¨¦¨¨??¦Ì??¡ä¨¨Y¨¢?4C 0x05C8 400*3.7v BQ27421_Write_Byte(0x4D,DesignEnergy&0xff); BQ27421_Write_Byte(0x5B,Taperrate>>8); //??¨¢¡Â¦Ì?¨¢¡Â¨¨Y¨¢?5B 0x0056 86 BQ27421_Write_Byte(0x5C,Taperrate&0xff); // Temp=(255-(u8)(Csum&0xff)-(u8)((Csum>>8)&0xff)-(u8)(Des_cap&0xff)-(u8)((Des_cap>>8)&0xff))%256; // checksum82=(u8)255-((Temp+((Designcapacity>>8)&0xff)+(Designcapacity&0xff))%256); Temp=(255 -((Csum>>8)&0xff)-(Csum&0xff)-((Des_cap>>8)&0xff)-(Des_cap&0xff)-((Down_vol>>8)&0xff)-(Down_vol&0xff)-((Des_eng>>8)&0xff)-(Des_eng&0xff)-((Tap_num>>8)&0xff)-(Tap_num&0xff) )%256; checksum82=(u8)(255- ( (Temp+((Designcapacity>>8)&0xff)+(Designcapacity&0xff)+((terminatevoltage>>8)&0xff)+(terminatevoltage&0xff)+((DesignEnergy>>8)&0xff)+(DesignEnergy&0xff)+((Taperrate>>8)&0xff)+(Taperrate&0xff) ) %256)); // if(checksum82!=0xbc) BQ27421_Write_Byte(0x60,checksum82); BQ27421_Write_Memory(0x3e,0x42,0x00); //¨ª?3??????¡ê¨º? delay_ms(1000); } Rec_data=BQ27421_Read_Memory(0x06); if((Rec_data&0x10)==0) //¨¨?1?¡ä|¨®¨²?a¡¤a¡Á¡ä¨¬? { BQ27421_Write_Memory(0x00,0x20,0x00);//?¨¹¡¤a¨¦¨¨¡À?¡¤??¨º¦Ì??¡¤ } }