Index: yc_chrg.h
===================================================================
--- /YC3121_SDK/fw/sdk/yc_chrg.h	(revision 659)
+++ /YC3121_SDK/fw/sdk/yc_chrg.h	(working copy)
@@ -27,9 +27,9 @@
 #define CHANGE_OUT 0
 
 /*CHARGE WORKING STATE DEFINE*/
-#define CHARG_ACTIVE 0//正在充电
-#define CHARG_CUTOFF 1 //充电截止
-#define CHARG_INACTIVE 2  //没有充电
+#define CHARG_ACTIVE 0//充电中
+#define CHARG_CUTOFF 1 //未插入USB
+#define CHARG_INACTIVE 2  //已充满，充电截止
 
 
 /****************************
Index: yc_chrg.c
===================================================================
--- /YC3121_SDK/fw/sdk/yc_chrg.c	(revision 659)
+++ /YC3121_SDK/fw/sdk/yc_chrg.c	(working copy)
@@ -1,5 +1,8 @@
 #include "yc_chrg.h"
 
+#define CHRG_IND_BIT	28
+#define CHRG_WEAKUP_BIT	30
+
 void CHARGE_VolSel(uint8_t ChargOutVol)
 {
 	uint32_t temp = 0;
@@ -92,18 +95,12 @@
 
 uint8_t CHARGE_State(void)
 {
-	uint32_t statu = (SYSCTRL_STATUS >> 24);
-	if(statu == 0x40)
-	{
-		return  CHARG_CUTOFF ;  
-		
-	}else if(statu == 0x50)
-	{
-		return CHARG_ACTIVE ;
-	}else
-	{
-		return CHARG_INACTIVE;
-	}
+	uint32_t statu = SYSCTRL_STATUS;
 
+	if (!((statu >> CHRG_WEAKUP_BIT) & 0x1))
+		return CHARG_CUTOFF ; //未插入USB
+	else if (((statu >> CHRG_IND_BIT) & 0x1) &&((statu >> CHRG_WEAKUP_BIT) & 0x1))
+		return CHARG_ACTIVE; //USB插入，充电
+	else if (!((statu >> CHRG_IND_BIT) & 0x1))
+		return CHARG_INACTIVE; //未充电
 }
-
