Index: NFC/YC5018/user/main.c
===================================================================
--- /YC3121_demo/ModuleDemo/NFC/YC5018/user/main.c	(revision 727)
+++ /YC3121_demo/ModuleDemo/NFC/YC5018/user/main.c	(working copy)
@@ -27,6 +27,7 @@
 #include "yc_ipc.h"
 #include "yc_nfc_common.h"
 #include "yc_emv_contactless_l1.h"
+#include "yc_timer.h"
 #include "board_config.h"
 
 /* Private typedef -----------------------------------------------------------*/
@@ -54,6 +55,9 @@
 
 int main(void)
 {
+    uint8_t errno = 0;
+    uint8_t Resart = 0;
+
     UART_Configuration();
 #if (BOARD_VER == EPOS_BOARD_V1_0)
     GPIO_Config(GPIOA, GPIO_Pin_2, OUTPUT_HIGH);
@@ -62,20 +66,51 @@
     NFC_Spi_Init();
     NFC_CoreReg_Init(SOFTWARE_RESET, EXTERNAL_IRRIGATION_CLOCK);
     GPIO_Config(NFC_TVDD_PORT, NFC_TVDD_PIN, OUTPUT_LOW); //nfc tvdd enable
-#ifdef EMV_MAIN_LOOP
-    EMV_Main_Loop();
+#ifdef READ_RxVpp
+    Nfc_SysTick_Delay_Ms(200);
+    Aset_read_power_xRSSI_RXVPP();
+    NFC_CoreReg_Init(SOFTWARE_RESET, EXTERNAL_IRRIGATION_CLOCK);
 #endif
     /*Contactless Init*/
     YC_EMV_Contactless_L1_Init();
     /*Open Rf*/
     YC_EMV_Contactless_L1_Rf_Switch(ON);
     MyPrintf("please swiping card\n");
+    NFC_time_start();
 
     while (1)
     {
-        if (EMV_ERR_NONE == Nfc_Active_card())
+        if (Resart == 1)
         {
-            if (EMV_ERR_NONE == Nfc_Apdu_Transmission_Test())
+            NFC_CoreReg_Init(SOFTWARE_RESET, EXTERNAL_IRRIGATION_CLOCK);
+            SysTick_Delay_Ms(500);
+            YC_EMV_Contactless_L1_Init();
+            YC_EMV_Contactless_L1_Rf_Switch(ON);
+            Resart = 0;
+#ifdef SDK_DEBUG
+            MyPrintf("NFC Resart EOT_SHOUT\n");
+#endif
+        }
+        errno = Nfc_Active_card();
+        if (errno == EOT_SHOUT)
+        {
+#ifdef SDK_DEBUG
+            MyPrintf("NFC Active_card EOT_SHOUT\n");
+#endif
+            Resart = 1;
+        }
+        if (errno == EMV_ERR_NONE)
+        {
+            errno = Nfc_Apdu_Transmission_Test();
+            if (errno == EOT_SHOUT)
+            {
+                Resart = 1;
+#ifdef SDK_DEBUG
+                MyPrintf("NFC Apdu Transmission EOT_SHOUT\n");
+#endif
+
+            }
+            if (errno == EMV_ERR_NONE)
             {
                 MyPrintf("Nfc Apdu Transmission Test Sucess\n");
                 MyPrintf("Please Swipe Your Card!\n");
Index: POS/prj/MDK/YC3121_Keil.uvoptx
===================================================================
--- /YC3121_demo/ModuleDemo/POS/prj/MDK/YC3121_Keil.uvoptx	(revision 719)
+++ /YC3121_demo/ModuleDemo/POS/prj/MDK/YC3121_Keil.uvoptx	(working copy)
@@ -253,7 +253,7 @@
       <GroupNumber>2</GroupNumber>
       <FileNumber>4</FileNumber>
       <FileType>1</FileType>
-      <tvExp>1</tvExp>
+      <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
       <PathWithFileName>..\..\user\main.c</PathWithFileName>
@@ -357,7 +357,7 @@
       <GroupNumber>3</GroupNumber>
       <FileNumber>12</FileNumber>
       <FileType>1</FileType>
-      <tvExp>1</tvExp>
+      <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
       <PathWithFileName>..\..\..\..\Librarier\sdk\yc_ipc.c</PathWithFileName>
@@ -577,7 +577,7 @@
       <GroupNumber>5</GroupNumber>
       <FileNumber>29</FileNumber>
       <FileType>1</FileType>
-      <tvExp>0</tvExp>
+      <tvExp>1</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
       <PathWithFileName>..\..\..\..\Librarier\sdk\yc_nfc\yc_emv_contactless_l1.c</PathWithFileName>
@@ -597,7 +597,7 @@
       <GroupNumber>6</GroupNumber>
       <FileNumber>30</FileNumber>
       <FileType>1</FileType>
-      <tvExp>0</tvExp>
+      <tvExp>1</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
       <PathWithFileName>..\..\..\..\Librarier\sdk\yc_7816\yc_7816.c</PathWithFileName>
Index: POS/user/meun.c
===================================================================
--- /YC3121_demo/ModuleDemo/POS/user/meun.c	(revision 719)
+++ /YC3121_demo/ModuleDemo/POS/user/meun.c	(working copy)
@@ -4,47 +4,47 @@
 void BEEP_Start()
 {
 #if BEEP_PWM
-					TIM_Cmd(TIM8, ENABLE);
+    TIM_Cmd(TIM8, ENABLE);
 #else
-		GPIO_Config(BEEP_PORT, BEEP_PIN, OUTPUT_LOW);
+    GPIO_Config(BEEP_PORT, BEEP_PIN, OUTPUT_HIGH);
 #endif
 }
 void BEEP_End()
 {
 #if BEEP_PWM
-					TIM_Cmd(TIM8, DISABLE);
+    TIM_Cmd(TIM8, DISABLE);
 #else
-		GPIO_Config(BEEP_PORT, BEEP_PIN, OUTPUT_HIGH);
+    GPIO_Config(BEEP_PORT, BEEP_PIN, OUTPUT_LOW);
 #endif
-	
+
 }
 
 void BEEP_PWM_Init(void)
 {
-	uint32_t value;
+    uint32_t value;
 
-	PWM_InitTypeDef PWM_init_struct;
-	PWM_init_struct.TIMx = TIM8;
-	PWM_init_struct.LowLevelPeriod = 6400;
-	PWM_init_struct.HighLevelPeriod = 6400;
-	PWM_init_struct.SatrtLevel = OutputLow;
-	GPIO_Config(BEEP_PORT, BEEP_PIN,PWM_OUT8);
-	TIM_PWMInit(&PWM_init_struct);
-	TIM_ModeConfig(TIM8, TIM_Mode_PWM);
+    PWM_InitTypeDef PWM_init_struct;
+    PWM_init_struct.TIMx = TIM8;
+    PWM_init_struct.LowLevelPeriod = 6400;
+    PWM_init_struct.HighLevelPeriod = 6400;
+    PWM_init_struct.SatrtLevel = OutputLow;
+    GPIO_Config(BEEP_PORT, BEEP_PIN, PWM_OUT8);
+    TIM_PWMInit(&PWM_init_struct);
+    TIM_ModeConfig(TIM8, TIM_Mode_PWM);
 }
 
 void Display_InterfaceWindow(void)
 {
-	st7789_tft_clear(WHITE);
-	ST7789_TFT_Clear_White(0, 28, TFT_COL, TFT_ROW);
-	ST7789_TFT_ShowChinese(100, 1, Yichip_ch, 24, 5, 1, WHITE, OLIVE);
-	ST7789_TFT_Draw_Piece(0, 27, TFT_COL, 28, DGRAY);
-	ST7789_TFT_ShowChinese(165, 70, Welcom_ch, 36, 4, 1, WHITE, OLIVE);
-	ST7789_TFT_ShowString(175, 111, 128, 16, "YC3121-E", 32, 1, WHITE, OLIVE);
-	ST7789_TFT_Picture_Q(25, 80, gImage_Yichip);
-	ST7789_TFT_ShowString(10, 160, 300, 12, "TUSN:00000302Q3NL01638914", 24, 1, WHITE, OLIVE);
-	TFT_Power_scan();
-	TFT_Single_scan();
+    st7789_tft_clear(WHITE);
+    ST7789_TFT_Clear_White(0, 28, TFT_COL, TFT_ROW);
+    ST7789_TFT_ShowChinese(100, 1, Yichip_ch, 24, 5, 1, WHITE, OLIVE);
+    ST7789_TFT_Draw_Piece(0, 27, TFT_COL, 28, DGRAY);
+    ST7789_TFT_ShowChinese(165, 70, Welcom_ch, 36, 4, 1, WHITE, OLIVE);
+    ST7789_TFT_ShowString(175, 111, 128, 16, "YC3121-E", 32, 1, WHITE, OLIVE);
+    ST7789_TFT_Picture_Q(25, 80, gImage_Yichip);
+    ST7789_TFT_ShowString(10, 160, 300, 12, "TUSN:00000302Q3NL01638914", 24, 1, WHITE, OLIVE);
+    TFT_Power_scan();
+    TFT_Single_scan();
 }
 
 uint8_t meunState = 0;
@@ -53,16 +53,16 @@
 
 static void Display_MainMeun(void)
 {
-	ST7789_TFT_Clear_White(0, 70, TFT_COL, TFT_ROW);
-	ST7789_TFT_ShowChinese(5, 29, xiaofei_ch, 32, 4, 1, WHITE, OLIVE);
-	ST7789_TFT_ShowChinese(155, 29, saoyisao_ch, 32, 5, 1, WHITE, OLIVE);
-	ST7789_TFT_ShowChinese(5, 72, chexiao_ch, 32, 4, 1, WHITE, OLIVE);
-	ST7789_TFT_ShowChinese(155, 72, jiaoyichaxun_ch, 32, 5, 1, WHITE, OLIVE);
-	ST7789_TFT_ShowChinese(5, 115, guanli_ch, 32, 4, 1, WHITE, OLIVE);
-	ST7789_TFT_ShowChinese(155, 115, tupianceshi_ch, 32, 5, 1, WHITE, OLIVE);
-	ST7789_TFT_ShowChinese(5, 158, jiesuan_ch, 32, 4, 1, WHITE, OLIVE);
-	ST7789_TFT_ShowChinese(155, 158, TPTest_ch, 32, 5, 1, WHITE, OLIVE);
-	ST7789_TFT_ShowChinese(5, 201, CARDTest_ch, 32, 5, 1, WHITE, OLIVE);
+    ST7789_TFT_Clear_White(0, 70, TFT_COL, TFT_ROW);
+    ST7789_TFT_ShowChinese(5, 29, xiaofei_ch, 32, 4, 1, WHITE, OLIVE);
+    ST7789_TFT_ShowChinese(155, 29, saoyisao_ch, 32, 5, 1, WHITE, OLIVE);
+    ST7789_TFT_ShowChinese(5, 72, chexiao_ch, 32, 4, 1, WHITE, OLIVE);
+    ST7789_TFT_ShowChinese(155, 72, jiaoyichaxun_ch, 32, 5, 1, WHITE, OLIVE);
+    ST7789_TFT_ShowChinese(5, 115, guanli_ch, 32, 4, 1, WHITE, OLIVE);
+    ST7789_TFT_ShowChinese(155, 115, tupianceshi_ch, 32, 5, 1, WHITE, OLIVE);
+    ST7789_TFT_ShowChinese(5, 158, jiesuan_ch, 32, 4, 1, WHITE, OLIVE);
+    ST7789_TFT_ShowChinese(155, 158, TPTest_ch, 32, 5, 1, WHITE, OLIVE);
+    ST7789_TFT_ShowChinese(5, 201, CARDTest_ch, 32, 5, 1, WHITE, OLIVE);
 }
 
 uint8_t card_flag = 0;
@@ -72,74 +72,74 @@
 
 static void Display_card(void)
 {
-	ST7789_TFT_Clear_White(0, 30, 150, 150);
-	ST7789_TFT_ShowChinese(20, 65, CARD_ch, 32, 4, 1, WHITE, BLACK);
-	if (msr == 1)
-	{
-		ST7789_TFT_Picture_Q(180, 40, gImage_msr);
-		ST7789_TFT_ShowChinese(106, 225, cancelback_ch, 12, 9, 1, WHITE, BLACK);
-	}
-	else if (nfc == 1)
-	{
-		ST7789_TFT_Picture_Q(180, 50, gImage_nfc);
-		ST7789_TFT_ShowChinese(106, 225, cancelback_ch, 12, 9, 1, WHITE, BLACK);
-	}
-	else if (iccard == 1)
-	{
-		ST7789_TFT_Picture_Q(180, 45, gImage_iccard);
-		ST7789_TFT_ShowChinese(106, 225, cancelback_ch, 12, 9, 1, WHITE, BLACK);
-	}
+    ST7789_TFT_Clear_White(0, 30, 150, 150);
+    ST7789_TFT_ShowChinese(20, 65, CARD_ch, 32, 4, 1, WHITE, BLACK);
+    if (msr == 1)
+    {
+        ST7789_TFT_Picture_Q(180, 40, gImage_msr);
+        ST7789_TFT_ShowChinese(106, 225, cancelback_ch, 12, 9, 1, WHITE, BLACK);
+    }
+    else if (nfc == 1)
+    {
+        ST7789_TFT_Picture_Q(180, 50, gImage_nfc);
+        ST7789_TFT_ShowChinese(106, 225, cancelback_ch, 12, 9, 1, WHITE, BLACK);
+    }
+    else if (iccard == 1)
+    {
+        ST7789_TFT_Picture_Q(180, 45, gImage_iccard);
+        ST7789_TFT_ShowChinese(106, 225, cancelback_ch, 12, 9, 1, WHITE, BLACK);
+    }
 }
 
 static void MSR_Test(void)
 {
-	uint8_t cfmt, tflag;
-	uint16_t nResult = 0, ret;
-	track_data tdata[MAX_TRACK_NUM];
-
-	card_flag = 1;
-	Display_card();
-	MyPrintf("start MSR test\n");
-	MSR_Init();
-	MyPrintf("please swiping card\n");
-	while (card_flag)
-	{
-		if (KEY_Scan() == KEY_CANCEL)
-		{
-			card_flag = 0;
-			msr = 0;
-			ST7789_TFT_Clear_White(0, 28, TFT_COL, TFT_ROW);
-			ST7789_TFT_ShowString(10, 30,  80,  16, "1.MSR", 32, 1, WHITE, OLIVE);
-			ST7789_TFT_ShowString(10, 72,  80,  16, "2.NFC", 32, 1, WHITE, OLIVE);
-			ST7789_TFT_ShowString(10, 114, 128, 16, "3.ICCARD", 32, 1, WHITE, OLIVE);
-		}
-		else
-		{
-			nResult = MSR_DetectSwipingCard();
-			if(nResult == DETECT_SWIPING_CARD)
-			{
-				cfmt = tflag = 0;
-				tdata[1].len = 0;
-				ret = MSR_GetDecodeData(tdata, TRACK_SELECT_2, &cfmt, &tflag);
-
-				if (ret == SUCCESS||ret!=SUCCESS)
-				{
-					if ((tdata[1].len) > 0)
-					{
-
-						ST7789_TFT_Clear_White(0, 145, TFT_COL, 185);
-						UART_SendBuf(UART0,tdata[1].buf,tdata[1].len);
-						ST7789_TFT_ShowString(32, 145, 256, 16, tdata[1].buf+1, 32, 1, WHITE, OLIVE);
-						BEEP_Start();
-						delay_ms(200);
-						BEEP_End();	
-					}				
-				}
-				MSR_ENABLE(DISABLE);
-				MSR_ENABLE(ENABLE);
-			}
-		}
-	}
+    uint8_t cfmt, tflag;
+    uint16_t nResult = 0, ret;
+    track_data tdata[MAX_TRACK_NUM];
+
+    card_flag = 1;
+    Display_card();
+    MyPrintf("start MSR test\n");
+    MSR_Init();
+    MyPrintf("please swiping card\n");
+    while (card_flag)
+    {
+        if (KEY_Scan() == KEY_CANCEL)
+        {
+            card_flag = 0;
+            msr = 0;
+            ST7789_TFT_Clear_White(0, 28, TFT_COL, TFT_ROW);
+            ST7789_TFT_ShowString(10, 30,  80,  16, "1.MSR", 32, 1, WHITE, OLIVE);
+            ST7789_TFT_ShowString(10, 72,  80,  16, "2.NFC", 32, 1, WHITE, OLIVE);
+            ST7789_TFT_ShowString(10, 114, 128, 16, "3.ICCARD", 32, 1, WHITE, OLIVE);
+        }
+        else
+        {
+            nResult = MSR_DetectSwipingCard();
+            if (nResult == DETECT_SWIPING_CARD)
+            {
+                cfmt = tflag = 0;
+                tdata[1].len = 0;
+                ret = MSR_GetDecodeData(tdata, TRACK_SELECT_2, &cfmt, &tflag);
+
+                if (ret == SUCCESS || ret != SUCCESS)
+                {
+                    if ((tdata[1].len) > 0)
+                    {
+
+                        ST7789_TFT_Clear_White(0, 145, TFT_COL, 185);
+                        UART_SendBuf(UART0, tdata[1].buf, tdata[1].len);
+                        ST7789_TFT_ShowString(32, 145, 256, 16, tdata[1].buf + 1, 32, 1, WHITE, OLIVE);
+                        BEEP_Start();
+                        delay_ms(200);
+                        BEEP_End();
+                    }
+                }
+                MSR_ENABLE(DISABLE);
+                MSR_ENABLE(ENABLE);
+            }
+        }
+    }
 }
 
 /*
@@ -147,11 +147,11 @@
 */
 unsigned char Nfc_Apdu_Transmission_Test()
 {
-	uint8_t err_no,ResBuff[256];
-	uint16_t ResLen;
-	const uint8_t ApduBuff[] = {0x00,0xA4,0x04,0x00,0x0E,0x32,0x50,0x41,0x59,0x2E,0x53,0x59,0x53,0x2E,0x44,0x44,0x46,0x30,0x31,0x00};
-	err_no = YC_EMV_Contactless_L1_APDU_Transceive(ApduBuff,sizeof(ApduBuff),ResBuff,&ResLen);
-	return err_no;
+    uint8_t err_no, ResBuff[256];
+    uint16_t ResLen;
+    const uint8_t ApduBuff[] = {0x00, 0xA4, 0x04, 0x00, 0x0E, 0x32, 0x50, 0x41, 0x59, 0x2E, 0x53, 0x59, 0x53, 0x2E, 0x44, 0x44, 0x46, 0x30, 0x31, 0x00};
+    err_no = YC_EMV_Contactless_L1_APDU_Transceive(ApduBuff, sizeof(ApduBuff), ResBuff, &ResLen);
+    return err_no;
 }
 
 extern EMV_Poll_Type_t Poll_Type;
@@ -161,39 +161,39 @@
 */
 unsigned char Nfc_Active_card()
 {
-	unsigned char i, err_no = EMV_ERR_NONE;
-	Poll_Type.Type_A = 0;
-	Poll_Type.Type_B = 0;
-	if(!Poll_Type.Type_A)
-	{
-		if(YC_EMV_Contactless_L1_WUPA() != EMV_ERR_TIME_OUT)
-		{
-			Poll_Type.Type_A = 1;
-			YC_EMV_Contactless_L1_HLTA();
-		}
-		if(!Poll_Type.Type_B)
-		{
-			if(YC_EMV_Contactless_L1_WUPB(NULL) != EMV_ERR_TIME_OUT)
-			{
-				Poll_Type.Type_B = 1;
-			}
-		}
-	}
-	if(!(Poll_Type.Type_A || Poll_Type.Type_B)) return EMV_ERR_NO_CARD;
-
-	if(Poll_Type.Type_A && Poll_Type.Type_B) return EMV_ERR_COLLISION;
-
-	else if(Poll_Type.Type_A) err_no = EMV_A_Collision_Detect();
-
-	else if(Poll_Type.Type_B) err_no = EMV_B_Collision_Detect();
-
-	if(err_no == EMV_ERR_NONE)
-	{
-		if(Poll_Type.Type_A) err_no = YC_EMV_Contactless_L1_RATS();
-
-		else if(Poll_Type.Type_B) err_no = YC_EMV_Contactless_L1_ATTRIB();
-	}
-	return err_no;
+    unsigned char i, err_no = EMV_ERR_NONE;
+    Poll_Type.Type_A = 0;
+    Poll_Type.Type_B = 0;
+    if (!Poll_Type.Type_A)
+    {
+        if (YC_EMV_Contactless_L1_WUPA() != EMV_ERR_TIME_OUT)
+        {
+            Poll_Type.Type_A = 1;
+            YC_EMV_Contactless_L1_HLTA();
+        }
+        if (!Poll_Type.Type_B)
+        {
+            if (YC_EMV_Contactless_L1_WUPB(NULL) != EMV_ERR_TIME_OUT)
+            {
+                Poll_Type.Type_B = 1;
+            }
+        }
+    }
+    if (!(Poll_Type.Type_A || Poll_Type.Type_B)) return EMV_ERR_NO_CARD;
+
+    if (Poll_Type.Type_A && Poll_Type.Type_B) return EMV_ERR_COLLISION;
+
+    else if (Poll_Type.Type_A) err_no = EMV_A_Collision_Detect();
+
+    else if (Poll_Type.Type_B) err_no = EMV_B_Collision_Detect();
+
+    if (err_no == EMV_ERR_NONE)
+    {
+        if (Poll_Type.Type_A) err_no = YC_EMV_Contactless_L1_RATS();
+
+        else if (Poll_Type.Type_B) err_no = YC_EMV_Contactless_L1_ATTRIB();
+    }
+    return err_no;
 }
 
 #define ON  1
@@ -205,34 +205,34 @@
 
 static void NFC_Spi_Init(void)
 {
-	SPI_InitTypeDef SPI_InitStruct;
-	SPI_InitStruct.Mode = SPI_Mode_Master;
-	SPI_InitStruct.BaudRatePrescaler = SPI_BaudRatePrescaler_16;
-	SPI_InitStruct.CPHA = SPI_CPHA_First_Edge;
-	SPI_InitStruct.CPOL = SPI_CPOL_Low;
-	SPI_InitStruct.RW_Delay = 3;
-
-	GPIO_Config(NFC_SPI_MISO_PORT, NFC_SPI_MISO_PIN, SPID1_MISO);
-	GPIO_Config(NFC_SPI_MOSI_PORT, NFC_SPI_MOSI_PIN, SPID1_MOSI);
-	GPIO_Config(NFC_SPI_SCL_PORT, NFC_SPI_SCL_PIN, SPID1_SCK);
-	GPIO_Config(NFC_SPI_CS_PORT, NFC_SPI_CS_PIN, SPID1_NCS);
-	SPI_Init(SPI1, &SPI_InitStruct);
+    SPI_InitTypeDef SPI_InitStruct;
+    SPI_InitStruct.Mode = SPI_Mode_Master;
+    SPI_InitStruct.BaudRatePrescaler = SPI_BaudRatePrescaler_16;
+    SPI_InitStruct.CPHA = SPI_CPHA_First_Edge;
+    SPI_InitStruct.CPOL = SPI_CPOL_Low;
+    SPI_InitStruct.RW_Delay = 3;
+
+    GPIO_Config(NFC_SPI_MISO_PORT, NFC_SPI_MISO_PIN, SPID1_MISO);
+    GPIO_Config(NFC_SPI_MOSI_PORT, NFC_SPI_MOSI_PIN, SPID1_MOSI);
+    GPIO_Config(NFC_SPI_SCL_PORT, NFC_SPI_SCL_PIN, SPID1_SCK);
+    GPIO_Config(NFC_SPI_CS_PORT, NFC_SPI_CS_PIN, SPID1_NCS);
+    SPI_Init(SPI1, &SPI_InitStruct);
 }
 
 static void TFT_Spi_Init(void)
 {
-	SPI_InitTypeDef SPI_InitStruct;
+    SPI_InitTypeDef SPI_InitStruct;
 
-	SPI_InitStruct.BaudRatePrescaler = SPI_BaudRatePrescaler_1;
-	SPI_InitStruct.CPHA = SPI_CPHA_First_Edge;
-	SPI_InitStruct.CPOL = SPI_CPOL_Low;
-	SPI_InitStruct.Mode =  SPI_Mode_Master;
-	SPI_InitStruct.RW_Delay = 1;
-	
-	GPIO_Config(ST7789_TFT_SCL_PORT, ST7789_TFT_SCL_PIN, SPID1_SCK);
-	GPIO_Config(ST7789_TFT_CS_PORT, ST7789_TFT_CS_PIN, SPID1_NCS);
-	GPIO_Config(ST7789_TFT_SDA_PORT,ST7789_TFT_SDA_PIN, SPID1_MOSI);
-	SPI_Init(ST7789VTFTSPI, &SPI_InitStruct);
+    SPI_InitStruct.BaudRatePrescaler = SPI_BaudRatePrescaler_1;
+    SPI_InitStruct.CPHA = SPI_CPHA_First_Edge;
+    SPI_InitStruct.CPOL = SPI_CPOL_Low;
+    SPI_InitStruct.Mode =  SPI_Mode_Master;
+    SPI_InitStruct.RW_Delay = 1;
+
+    GPIO_Config(ST7789_TFT_SCL_PORT, ST7789_TFT_SCL_PIN, SPID1_SCK);
+    GPIO_Config(ST7789_TFT_CS_PORT, ST7789_TFT_CS_PIN, SPID1_NCS);
+    GPIO_Config(ST7789_TFT_SDA_PORT, ST7789_TFT_SDA_PIN, SPID1_MOSI);
+    SPI_Init(ST7789VTFTSPI, &SPI_InitStruct);
 }
 
 /*
@@ -240,8 +240,8 @@
 */
 static void NFC_Systick_Init(void)
 {
-	IpcInit();
-	GPIO_Config(NFC_12M_CLK_PORT, NFC_12M_CLK_PIN, NFC_CLK_OUT);
+    IpcInit();
+    GPIO_Config(NFC_12M_CLK_PORT, NFC_12M_CLK_PIN, NFC_CLK_OUT);
 }
 
 /*
@@ -249,407 +249,444 @@
 形参：Software_reset ：置1 NFC Reset 接主控IO控制；置0 NFC Reset 拉高
 	  External_irrigation_clock ：置1 ：NFC时钟不由晶体供给；置0 NFC时钟由晶体供给
 */
-static void NFC_CoreReg_Init(uint8_t Software_reset,uint8_t External_irrigation_clock)
+static void NFC_CoreReg_Init(uint8_t Software_reset, uint8_t External_irrigation_clock)
 {
-	uint8_t RegBuff[12];
+    uint8_t RegBuff[12];
 
-	if(Software_reset)
-	{
-		if(External_irrigation_clock)
-		{
-			NFC_Systick_Init();
-		}
-
-		Nfc_SysTick_Delay_Ms(10);
-
-		YC_EMV_HwReset();
-		if(External_irrigation_clock)
-		{
-			WRITEREG(130,0xA8);
-			WRITEREG(137,0x24);
-			WRITEREG(129,0x5b);
-		}
-		dc_cali_alg(3);
-		YC_EMV_HwReset();
-		if(External_irrigation_clock)
-		{
-			WRITEREG(130,0xA8);
-			WRITEREG(137,0x24);
-			WRITEREG(129,0x5b);
-			PRINT("130 = 0x%x\r\n",READREG(130));
-			PRINT("137 = 0x%x\r\n",READREG(137));
-			PRINT("129 = 0x%x\r\n",READREG(129));
-		}
-	}
-	else
-	{
-		if(External_irrigation_clock)
-		{
-			NFC_Systick_Init();
-		}
-		Nfc_SysTick_Delay_Ms(500);
-		WRITEREG(171,0x04);
-		WRITEREG(174,0x04);
-		if(External_irrigation_clock)
-		{
-			WRITEREG(130,0xA8);
-			WRITEREG(137,0x24);
-			WRITEREG(129,0x5b);
-
-			PRINT("130 = 0x%x\r\n",READREG(130));
-			PRINT("137 = 0x%x\r\n",READREG(137));
-			PRINT("129 = 0x%x\r\n",READREG(129));
-
-		}
-
-		RegBuff[0]= READREG(1);
-		RegBuff[1]= READREG(148);
-		RegBuff[2]= READREG(83);
-		RegBuff[3]= READREG(65);
-		RegBuff[4]= READREG(66);
-		RegBuff[5]= READREG(68);
-		RegBuff[6]= READREG(69);
-		RegBuff[7]= READREG(149);
-		RegBuff[8]= READREG(150);
-		RegBuff[9]= READREG(151);
-		RegBuff[10]= READREG(171);
-		RegBuff[11]= READREG(174);
-
-		dc_cali_alg(3);
-
-		WRITEREG(1,RegBuff[0]);
-		WRITEREG(148,RegBuff[1]);
-		WRITEREG(183,RegBuff[2]);
-		WRITEREG(65,RegBuff[3]);
-		WRITEREG(66,RegBuff[4]);
-		WRITEREG(68,RegBuff[5]);
-		WRITEREG(69,RegBuff[6]);
-		WRITEREG(149,RegBuff[7]);
-		WRITEREG(150,RegBuff[8]);
-		WRITEREG(151,RegBuff[9]);
-		WRITEREG(171,RegBuff[10]);
-		WRITEREG(174,RegBuff[11]);
-	}
+    if (Software_reset)
+    {
+        if (External_irrigation_clock)
+        {
+            NFC_Systick_Init();
+        }
+
+        Nfc_SysTick_Delay_Ms(10);
+
+        YC_EMV_HwReset();
+        if (External_irrigation_clock)
+        {
+            WRITEREG(130, 0xA8);
+            WRITEREG(137, 0x24);
+            WRITEREG(129, 0x5b);
+        }
+        dc_cali_alg(3);
+        YC_EMV_HwReset();
+        if (External_irrigation_clock)
+        {
+            WRITEREG(130, 0xA8);
+            WRITEREG(137, 0x24);
+            WRITEREG(129, 0x5b);
+            PRINT("130 = 0x%x\r\n", READREG(130));
+            PRINT("137 = 0x%x\r\n", READREG(137));
+            PRINT("129 = 0x%x\r\n", READREG(129));
+        }
+    }
+    else
+    {
+        if (External_irrigation_clock)
+        {
+            NFC_Systick_Init();
+        }
+        Nfc_SysTick_Delay_Ms(500);
+        WRITEREG(171, 0x04);
+        WRITEREG(174, 0x04);
+        if (External_irrigation_clock)
+        {
+            WRITEREG(130, 0xA8);
+            WRITEREG(137, 0x24);
+            WRITEREG(129, 0x5b);
+
+            PRINT("130 = 0x%x\r\n", READREG(130));
+            PRINT("137 = 0x%x\r\n", READREG(137));
+            PRINT("129 = 0x%x\r\n", READREG(129));
+
+        }
+
+        RegBuff[0] = READREG(1);
+        RegBuff[1] = READREG(148);
+        RegBuff[2] = READREG(83);
+        RegBuff[3] = READREG(65);
+        RegBuff[4] = READREG(66);
+        RegBuff[5] = READREG(68);
+        RegBuff[6] = READREG(69);
+        RegBuff[7] = READREG(149);
+        RegBuff[8] = READREG(150);
+        RegBuff[9] = READREG(151);
+        RegBuff[10] = READREG(171);
+        RegBuff[11] = READREG(174);
+
+        dc_cali_alg(3);
+
+        WRITEREG(1, RegBuff[0]);
+        WRITEREG(148, RegBuff[1]);
+        WRITEREG(183, RegBuff[2]);
+        WRITEREG(65, RegBuff[3]);
+        WRITEREG(66, RegBuff[4]);
+        WRITEREG(68, RegBuff[5]);
+        WRITEREG(69, RegBuff[6]);
+        WRITEREG(149, RegBuff[7]);
+        WRITEREG(150, RegBuff[8]);
+        WRITEREG(151, RegBuff[9]);
+        WRITEREG(171, RegBuff[10]);
+        WRITEREG(174, RegBuff[11]);
+    }
 }
 
 void NFC_Test(void)
 {
-	card_flag = 1;
-	Display_card();
-	MyPrintf("start NFC test\n");
-	//	nfc_init = 1;
-	NFC_Spi_Init();
-	NFC_CoreReg_Init(SOFTWARE_RESET, EXTERNAL_IRRIGATION_CLOCK);
-	GPIO_Config(NFC_TVDD_PORT, NFC_TVDD_PIN, OUTPUT_LOW); //nfc tvdd enable
-	/*Contactless Init*/
-	YC_EMV_Contactless_L1_Init();
-	/*Open Rf*/
-	YC_EMV_Contactless_L1_Rf_Switch(ON);
-	MyPrintf("please swiping card\n");
-	while(card_flag)
-	{
-		if (KEY_Scan() == KEY_CANCEL)
-		{
-			card_flag = 0;
-			nfc = 0;
-			YC_EMV_Contactless_L1_Rf_Switch(OFF);
-			GPIO_Config(NFC_TVDD_PORT, NFC_TVDD_PIN, OUTPUT_HIGH); //nfc tvdd disable
-			RST_Disable(); //nfc disable
-			TFT_Spi_Init();
-			ST7789_TFT_Clear_White(0, 28, TFT_COL, TFT_ROW);
-			ST7789_TFT_ShowString(10, 30,  80,  16, "1.MSR", 32, 1, WHITE, OLIVE);
-			ST7789_TFT_ShowString(10, 72,  80,  16, "2.NFC", 32, 1, WHITE, OLIVE);
-			ST7789_TFT_ShowString(10, 114, 128, 16, "3.ICCARD", 32, 1, WHITE, OLIVE);
-		}
-		else
-		{
-			if (EMV_ERR_NONE == Nfc_Active_card())
-			{
-				if ( EMV_ERR_NONE == Nfc_Apdu_Transmission_Test())
-				{
-					MyPrintf("Nfc Apdu Transmission Test Sucess\n");
-					MyPrintf("Please Swipe Your Card!\n");
-					TFT_Spi_Init();
-					ST7789_TFT_Clear_White(0, 145, TFT_COL, TFT_ROW);
-					ST7789_TFT_ShowString(56, 145, 208, 16, "SWIP SUCCESS!", 32, 1, WHITE, BLACK);
-					BEEP_Start();
-					delay_ms(200);
-					BEEP_End();
-				}
-				NFC_Spi_Init();
-				YC_EMV_Contactless_L1_Rf_Switch(OFF);
-
-				Nfc_SysTick_Delay_Ms(6);
-
-				YC_EMV_Contactless_L1_Rf_Switch(ON);
-			}
-		}
-	}
+    card_flag = 1;
+    uint8_t errno = 0;
+    uint8_t Resart = 0;
+    Display_card();
+    MyPrintf("start NFC test\n");
+    //	nfc_init = 1;
+    NFC_Spi_Init();
+    NFC_CoreReg_Init(SOFTWARE_RESET, EXTERNAL_IRRIGATION_CLOCK);
+    GPIO_Config(NFC_TVDD_PORT, NFC_TVDD_PIN, OUTPUT_LOW); //nfc tvdd enable
+    /*Contactless Init*/
+    YC_EMV_Contactless_L1_Init();
+    /*Open Rf*/
+    YC_EMV_Contactless_L1_Rf_Switch(ON);
+    MyPrintf("please swiping card\n");
+    NFC_time_start();
+    while (card_flag)
+    {
+        if (KEY_Scan() == KEY_CANCEL)
+        {
+            card_flag = 0;
+            nfc = 0;
+            YC_EMV_Contactless_L1_Rf_Switch(OFF);
+            GPIO_Config(NFC_TVDD_PORT, NFC_TVDD_PIN, OUTPUT_HIGH); //nfc tvdd disable
+            RST_Disable(); //nfc disable
+            TFT_Spi_Init();
+            ST7789_TFT_Clear_White(0, 28, TFT_COL, TFT_ROW);
+            ST7789_TFT_ShowString(10, 30,  80,  16, "1.MSR", 32, 1, WHITE, OLIVE);
+            ST7789_TFT_ShowString(10, 72,  80,  16, "2.NFC", 32, 1, WHITE, OLIVE);
+            ST7789_TFT_ShowString(10, 114, 128, 16, "3.ICCARD", 32, 1, WHITE, OLIVE);
+        }
+        else
+        {
+            if (Resart == 1)
+            {
+                NFC_CoreReg_Init(SOFTWARE_RESET, EXTERNAL_IRRIGATION_CLOCK);
+                Nfc_SysTick_Delay_Ms(500);
+                YC_EMV_Contactless_L1_Init();
+                YC_EMV_Contactless_L1_Rf_Switch(ON);
+                Resart = 0;
+#ifdef SDK_DEBUG
+                MyPrintf("NFC Resart EOT_SHOUT\n");
+#endif
+            }
+            errno = Nfc_Active_card();
+            if (errno == EOT_SHOUT)
+            {
+#ifdef SDK_DEBUG
+                MyPrintf("NFC Active_card EOT_SHOUT\n");
+#endif
+                Resart = 1;
+            }
+            if (errno == EMV_ERR_NONE)
+            {
+                errno = Nfc_Apdu_Transmission_Test();
+                if (errno == EOT_SHOUT)
+                {
+                    Resart = 1;
+#ifdef SDK_DEBUG
+                    MyPrintf("NFC Apdu Transmission EOT_SHOUT\n");
+#endif
+
+                }
+                if (errno == EMV_ERR_NONE)
+                {
+                    MyPrintf("Nfc Apdu Transmission Test Sucess\n");
+                    MyPrintf("Please Swipe Your Card!\n");
+                    TFT_Spi_Init();
+                    ST7789_TFT_Clear_White(0, 145, TFT_COL, TFT_ROW);
+                    ST7789_TFT_ShowString(56, 145, 208, 16, "SWIP SUCCESS!", 32, 1, WHITE, BLACK);
+                    BEEP_Start();
+                    delay_ms(200);
+                    BEEP_End();
+                }
+                else
+                {
+                    MyPrintf("Nfc Apdu Transmission Test Fail\n");
+                    MyPrintf("Please Swipe Your Card!\n");
+                }
+                NFC_Spi_Init();
+                YC_EMV_Contactless_L1_Rf_Switch(OFF);
+
+                Nfc_SysTick_Delay_Ms(6);
+
+                YC_EMV_Contactless_L1_Rf_Switch(ON);
+            }
+        }
+    }
 }
 
 static void ISO7816_IO_Config(void)
 {
-	sci_pin.clk.gpio_group = GPIOC;
-	sci_pin.clk.gpio_pin = GPIO_Pin_13;
+    sci_pin.clk.gpio_group = GPIOC;
+    sci_pin.clk.gpio_pin = GPIO_Pin_13;
 
-	sci_pin.io.gpio_group = GPIOC;
-	sci_pin.io.gpio_pin = GPIO_Pin_14;
+    sci_pin.io.gpio_group = GPIOC;
+    sci_pin.io.gpio_pin = GPIO_Pin_14;
 
-	sci_pin.reset.gpio_group = GPIOC;
-	sci_pin.reset.gpio_pin = GPIO_Pin_15;
+    sci_pin.reset.gpio_group = GPIOC;
+    sci_pin.reset.gpio_pin = GPIO_Pin_15;
 
-	sci_pin.detect.gpio_group = DET_PORT;
-	sci_pin.detect.gpio_pin = DET_PIN;
-	GPIO_Config(sci_pin.detect.gpio_group,sci_pin.detect.gpio_pin,INPUT|PULL_UP);
-	sci_pin.detect_state = 1;
-	
-	period_7816 = (CPU_MHZ / 4000000 / 2) - 1;
-	contact_reset_l_cnt = 42000 * (CPU_MHZ / 1000000) / 4;
-	contact_atr_rfb_time_cnt = 47000 * (CPU_MHZ / 1000000) / 4;
-	contact_atr_rab_time_cnt = (20164 * (CPU_MHZ / 1000000) / 4) * 372;
+    sci_pin.detect.gpio_group = DET_PORT;
+    sci_pin.detect.gpio_pin = DET_PIN;
+    GPIO_Config(sci_pin.detect.gpio_group, sci_pin.detect.gpio_pin, INPUT | PULL_UP);
+    sci_pin.detect_state = 1;
+
+    period_7816 = (CPU_MHZ / 4000000 / 2) - 1;
+    contact_reset_l_cnt = 42000 * (CPU_MHZ / 1000000) / 4;
+    contact_atr_rfb_time_cnt = 47000 * (CPU_MHZ / 1000000) / 4;
+    contact_atr_rab_time_cnt = (20164 * (CPU_MHZ / 1000000) / 4) * 372;
 
-	atr_time_start();
+//	atr_time_start();
 }
 
 static uint16_t ISO7816_CardDet(void)
 {
-	uint8_t Reg_Int1;
-	uint8_t ATRLen;
-	uint16_t Ret;
-	uint16_t RecLen;
-	uint16_t SendLen;
-	uint8_t ApduCmd[280];
-	uint8_t ts,t0;
+    uint8_t Reg_Int1;
+    uint8_t ATRLen;
+    uint16_t Ret;
+    uint16_t RecLen;
+    uint16_t SendLen;
+    uint8_t ApduCmd[280];
+    uint8_t ts, t0;
 
 
-	uint8_t SELECT_PSE[] = {0x00,0xA4,0x04,0x00,0x0E,
-	0x31,0x50,0x41,0x59,0x2E,0x53,0x59,0x53,0x2E,0x44,0x44,0x46,0x30,0x31,0x00};  /* SELECT_PPSE */
-	uint8_t i=0;
+    uint8_t SELECT_PSE[] = {0x00, 0xA4, 0x04, 0x00, 0x0E,
+                            0x31, 0x50, 0x41, 0x59, 0x2E, 0x53, 0x59, 0x53, 0x2E, 0x44, 0x44, 0x46, 0x30, 0x31, 0x00
+                           };  /* SELECT_PPSE */
+    uint8_t i = 0;
 
-	atr_time_start();
 TOResetCard:
-	delay_ms(100); 			 //5秒
-	//激活卡片
-	Ret = ISO7816_OperateSelect(ISO7816_ACTIVE_CARD, 1);
-	if(Ret == ISO7816_CARD_STUTES_ERROR)
-	{
-		return 0;
-	}
+    atr_time_start();
+    delay_ms(100); 			 //5秒
+    //激活卡片
+    Ret = ISO7816_OperateSelect(ISO7816_ACTIVE_CARD, 1);
+    if (Ret == ISO7816_CARD_STUTES_ERROR)
+    {
+        return 0;
+    }
 TOWarmResetCard:
-	//接收复位信息
-	Ret = ISO7816_GetAtr(&g_7816Para.aAtr[1], &ATRLen);
-	ts =  g_7816Para.aAtr[1];
-	t0 = g_7816Para.aAtr[2];
-
-	//清除atr相关计算器
-	if(OK != Ret)
-	{
-		if((ISO7816_ATR_LEN_ERROR == Ret))
-		{
-			if((g_7816Para.bFlag & BIT1) == 0)
-			{
-				delay_ms(10);
-				ISO7816_OperateSelect(ISO7816_WARM_RESET, 1);
-				return 0;
-			}
-		}
-		iso7816_deactive();
-		delay_ms(5);
-		return 0;
-	}
-	g_7816Para.aAtr[0] = ATRLen;
-	delay_ms(50);
-
-	//自动发送C0
-	g_7816Para.bFlag |= BIT2;
-	memset(&g_T1.bIFSC, 0, sizeof(g_T1));
-
-	g_T1.bIFSC = 32;
-	//ATR数据处理
-	Ret = ISO7816_DisposeATR(&g_7816Para.aAtr[1], ATRLen);
-	if(OK != Ret)
-	{
-		if((Ret == ISO7816_ATR_TA1_ERROR) || (Ret == ISO7816_ATR_TB1_ERROR)
-		|| (Ret == ISO7816_ATR_TB3_ERROR) || (Ret == ISO7816_ATR_TA3_ERROR)
-		|| (Ret == ISO7816_ATR_TC2_ERROR) || (Ret == ISO7816_ATR_TC3_ERROR)
-		|| (Ret == ISO7816_ATR_TA2_ERROR) || (Ret == ISO7816_ATR_TD2_ERROR)
-		|| (Ret == ISO7816_ATR_TB2_ERROR) )
-		{
-			if((g_7816Para.bFlag & BIT1) == 0)
-			{
-				ISO7816_OperateSelect(ISO7816_WARM_RESET, 1);
-				return 0;
-			}
-			else
-			{
-				ISO7816_OperateSelect(ISO7816_DEACTIVE_CARD, 1);
-				delay_ms(10);
-				return 0;
-			}
-		}
-		else
-		{
-			ISO7816_OperateSelect(ISO7816_DEACTIVE_CARD, 1);
-			delay_ms(10);
-			return 0;
-		}
-	}
-	MyPrintf("reset ok\n");
-	return 1;
+    //接收复位信息
+    Ret = ISO7816_GetAtr(&g_7816Para.aAtr[1], &ATRLen);
+    ts =  g_7816Para.aAtr[1];
+    t0 = g_7816Para.aAtr[2];
+
+    //清除atr相关计算器
+    if (OK != Ret)
+    {
+        if ((ISO7816_ATR_LEN_ERROR == Ret))
+        {
+            if ((g_7816Para.bFlag & BIT1) == 0)
+            {
+                delay_ms(10);
+                ISO7816_OperateSelect(ISO7816_WARM_RESET, 1);
+                return 0;
+            }
+        }
+        iso7816_deactive();
+        delay_ms(5);
+        return 0;
+    }
+    g_7816Para.aAtr[0] = ATRLen;
+    delay_ms(50);
+
+    //自动发送C0
+    g_7816Para.bFlag |= BIT2;
+    memset(&g_T1.bIFSC, 0, sizeof(g_T1));
+
+    g_T1.bIFSC = 32;
+    //ATR数据处理
+    Ret = ISO7816_DisposeATR(&g_7816Para.aAtr[1], ATRLen);
+    if (OK != Ret)
+    {
+        if ((Ret == ISO7816_ATR_TA1_ERROR) || (Ret == ISO7816_ATR_TB1_ERROR)
+                || (Ret == ISO7816_ATR_TB3_ERROR) || (Ret == ISO7816_ATR_TA3_ERROR)
+                || (Ret == ISO7816_ATR_TC2_ERROR) || (Ret == ISO7816_ATR_TC3_ERROR)
+                || (Ret == ISO7816_ATR_TA2_ERROR) || (Ret == ISO7816_ATR_TD2_ERROR)
+                || (Ret == ISO7816_ATR_TB2_ERROR))
+        {
+            if ((g_7816Para.bFlag & BIT1) == 0)
+            {
+                ISO7816_OperateSelect(ISO7816_WARM_RESET, 1);
+                return 0;
+            }
+            else
+            {
+                ISO7816_OperateSelect(ISO7816_DEACTIVE_CARD, 1);
+                delay_ms(10);
+                return 0;
+            }
+        }
+        else
+        {
+            ISO7816_OperateSelect(ISO7816_DEACTIVE_CARD, 1);
+            delay_ms(10);
+            return 0;
+        }
+    }
+    MyPrintf("reset ok\n");
+    return 1;
 }
 
 void ICCARD_Test(void)
 {
-	uint8_t swip_flag = 0;
+    uint8_t swip_flag = 0;
 
-	card_flag = 1;
-	Display_card();
-	MyPrintf("start ICCARD test\n");
-	ISO7816_IO_Config();
-	MyPrintf("please swiping card\n");
-	while(card_flag)
-	{
-		if (KEY_Scan() == KEY_CANCEL)
-		{
-			card_flag = 0;
-			iccard = 0;
-			ST7789_TFT_Clear_White(0, 28, TFT_COL, TFT_ROW);
-			ST7789_TFT_ShowString(10, 30,  80,  16, "1.MSR", 32, 1, WHITE, OLIVE);
-			ST7789_TFT_ShowString(10, 72,  80,  16, "2.NFC", 32, 1, WHITE, OLIVE);
-			ST7789_TFT_ShowString(10, 114, 128, 16, "3.ICCARD", 32, 1, WHITE, OLIVE);
-		}
-		else
-		{
-			if(GPIO_ReadInputDataBit((GPIO_TypeDef)sci_pin.detect.gpio_group, sci_pin.detect.gpio_pin) == 0 && swip_flag == 0)
-			{
-				if(ISO7816_CardDet() == 1)
-				{
-					swip_flag = 1;
-					if((g_7816Para.aAtr[1] == 0x3b) || (g_7816Para.aAtr[1] == 0x3f))
-					{
-						ST7789_TFT_ShowString(56, 145, 208, 16, "SWIP SUCCESS!", 32, 1, WHITE, BLACK);
-						BEEP_Start();
-						delay_ms(200);
-						BEEP_End();
-					}
-				}
-			}
-			else 
-			{
-					swip_flag = 0;
-			}
-		}
-	}
+    card_flag = 1;
+    Display_card();
+    MyPrintf("start ICCARD test\n");
+    ISO7816_IO_Config();
+    MyPrintf("please swiping card\n");
+    while (card_flag)
+    {
+        if (KEY_Scan() == KEY_CANCEL)
+        {
+            card_flag = 0;
+            iccard = 0;
+            ST7789_TFT_Clear_White(0, 28, TFT_COL, TFT_ROW);
+            ST7789_TFT_ShowString(10, 30,  80,  16, "1.MSR", 32, 1, WHITE, OLIVE);
+            ST7789_TFT_ShowString(10, 72,  80,  16, "2.NFC", 32, 1, WHITE, OLIVE);
+            ST7789_TFT_ShowString(10, 114, 128, 16, "3.ICCARD", 32, 1, WHITE, OLIVE);
+        }
+        else
+        {
+            if (GPIO_ReadInputDataBit((GPIO_TypeDef)sci_pin.detect.gpio_group, sci_pin.detect.gpio_pin) == 0 && swip_flag == 0)
+            {
+                if (ISO7816_CardDet() == 1)
+                {
+                    swip_flag = 1;
+                    if ((g_7816Para.aAtr[1] == 0x3b) || (g_7816Para.aAtr[1] == 0x3f))
+                    {
+                        ST7789_TFT_ShowString(56, 145, 208, 16, "SWIP SUCCESS!", 32, 1, WHITE, BLACK);
+                        BEEP_Start();
+                        delay_ms(200);
+                        BEEP_End();
+                    }
+                }
+            }
+            else
+            {
+                swip_flag = 0;
+            }
+        }
+    }
 }
 
 static void card_test_switch(uint8_t key)
 {
-	switch (key)
-	{
-		case KEY_CANCEL:
-			changeFlag = 0;
-			Display_InterfaceWindow();
-			break;
-		case KEY_NUM_1:
-			msr = 1;
-			MSR_Test();
-			break;
-		case KEY_NUM_2:
-			nfc = 1;
-			NFC_Test();
-			break;
-		case KEY_NUM_3:
-			iccard = 1;
-			ICCARD_Test();
-			break;
-		default:
-			break;
-	}
+    switch (key)
+    {
+    case KEY_CANCEL:
+        changeFlag = 0;
+        Display_InterfaceWindow();
+        break;
+    case KEY_NUM_1:
+        msr = 1;
+        MSR_Test();
+        break;
+    case KEY_NUM_2:
+        nfc = 1;
+        NFC_Test();
+        break;
+    case KEY_NUM_3:
+        iccard = 1;
+        ICCARD_Test();
+        break;
+    default:
+        break;
+    }
 }
 
 static void Display_cardtest(void)
 {
-	if (changeFlag == 0)
-	{
-		ST7789_TFT_Clear_White(0, 28, TFT_COL, TFT_ROW);
-		ST7789_TFT_ShowString(10, 30,  80,  16, "1.MSR", 32, 1, WHITE, OLIVE);
-		ST7789_TFT_ShowString(10, 72,  80,  16, "2.NFC", 32, 1, WHITE, OLIVE);
-		ST7789_TFT_ShowString(10, 114, 128, 16, "3.ICCARD", 32, 1, WHITE, OLIVE);
-		changeFlag = 1;
-		KEY_Scan_check();
-	}
-	while (changeFlag)
-	{
-		card_test_switch(KEY_Scan());
-	}
+    if (changeFlag == 0)
+    {
+        ST7789_TFT_Clear_White(0, 28, TFT_COL, TFT_ROW);
+        ST7789_TFT_ShowString(10, 30,  80,  16, "1.MSR", 32, 1, WHITE, OLIVE);
+        ST7789_TFT_ShowString(10, 72,  80,  16, "2.NFC", 32, 1, WHITE, OLIVE);
+        ST7789_TFT_ShowString(10, 114, 128, 16, "3.ICCARD", 32, 1, WHITE, OLIVE);
+        changeFlag = 1;
+        KEY_Scan_check();
+    }
+    while (changeFlag)
+    {
+        card_test_switch(KEY_Scan());
+    }
 }
 
 static void Display_picturetest(void)
 {
-	uint32_t i = 0;
+    uint32_t i = 0;
 
-	if (changeFlag == 0)
-	{
-		changeFlag = 1;
-		KEY_Scan_check();
-	}
-
-	while (changeFlag)
-	{
-		ST7789_TFT_Picture_Q(0, 0, gImage_pic_test1);
-		while (i < 10)
-		{
-			i++;
-			switch (KEY_Scan())
-			{
-				case KEY_CANCEL:
-					changeFlag = 0;
-					ST7789_TFT_Clear_White(0, 0, TFT_COL, 30);
-					ST7789_TFT_Clear_White(0, 28, TFT_COL, TFT_ROW);
-					ST7789_TFT_Draw_Piece(0, 27, TFT_COL, 28, DGRAY);
-					goto bk;
-					break;
-				default:
-					break;
-			}
-		}
-		i = 0;
-		ST7789_TFT_Picture_Q(0, 0, gImage_pic_test2);
-		while (i < 10)
-		{
-			i++;
-			switch (KEY_Scan())
-			{
-				case KEY_CANCEL:
-					changeFlag = 0;
-					ST7789_TFT_Clear_White(0, 0, TFT_COL, 30);
-					ST7789_TFT_Clear_White(0, 28, TFT_COL, TFT_ROW);
-					ST7789_TFT_Draw_Piece(0, 27, TFT_COL, 28, DGRAY);
-					goto bk;
-					break;
-				default:
-					break;
-			}
-		}
-		i = 0;
-	}
+    if (changeFlag == 0)
+    {
+        changeFlag = 1;
+        KEY_Scan_check();
+    }
+
+    while (changeFlag)
+    {
+        ST7789_TFT_Picture_Q(0, 0, gImage_pic_test1);
+        while (i < 10)
+        {
+            i++;
+            switch (KEY_Scan())
+            {
+            case KEY_CANCEL:
+                changeFlag = 0;
+                ST7789_TFT_Clear_White(0, 0, TFT_COL, 30);
+                ST7789_TFT_Clear_White(0, 28, TFT_COL, TFT_ROW);
+                ST7789_TFT_Draw_Piece(0, 27, TFT_COL, 28, DGRAY);
+                goto bk;
+                break;
+            default:
+                break;
+            }
+        }
+        i = 0;
+        ST7789_TFT_Picture_Q(0, 0, gImage_pic_test2);
+        while (i < 10)
+        {
+            i++;
+            switch (KEY_Scan())
+            {
+            case KEY_CANCEL:
+                changeFlag = 0;
+                ST7789_TFT_Clear_White(0, 0, TFT_COL, 30);
+                ST7789_TFT_Clear_White(0, 28, TFT_COL, TFT_ROW);
+                ST7789_TFT_Draw_Piece(0, 27, TFT_COL, 28, DGRAY);
+                goto bk;
+                break;
+            default:
+                break;
+            }
+        }
+        i = 0;
+    }
 bk:
-	Display_InterfaceWindow();
-	TFT_Power_scan();
-	TFT_Single_scan();
+    Display_InterfaceWindow();
+    TFT_Power_scan();
+    TFT_Single_scan();
 }
 /*************************************************QR_Code start*****************************************************************/
- #include "YC_QRDecode.h"
- #include "YC_QRDecode_TypeDef.h"
-uint8_t get_gpio_num(uint16_t groupx,uint16_t pinx)
-{
-	for(int i=0;i<GPIO_PIN_NUM;i++)
-	{
-		if((1<<i)==pinx)
-		{
-			return (uint8_t)(groupx*GPIO_PIN_NUM+i);
-		}
-	}
+#include "YC_QRDecode.h"
+#include "YC_QRDecode_TypeDef.h"
+uint8_t get_gpio_num(uint16_t groupx, uint16_t pinx)
+{
+    for (int i = 0; i < GPIO_PIN_NUM; i++)
+    {
+        if ((1 << i) == pinx)
+        {
+            return (uint8_t)(groupx * GPIO_PIN_NUM + i);
+        }
+    }
 }
 
 uint8_t camera_setpara[][2] =
@@ -659,148 +696,148 @@
 };
 void QRCode_test1()
 {
-		uint32_t len = 0;
-		uint8_t show_messsage_len =0;
-		int8_t QR_Enter_Ret = 0,message[1024]={0};
-		uint32_t i = 0;
-		QRDecode_Config_CB  p_QRDecode_Config;
-		
-		QSPI_CTRL  |=  (0x80);//设置half clk
-		
-		/*Enable GPIO32 FUC*/
-		uint32_t value = lpm_bt_read(LPMBT_CONTROL1);
-		value &= ~(1<<17);
-		lpm_bt_write(LPMBT_CONTROL1, value);
-		
-		p_QRDecode_Config.lcd_configCB.is_tft      = TRUE;
-		p_QRDecode_Config.lcd_configCB.is_init_lcd = TRUE;
-		p_QRDecode_Config.lcd_configCB.lcd_pin_rst = get_gpio_num(ST7789_TFT_RST_PORT,ST7789_TFT_RST_PIN);
-		p_QRDecode_Config.lcd_configCB.lcd_pin_cs  = get_gpio_num(ST7789_TFT_CS_PORT,ST7789_TFT_CS_PIN);
-		p_QRDecode_Config.lcd_configCB.lcd_pin_clk = get_gpio_num(ST7789_TFT_SCL_PORT,ST7789_TFT_SCL_PIN);
-		p_QRDecode_Config.lcd_configCB.lcd_pin_mosi= get_gpio_num(ST7789_TFT_SDA_PORT,ST7789_TFT_SDA_PIN);
-		p_QRDecode_Config.lcd_configCB.lcd_pin_a0  = get_gpio_num(ST7789_TFT_A0_PORT,ST7789_TFT_A0_PIN);
-		p_QRDecode_Config.lcd_configCB.lcd_pin_bl  = get_gpio_num(ST7789_TFT_BL_PORT,ST7789_TFT_BL_PIN) | (ST7789_TFT_BL_HIGH_LIGHT << 7);
-
-		p_QRDecode_Config.keyboard_configCB.mode=0;
-		p_QRDecode_Config.keyboard_configCB.line_num=6;
-		p_QRDecode_Config.keyboard_configCB.col_num=0;
-		p_QRDecode_Config.keyboard_configCB.cancel_position=(5<<4)|6;
-		p_QRDecode_Config.keyboard_configCB.line1=get_gpio_num(KEY_PORT_1,KEY_PIN_1);
-		p_QRDecode_Config.keyboard_configCB.line2=get_gpio_num(KEY_PORT_2,KEY_PIN_2);
-		p_QRDecode_Config.keyboard_configCB.line3=get_gpio_num(KEY_PORT_3,KEY_PIN_3);
-		p_QRDecode_Config.keyboard_configCB.line4=get_gpio_num(KEY_PORT_4,KEY_PIN_4);
-		p_QRDecode_Config.keyboard_configCB.line5=get_gpio_num(KEY_PORT_5,KEY_PIN_5);
-		p_QRDecode_Config.keyboard_configCB.line6=get_gpio_num(KEY_PORT_6,KEY_PIN_6);
-		
-		p_QRDecode_Config.camera_configCB.camera_type = UNKNOW;
-		p_QRDecode_Config.camera_configCB.freq_mclk   = 24;
-		p_QRDecode_Config.camera_configCB.pin_sda   =CAMERA_SDA;
-		p_QRDecode_Config.camera_configCB.pin_scl   =CAMERA_SCL;
-		p_QRDecode_Config.camera_configCB.pin_reset =CAMERA_RST;
-		p_QRDecode_Config.camera_configCB.pin_pwdn  =CAMERA_PD;
-		p_QRDecode_Config.camera_configCB.pin_mclk  =CAMERA_MCLK;
-		p_QRDecode_Config.camera_configCB.pin_pclk  =CAMERA_PCLK;
-		p_QRDecode_Config.camera_configCB.pin_data  =CAMERA_DATA;
-		p_QRDecode_Config.camera_configCB.pin_cs    =CAMERA_CS;
-		p_QRDecode_Config.camera_configCB.camera_setparaCB.camera_setpara_num = sizeof(camera_setpara)/2;
-		MyPrintf("camera_setpara_num=%x\n",sizeof(camera_setpara)/2);
-		for(uint8_t i=0;i < p_QRDecode_Config.camera_configCB.camera_setparaCB.camera_setpara_num;i++)
-		{
-			p_QRDecode_Config.camera_configCB.camera_setparaCB.camera_setpara[i][0] = camera_setpara[i][0];
-			p_QRDecode_Config.camera_configCB.camera_setparaCB.camera_setpara[i][1] = camera_setpara[i][1];
-		}
-		p_QRDecode_Config.flash_backup_addr = 0x1000000 + 4 *200 * 1024;
-		p_QRDecode_Config.timeout = 30;
-		
-		st7789_tft_clear(WHITE);
-		QR_Enter_Ret = YC_QRDecode(&p_QRDecode_Config,&len,message);
-		MyPrintf("\nQR_Enter_Ret = %d",QR_Enter_Ret);
-		
-		st7789_tft_clear(WHITE);
-		
-		if(QR_Enter_Ret ==  QR_SUCCESS) 
-		{
-				MyPrintf("\nEnterQRDecode End \r\n");
-				MyPrintf("len=%d\r\n",len);
-				message[len]=0;
-				MyPrintf("message:%s\r\n",message);
-				if(len > 250) show_messsage_len = 250;
-				else show_messsage_len = len;
-				ST7789_TFT_ShowString(0, 0, show_messsage_len*12,  12, message, 24, 1, WHITE, OLIVE);
-				BEEP_Start();
-				delay_ms(200);
-				BEEP_End();
-				return;
-		}
-		switch(QR_Enter_Ret)
-		{
-			case QR_CANCEL:
-				ST7789_TFT_ShowString(50, 100, 12*sizeof("QR_CANCEL"), 12, "QR_CANCEL", 24, 1, WHITE, MAROON);
-				break;
-			case QR_CAMERA_PWM_INIT_FAIL:
-				ST7789_TFT_ShowString(50, 100, 12*sizeof("QR_CAMERA_PWM_INIT_FAIL"), 12, "QR_CAMERA_PWM_INIT_FAIL", 24, 1, WHITE, MAROON);
-				break;
-			case QR_CAMERA_IIC_INIT_FAIL:
-				ST7789_TFT_ShowString(50, 100, 12*sizeof("QR_CAMERA_IIC_INIT_FAIL"), 12, "QR_CAMERA_IIC_INIT_FAIL", 24, 1, WHITE, MAROON);
-				break;
-			case QR_CAMERA_OPEN_FAIL:
-				ST7789_TFT_ShowString(50, 100, 12*sizeof("QR_CAMERA_OPEN_FAIL"), 12, "QR_CAMERA_OPEN_FAIL", 24, 1, WHITE, MAROON);
-				break;
-			case QR_CAMERA_READ_FAIL:
-				ST7789_TFT_ShowString(50, 100, 12*sizeof("QR_CAMERA_READ_FAIL"), 12, "QR_CAMERA_READ_FAIL", 24, 1, WHITE, MAROON);
-				break;
-			case QR_KEY_PARA_FAIL:
-				ST7789_TFT_ShowString(50, 100, 12*sizeof("QR_KEY_PARA_FAIL"), 12, "QR_KEY_PARA_FAIL", 24, 1, WHITE, MAROON);
-				break;
-			case QR_CANCEL_KEY:
-				ST7789_TFT_ShowString(50, 100, 12*sizeof("QR_CANCEL_KEY"), 12, "QR_CANCEL_KEY", 24, 1, WHITE, MAROON);
-				break;
-			case QR_CANCEL_TIMEOUT:
-				ST7789_TFT_ShowString(50, 100, 12*sizeof("QR_CANCEL_TIMEOUT"), 12, "QR_CANCEL_TIMEOUT", 24, 1, WHITE, MAROON);
-				break;
-			default:
-				ST7789_TFT_ShowString(50, 100, 12*sizeof("UNUSUAL"), 21, "UNUSUAL", 24, 1, WHITE, MAROON);
-				break;
-		}
-		ST7789_TFT_ShowChinese(100, 1, Yichip_ch, 24, 5, 1, WHITE, OLIVE);
-		ST7789_TFT_Draw_Piece(0, 27, TFT_COL, 28, DGRAY);
-		TFT_Power_scan();
-		TFT_Single_scan();
-		BEEP_Start();
-		delay_ms(100);
-		BEEP_End();
-		delay_ms(50);
-		BEEP_Start();
-		delay_ms(100);
-		BEEP_End();
-		delay_ms(50);
-		BEEP_Start();
-		delay_ms(100);
-		BEEP_End();
-		return ;
+    uint32_t len = 0;
+    uint8_t show_messsage_len = 0;
+    int8_t QR_Enter_Ret = 0, message[1024] = {0};
+    uint32_t i = 0;
+    QRDecode_Config_CB  p_QRDecode_Config;
+
+    QSPI_CTRL  |= (0x80); //设置half clk
+
+    /*Enable GPIO32 FUC*/
+    uint32_t value = lpm_bt_read(LPMBT_CONTROL1);
+    value &= ~(1 << 17);
+    lpm_bt_write(LPMBT_CONTROL1, value);
+
+    p_QRDecode_Config.lcd_configCB.is_tft      = TRUE;
+    p_QRDecode_Config.lcd_configCB.is_init_lcd = TRUE;
+    p_QRDecode_Config.lcd_configCB.lcd_pin_rst = get_gpio_num(ST7789_TFT_RST_PORT, ST7789_TFT_RST_PIN);
+    p_QRDecode_Config.lcd_configCB.lcd_pin_cs  = get_gpio_num(ST7789_TFT_CS_PORT, ST7789_TFT_CS_PIN);
+    p_QRDecode_Config.lcd_configCB.lcd_pin_clk = get_gpio_num(ST7789_TFT_SCL_PORT, ST7789_TFT_SCL_PIN);
+    p_QRDecode_Config.lcd_configCB.lcd_pin_mosi = get_gpio_num(ST7789_TFT_SDA_PORT, ST7789_TFT_SDA_PIN);
+    p_QRDecode_Config.lcd_configCB.lcd_pin_a0  = get_gpio_num(ST7789_TFT_A0_PORT, ST7789_TFT_A0_PIN);
+    p_QRDecode_Config.lcd_configCB.lcd_pin_bl  = get_gpio_num(ST7789_TFT_BL_PORT, ST7789_TFT_BL_PIN) | (ST7789_TFT_BL_HIGH_LIGHT << 7);
+
+    p_QRDecode_Config.keyboard_configCB.mode = 0;
+    p_QRDecode_Config.keyboard_configCB.line_num = 6;
+    p_QRDecode_Config.keyboard_configCB.col_num = 0;
+    p_QRDecode_Config.keyboard_configCB.cancel_position = (5 << 4) | 6;
+    p_QRDecode_Config.keyboard_configCB.line1 = get_gpio_num(KEY_PORT_1, KEY_PIN_1);
+    p_QRDecode_Config.keyboard_configCB.line2 = get_gpio_num(KEY_PORT_2, KEY_PIN_2);
+    p_QRDecode_Config.keyboard_configCB.line3 = get_gpio_num(KEY_PORT_3, KEY_PIN_3);
+    p_QRDecode_Config.keyboard_configCB.line4 = get_gpio_num(KEY_PORT_4, KEY_PIN_4);
+    p_QRDecode_Config.keyboard_configCB.line5 = get_gpio_num(KEY_PORT_5, KEY_PIN_5);
+    p_QRDecode_Config.keyboard_configCB.line6 = get_gpio_num(KEY_PORT_6, KEY_PIN_6);
+
+    p_QRDecode_Config.camera_configCB.camera_type = UNKNOW;
+    p_QRDecode_Config.camera_configCB.freq_mclk   = 24;
+    p_QRDecode_Config.camera_configCB.pin_sda   = CAMERA_SDA;
+    p_QRDecode_Config.camera_configCB.pin_scl   = CAMERA_SCL;
+    p_QRDecode_Config.camera_configCB.pin_reset = CAMERA_RST;
+    p_QRDecode_Config.camera_configCB.pin_pwdn  = CAMERA_PD;
+    p_QRDecode_Config.camera_configCB.pin_mclk  = CAMERA_MCLK;
+    p_QRDecode_Config.camera_configCB.pin_pclk  = CAMERA_PCLK;
+    p_QRDecode_Config.camera_configCB.pin_data  = CAMERA_DATA;
+    p_QRDecode_Config.camera_configCB.pin_cs    = CAMERA_CS;
+    p_QRDecode_Config.camera_configCB.camera_setparaCB.camera_setpara_num = sizeof(camera_setpara) / 2;
+    MyPrintf("camera_setpara_num=%x\n", sizeof(camera_setpara) / 2);
+    for (uint8_t i = 0; i < p_QRDecode_Config.camera_configCB.camera_setparaCB.camera_setpara_num; i++)
+    {
+        p_QRDecode_Config.camera_configCB.camera_setparaCB.camera_setpara[i][0] = camera_setpara[i][0];
+        p_QRDecode_Config.camera_configCB.camera_setparaCB.camera_setpara[i][1] = camera_setpara[i][1];
+    }
+    p_QRDecode_Config.flash_backup_addr = 0x1000000 + 4 * 200 * 1024;
+    p_QRDecode_Config.timeout = 30;
+
+    st7789_tft_clear(WHITE);
+    QR_Enter_Ret = YC_QRDecode(&p_QRDecode_Config, &len, message);
+    MyPrintf("\nQR_Enter_Ret = %d", QR_Enter_Ret);
+
+    st7789_tft_clear(WHITE);
+
+    if (QR_Enter_Ret ==  QR_SUCCESS)
+    {
+        MyPrintf("\nEnterQRDecode End \r\n");
+        MyPrintf("len=%d\r\n", len);
+        message[len] = 0;
+        MyPrintf("message:%s\r\n", message);
+        if (len > 250) show_messsage_len = 250;
+        else show_messsage_len = len;
+        ST7789_TFT_ShowString(0, 0, show_messsage_len * 12,  12, message, 24, 1, WHITE, OLIVE);
+        BEEP_Start();
+        delay_ms(200);
+        BEEP_End();
+        return;
+    }
+    switch (QR_Enter_Ret)
+    {
+    case QR_CANCEL:
+        ST7789_TFT_ShowString(50, 100, 12 * sizeof("QR_CANCEL"), 12, "QR_CANCEL", 24, 1, WHITE, MAROON);
+        break;
+    case QR_CAMERA_PWM_INIT_FAIL:
+        ST7789_TFT_ShowString(50, 100, 12 * sizeof("QR_CAMERA_PWM_INIT_FAIL"), 12, "QR_CAMERA_PWM_INIT_FAIL", 24, 1, WHITE, MAROON);
+        break;
+    case QR_CAMERA_IIC_INIT_FAIL:
+        ST7789_TFT_ShowString(50, 100, 12 * sizeof("QR_CAMERA_IIC_INIT_FAIL"), 12, "QR_CAMERA_IIC_INIT_FAIL", 24, 1, WHITE, MAROON);
+        break;
+    case QR_CAMERA_OPEN_FAIL:
+        ST7789_TFT_ShowString(50, 100, 12 * sizeof("QR_CAMERA_OPEN_FAIL"), 12, "QR_CAMERA_OPEN_FAIL", 24, 1, WHITE, MAROON);
+        break;
+    case QR_CAMERA_READ_FAIL:
+        ST7789_TFT_ShowString(50, 100, 12 * sizeof("QR_CAMERA_READ_FAIL"), 12, "QR_CAMERA_READ_FAIL", 24, 1, WHITE, MAROON);
+        break;
+    case QR_KEY_PARA_FAIL:
+        ST7789_TFT_ShowString(50, 100, 12 * sizeof("QR_KEY_PARA_FAIL"), 12, "QR_KEY_PARA_FAIL", 24, 1, WHITE, MAROON);
+        break;
+    case QR_CANCEL_KEY:
+        ST7789_TFT_ShowString(50, 100, 12 * sizeof("QR_CANCEL_KEY"), 12, "QR_CANCEL_KEY", 24, 1, WHITE, MAROON);
+        break;
+    case QR_CANCEL_TIMEOUT:
+        ST7789_TFT_ShowString(50, 100, 12 * sizeof("QR_CANCEL_TIMEOUT"), 12, "QR_CANCEL_TIMEOUT", 24, 1, WHITE, MAROON);
+        break;
+    default:
+        ST7789_TFT_ShowString(50, 100, 12 * sizeof("UNUSUAL"), 21, "UNUSUAL", 24, 1, WHITE, MAROON);
+        break;
+    }
+    ST7789_TFT_ShowChinese(100, 1, Yichip_ch, 24, 5, 1, WHITE, OLIVE);
+    ST7789_TFT_Draw_Piece(0, 27, TFT_COL, 28, DGRAY);
+    TFT_Power_scan();
+    TFT_Single_scan();
+    BEEP_Start();
+    delay_ms(100);
+    BEEP_End();
+    delay_ms(50);
+    BEEP_Start();
+    delay_ms(100);
+    BEEP_End();
+    delay_ms(50);
+    BEEP_Start();
+    delay_ms(100);
+    BEEP_End();
+    return ;
 }
 
 void QRCode_test()
 {
-		uint8_t keyCode;
-		while (1)
-		{
-			QRCode_test1();
-			ST7789_TFT_ShowString(0, 200, sizeof("CANCEL             CONFIRM")*12,  12, "CANCEL             CONFIRM", 24, 1, WHITE, OLIVE);
-			while(1)
-			{
-				keyCode = KEY_Scan();
-				if(keyCode==KEY_CANCEL)
-				{
-					Display_InterfaceWindow();
-					return;//退出扫码
-				}
-				else if(keyCode==KEY_CONFIRM)
-				{
-					break; // 继续扫码
-				}
-			}
-		}
+    uint8_t keyCode;
+    while (1)
+    {
+        QRCode_test1();
+        ST7789_TFT_ShowString(0, 200, sizeof("CANCEL             CONFIRM") * 12,  12, "CANCEL             CONFIRM", 24, 1, WHITE, OLIVE);
+        while (1)
+        {
+            keyCode = KEY_Scan();
+            if (keyCode == KEY_CANCEL)
+            {
+                Display_InterfaceWindow();
+                return;//退出扫码
+            }
+            else if (keyCode == KEY_CONFIRM)
+            {
+                break; // 继续扫码
+            }
+        }
+    }
 }
 /*************************************************QR_Code end*****************************************************************/
 /**
@@ -810,10 +847,10 @@
   */
 static void ADC_Configuration(void)
 {
-	ADC_InitTypeDef ADCInitStruct;
-	ADCInitStruct.ADC_Mode = ADC_GPIO;
-	ADCInitStruct.ADC_Channel = ADC_CHANNEL_6;
-	ADC_Init(&ADCInitStruct);
+    ADC_InitTypeDef ADCInitStruct;
+    ADCInitStruct.ADC_Mode = ADC_GPIO;
+    ADCInitStruct.ADC_Channel = ADC_CHANNEL_6;
+    ADC_Init(&ADCInitStruct);
 }
 
 #define GPIO_AD_MAXVALUE 0x7fe
@@ -825,347 +862,347 @@
 
 static void Display_touch(void)
 {
-	uint8_t cb_flag = 0;
-	uint8_t calibrated = 0;
-	uint8_t Difference_x =0, Difference_y = 0;
-
-	ADC_Configuration();
-	//保存上拉检测的AD值
-	_touch.Adc_Max = GPIO_AD_MAXVALUE;
-
-	if (changeFlag == 0)
-	{
-		ST7789_TFT_Clear_White(0, 28, TFT_COL, TFT_ROW);
-		ST7789_TFT_ShowChinese(56, 36, calibrated_ch, 32, 7, 1, WHITE, RED);
-		St7789_tft_DrawRectangle(115, 88, 205, 129, BLACK);
-		ST7789_TFT_ShowChinese(136, 89, confirm_ch, 24, 2, 1, WHITE, MAROON);
-		ST7789_TFT_ShowString(132, 113,  56,  8, "CONFIRM", 16, 1, WHITE, MAROON);
-		St7789_tft_DrawRectangle(115, 136, 205, 177, BLACK);
-		ST7789_TFT_ShowChinese(136, 137, cancel_ch, 24, 2, 1, WHITE, MAROON);
-		ST7789_TFT_ShowString(136, 161,  48,  8, "CANCEL", 16, 1, WHITE, MAROON);
-		St7789_tft_DrawRectangle(115, 184, 205, 225, BLACK);
-		ST7789_TFT_ShowChinese(136, 185, clear_ch, 24, 2, 1, WHITE, MAROON);
-		ST7789_TFT_ShowString(140, 209,  48,  8, "CLEAR", 16, 1, WHITE, MAROON);
-		cb_flag = 1;
-		KEY_Scan_check();
-	}
-	while (cb_flag)
-	{
-		switch (KEY_Scan())
-		{
-			case KEY_CONFIRM:
-				cb_flag = 0;
-				changeFlag = 1;
-				calibrated = 1;
-				ST7789_TFT_ShowChinese(136, 89, confirm_ch, 24, 2, 0, YELLOW, MAROON);
-				ST7789_TFT_ShowString(132, 113,  56,  8, "CONFIRM", 16, 0, YELLOW, MAROON);
-				KEY_Scan_check();
-				break;
-			case KEY_CANCEL:
-				cb_flag = 0;
-				changeFlag = 1;
-				ST7789_TFT_ShowChinese(136, 137, cancel_ch, 24, 2, 0, YELLOW, MAROON);
-				ST7789_TFT_ShowString(136, 161,  48,  8, "CANCEL", 16, 0, YELLOW, MAROON);
-				ST7789_TFT_Clear_White(0, 28, TFT_COL, TFT_ROW);
+    uint8_t cb_flag = 0;
+    uint8_t calibrated = 0;
+    uint8_t Difference_x = 0, Difference_y = 0;
+
+    ADC_Configuration();
+    //保存上拉检测的AD值
+    _touch.Adc_Max = GPIO_AD_MAXVALUE;
+
+    if (changeFlag == 0)
+    {
+        ST7789_TFT_Clear_White(0, 28, TFT_COL, TFT_ROW);
+        ST7789_TFT_ShowChinese(56, 36, calibrated_ch, 32, 7, 1, WHITE, RED);
+        St7789_tft_DrawRectangle(115, 88, 205, 129, BLACK);
+        ST7789_TFT_ShowChinese(136, 89, confirm_ch, 24, 2, 1, WHITE, MAROON);
+        ST7789_TFT_ShowString(132, 113,  56,  8, "CONFIRM", 16, 1, WHITE, MAROON);
+        St7789_tft_DrawRectangle(115, 136, 205, 177, BLACK);
+        ST7789_TFT_ShowChinese(136, 137, cancel_ch, 24, 2, 1, WHITE, MAROON);
+        ST7789_TFT_ShowString(136, 161,  48,  8, "CANCEL", 16, 1, WHITE, MAROON);
+        St7789_tft_DrawRectangle(115, 184, 205, 225, BLACK);
+        ST7789_TFT_ShowChinese(136, 185, clear_ch, 24, 2, 1, WHITE, MAROON);
+        ST7789_TFT_ShowString(140, 209,  48,  8, "CLEAR", 16, 1, WHITE, MAROON);
+        cb_flag = 1;
+        KEY_Scan_check();
+    }
+    while (cb_flag)
+    {
+        switch (KEY_Scan())
+        {
+        case KEY_CONFIRM:
+            cb_flag = 0;
+            changeFlag = 1;
+            calibrated = 1;
+            ST7789_TFT_ShowChinese(136, 89, confirm_ch, 24, 2, 0, YELLOW, MAROON);
+            ST7789_TFT_ShowString(132, 113,  56,  8, "CONFIRM", 16, 0, YELLOW, MAROON);
+            KEY_Scan_check();
+            break;
+        case KEY_CANCEL:
+            cb_flag = 0;
+            changeFlag = 1;
+            ST7789_TFT_ShowChinese(136, 137, cancel_ch, 24, 2, 0, YELLOW, MAROON);
+            ST7789_TFT_ShowString(136, 161,  48,  8, "CANCEL", 16, 0, YELLOW, MAROON);
+            ST7789_TFT_Clear_White(0, 28, TFT_COL, TFT_ROW);
 #if 1
-				_touchpanel.xfac = 102;
-				_touchpanel.yfac = 84;
-				_touchpanel.xbase = 30;
-				_touchpanel.ybase = 30;
-				_touchpanel.xlogic = 29;
-				_touchpanel.ylogic = 83;
-#else			
-				_touchpanel.xfac = 96;
-				_touchpanel.yfac = 114;
-				_touchpanel.xbase = 30;
-				_touchpanel.ybase = 30;
-				_touchpanel.xlogic = 51;
-				_touchpanel.ylogic = 26;
+            _touchpanel.xfac = 102;
+            _touchpanel.yfac = 84;
+            _touchpanel.xbase = 30;
+            _touchpanel.ybase = 30;
+            _touchpanel.xlogic = 29;
+            _touchpanel.ylogic = 83;
+#else
+            _touchpanel.xfac = 96;
+            _touchpanel.yfac = 114;
+            _touchpanel.xbase = 30;
+            _touchpanel.ybase = 30;
+            _touchpanel.xlogic = 51;
+            _touchpanel.ylogic = 26;
 #endif
-				St7789_tft_DrawRectangle(5, 60 , 315, 180, RED);
-				St7789_tft_DrawRectangle(6, 61 , 314, 179, RED);
-				St7789_tft_DrawRectangle(7, 62 , 313, 178, RED);
-				St7789_tft_DrawRectangle(10, 240-5 , 100, 240-50,BLACK);
-				St7789_tft_DrawRectangle(320-100, 240-5 , 320-10, 240-50,BLACK);
-				ST7789_TFT_ShowString(10+3,240-45,80,16,"Clear",32, 1, WHITE, PURPLE);
-				ST7789_TFT_ShowString(320-95,240-47,64,16,"Save",32, 1, WHITE, PURPLE);
-				KEY_Scan_check();
-				break;
-			case KEY_CLEAR:
-				cb_flag = 0;
-				ST7789_TFT_ShowChinese(136, 185, clear_ch, 24, 2, 0, YELLOW, MAROON);
-				ST7789_TFT_ShowString(140, 209,  48,  8, "CLEAR", 16, 0, YELLOW, MAROON);
-				KEY_Scan_check();
-				break;
-			default:
-				break;
-		}
-	}
-
-	while(calibrated == 1)
-	{
-		ST7789_TFT_Clear_White(0,0,TFT_COL,TFT_ROW);
-		if(TP_UpdateCoordVal() == 1)
-		{
-				calibrated = 0;	
-				St7789_tft_DrawRectangle(5, 60 , 315, 180, RED);
-				St7789_tft_DrawRectangle(6, 61 , 314, 179, RED);
-				St7789_tft_DrawRectangle(7, 62 , 313, 178, RED);
-				St7789_tft_DrawRectangle(10, 240-5 , 100, 240-50,BLACK);
-				St7789_tft_DrawRectangle(320-100, 240-5 , 320-10, 240-50,BLACK);
-				ST7789_TFT_ShowString(10+3,240-45,80,16,"Clear",32, 1, WHITE, PURPLE);
-				ST7789_TFT_ShowString(320-95,240-47,64,16,"Save",32, 1, WHITE, PURPLE);
-				
-		}
-		else
-		{
-			ST7789_TFT_ShowString(0, 100,  16*20,  16, "Calibration failure", 32, 1, YELLOW, MAROON);
-			delay_ms(2000);
-			calibrated = 0;	
-			changeFlag = 0;
-		}
-		
-	}
-	if(changeFlag == 1)
-	{
-		ST7789_TFT_ShowChinese(100, 1, Yichip_ch, 24, 5, 1, WHITE, OLIVE);
-		ST7789_TFT_Draw_Piece(0, 27, TFT_COL, 28, DGRAY);
-		TFT_Power_scan();
-		TFT_Single_scan();
-	}
-	while (changeFlag == 1)
-	{
-		if(TP_DetectPressing() == 0)
-		{
-			//读取物理坐标值
-			TP_ReadXY();
-
-			if(TP_DetectPressing() == 1)
-			{
-				_touch.PressAgainFalg = 0;
-			}
-
-			//检测是否为连续按下的动作
-			if(_touch.PressAgainFalg == 2)
-			{
-				//如果是连续按下的点，计算上个点与当前点的偏差
-				if(_touchpanel.x > _touchpanel.ltx) Difference_x = _touchpanel.x - _touchpanel.ltx;
-				else Difference_x = _touchpanel.ltx - _touchpanel.x;
-				if(_touchpanel.y > _touchpanel.lty) Difference_y = _touchpanel.y - _touchpanel.lty;
-				else Difference_y = _touchpanel.lty - _touchpanel.y;
-
-				//如果偏差属于范围内，用线与该点连接
-				if( Difference_x < DIFFERENCE_X_MAX && Difference_y < DIFFERENCE_Y_MAX && _touchpanel.y >62 && _touchpanel.y <178 && _touchpanel.x > 7 && _touchpanel.x < 313)
-				{
-					St7899_tft_DrawLine(_touchpanel.ltx,_touchpanel.lty,_touchpanel.x,_touchpanel.y,BLACK);
-					St7899_tft_DrawLine(_touchpanel.ltx-1,_touchpanel.lty,_touchpanel.x-1,_touchpanel.y,BLACK);
-					St7899_tft_DrawLine(_touchpanel.ltx,_touchpanel.lty+1,_touchpanel.x,_touchpanel.y+1,BLACK);
-					St7899_tft_DrawLine(_touchpanel.ltx+1,_touchpanel.lty,_touchpanel.x+1,_touchpanel.y,BLACK);
-					St7899_tft_DrawLine(_touchpanel.ltx,_touchpanel.lty-1,_touchpanel.x,_touchpanel.y-1,BLACK);
-					St7899_tft_DrawLine(_touchpanel.ltx+2,_touchpanel.lty,_touchpanel.x+2,_touchpanel.y,BLACK);
-					St7899_tft_DrawLine(_touchpanel.ltx,_touchpanel.lty-2,_touchpanel.x,_touchpanel.y-2,BLACK);
-					_touchpanel.ltx = _touchpanel.x;
-					_touchpanel.lty = _touchpanel.y;
-				}
-				//如果偏差不属于范围内，但当前点在签名区域内，画出当前点
-				else if((_touchpanel.y >62 && _touchpanel.y <178 && _touchpanel.x > 7 && _touchpanel.x < 313))
-				{
-					_touchpanel.ltx = _touchpanel.x;
-					_touchpanel.lty = _touchpanel.y;
-				}
-				// 弃点
-				else{}
-
-			}
-			//触摸到清屏
-			else if((_touchpanel.x>10 && _touchpanel.x <100) && (_touchpanel.y < 235 && _touchpanel.y> 190))
-			{
-				St7789_tft_RectangleFill(10, 190 , 100, 235, OLIVE);
-				ST7789_TFT_ShowString(13,195,80,16,"Clear",32, 1, WHITE, PURPLE);
-				ST7789_TFT_Clear_White(8, 63 , 312,177);
-				if(TP_DetectPressing() == 1)
-				{
-					St7789_tft_RectangleFill(10, 190 , 100, 235,WHITE);
-					St7789_tft_DrawRectangle(10, 235 , 100, 190,BLACK);
-					ST7789_TFT_ShowString(13,195,80,16,"Clear",32, 1, WHITE, PURPLE);
-				}
-				St7789_tft_DrawRectangle(5, 60 , 315,180,RED);
-				St7789_tft_DrawRectangle(6, 61 , 314,179,RED);
-				St7789_tft_DrawRectangle(7, 62 , 313,178,RED);
-			}
-			else if((_touchpanel.x>220 && _touchpanel.x <310) && (_touchpanel.y < 235 && _touchpanel.y> 190))
-			{
-				St7789_tft_RectangleFill(220, 190 , 310, 235,OLIVE);
-				ST7789_TFT_ShowString(225,193,64,16,"Save",32, 1, WHITE, PURPLE);
-				ST7789_TFT_Clear_White(8, 63 , 312,177);
-				if(TP_DetectPressing() == 1)
-				{
-					St7789_tft_RectangleFill(220, 190 , 310, 235,WHITE);
-					St7789_tft_DrawRectangle(220, 235 , 310, 190,BLACK);
-					ST7789_TFT_ShowString(225,193,128,16,"Save",32, 1, WHITE, PURPLE);
-				}
-				ST7789_TFT_ShowString(50,80,160,16,"Saveing...",32, 1, WHITE, OLIVE);
-				delay_ms(1000);
-				changeFlag = 0;
-				break;
-			}
-			//第一次触摸
-			else if((_touchpanel.y >62 && _touchpanel.y <178 && _touchpanel.x > 7 && _touchpanel.x < 313))
-			{
-				_touch.PressAgainFalg++;
-				_touchpanel.ltx = _touchpanel.x;
-				_touchpanel.lty = _touchpanel.y;
-
-			}
-			else{}
-		}
-		else _touch.PressAgainFalg = 0;
-	}
-
-	ST7789_TFT_Clear_White(0, 28, TFT_COL, TFT_ROW);
-	Display_InterfaceWindow();
-	TFT_Power_scan();
-	TFT_Single_scan();
+            St7789_tft_DrawRectangle(5, 60, 315, 180, RED);
+            St7789_tft_DrawRectangle(6, 61, 314, 179, RED);
+            St7789_tft_DrawRectangle(7, 62, 313, 178, RED);
+            St7789_tft_DrawRectangle(10, 240 - 5, 100, 240 - 50, BLACK);
+            St7789_tft_DrawRectangle(320 - 100, 240 - 5, 320 - 10, 240 - 50, BLACK);
+            ST7789_TFT_ShowString(10 + 3, 240 - 45, 80, 16, "Clear", 32, 1, WHITE, PURPLE);
+            ST7789_TFT_ShowString(320 - 95, 240 - 47, 64, 16, "Save", 32, 1, WHITE, PURPLE);
+            KEY_Scan_check();
+            break;
+        case KEY_CLEAR:
+            cb_flag = 0;
+            ST7789_TFT_ShowChinese(136, 185, clear_ch, 24, 2, 0, YELLOW, MAROON);
+            ST7789_TFT_ShowString(140, 209,  48,  8, "CLEAR", 16, 0, YELLOW, MAROON);
+            KEY_Scan_check();
+            break;
+        default:
+            break;
+        }
+    }
+
+    while (calibrated == 1)
+    {
+        ST7789_TFT_Clear_White(0, 0, TFT_COL, TFT_ROW);
+        if (TP_UpdateCoordVal() == 1)
+        {
+            calibrated = 0;
+            St7789_tft_DrawRectangle(5, 60, 315, 180, RED);
+            St7789_tft_DrawRectangle(6, 61, 314, 179, RED);
+            St7789_tft_DrawRectangle(7, 62, 313, 178, RED);
+            St7789_tft_DrawRectangle(10, 240 - 5, 100, 240 - 50, BLACK);
+            St7789_tft_DrawRectangle(320 - 100, 240 - 5, 320 - 10, 240 - 50, BLACK);
+            ST7789_TFT_ShowString(10 + 3, 240 - 45, 80, 16, "Clear", 32, 1, WHITE, PURPLE);
+            ST7789_TFT_ShowString(320 - 95, 240 - 47, 64, 16, "Save", 32, 1, WHITE, PURPLE);
+
+        }
+        else
+        {
+            ST7789_TFT_ShowString(0, 100,  16 * 20,  16, "Calibration failure", 32, 1, YELLOW, MAROON);
+            delay_ms(2000);
+            calibrated = 0;
+            changeFlag = 0;
+        }
+
+    }
+    if (changeFlag == 1)
+    {
+        ST7789_TFT_ShowChinese(100, 1, Yichip_ch, 24, 5, 1, WHITE, OLIVE);
+        ST7789_TFT_Draw_Piece(0, 27, TFT_COL, 28, DGRAY);
+        TFT_Power_scan();
+        TFT_Single_scan();
+    }
+    while (changeFlag == 1)
+    {
+        if (TP_DetectPressing() == 0)
+        {
+            //读取物理坐标值
+            TP_ReadXY();
+
+            if (TP_DetectPressing() == 1)
+            {
+                _touch.PressAgainFalg = 0;
+            }
+
+            //检测是否为连续按下的动作
+            if (_touch.PressAgainFalg == 2)
+            {
+                //如果是连续按下的点，计算上个点与当前点的偏差
+                if (_touchpanel.x > _touchpanel.ltx) Difference_x = _touchpanel.x - _touchpanel.ltx;
+                else Difference_x = _touchpanel.ltx - _touchpanel.x;
+                if (_touchpanel.y > _touchpanel.lty) Difference_y = _touchpanel.y - _touchpanel.lty;
+                else Difference_y = _touchpanel.lty - _touchpanel.y;
+
+                //如果偏差属于范围内，用线与该点连接
+                if (Difference_x < DIFFERENCE_X_MAX && Difference_y < DIFFERENCE_Y_MAX && _touchpanel.y > 62 && _touchpanel.y < 178 && _touchpanel.x > 7 && _touchpanel.x < 313)
+                {
+                    St7899_tft_DrawLine(_touchpanel.ltx, _touchpanel.lty, _touchpanel.x, _touchpanel.y, BLACK);
+                    St7899_tft_DrawLine(_touchpanel.ltx - 1, _touchpanel.lty, _touchpanel.x - 1, _touchpanel.y, BLACK);
+                    St7899_tft_DrawLine(_touchpanel.ltx, _touchpanel.lty + 1, _touchpanel.x, _touchpanel.y + 1, BLACK);
+                    St7899_tft_DrawLine(_touchpanel.ltx + 1, _touchpanel.lty, _touchpanel.x + 1, _touchpanel.y, BLACK);
+                    St7899_tft_DrawLine(_touchpanel.ltx, _touchpanel.lty - 1, _touchpanel.x, _touchpanel.y - 1, BLACK);
+                    St7899_tft_DrawLine(_touchpanel.ltx + 2, _touchpanel.lty, _touchpanel.x + 2, _touchpanel.y, BLACK);
+                    St7899_tft_DrawLine(_touchpanel.ltx, _touchpanel.lty - 2, _touchpanel.x, _touchpanel.y - 2, BLACK);
+                    _touchpanel.ltx = _touchpanel.x;
+                    _touchpanel.lty = _touchpanel.y;
+                }
+                //如果偏差不属于范围内，但当前点在签名区域内，画出当前点
+                else if ((_touchpanel.y > 62 && _touchpanel.y < 178 && _touchpanel.x > 7 && _touchpanel.x < 313))
+                {
+                    _touchpanel.ltx = _touchpanel.x;
+                    _touchpanel.lty = _touchpanel.y;
+                }
+                // 弃点
+                else {}
+
+            }
+            //触摸到清屏
+            else if ((_touchpanel.x > 10 && _touchpanel.x < 100) && (_touchpanel.y < 235 && _touchpanel.y > 190))
+            {
+                St7789_tft_RectangleFill(10, 190, 100, 235, OLIVE);
+                ST7789_TFT_ShowString(13, 195, 80, 16, "Clear", 32, 1, WHITE, PURPLE);
+                ST7789_TFT_Clear_White(8, 63, 312, 177);
+                if (TP_DetectPressing() == 1)
+                {
+                    St7789_tft_RectangleFill(10, 190, 100, 235, WHITE);
+                    St7789_tft_DrawRectangle(10, 235, 100, 190, BLACK);
+                    ST7789_TFT_ShowString(13, 195, 80, 16, "Clear", 32, 1, WHITE, PURPLE);
+                }
+                St7789_tft_DrawRectangle(5, 60, 315, 180, RED);
+                St7789_tft_DrawRectangle(6, 61, 314, 179, RED);
+                St7789_tft_DrawRectangle(7, 62, 313, 178, RED);
+            }
+            else if ((_touchpanel.x > 220 && _touchpanel.x < 310) && (_touchpanel.y < 235 && _touchpanel.y > 190))
+            {
+                St7789_tft_RectangleFill(220, 190, 310, 235, OLIVE);
+                ST7789_TFT_ShowString(225, 193, 64, 16, "Save", 32, 1, WHITE, PURPLE);
+                ST7789_TFT_Clear_White(8, 63, 312, 177);
+                if (TP_DetectPressing() == 1)
+                {
+                    St7789_tft_RectangleFill(220, 190, 310, 235, WHITE);
+                    St7789_tft_DrawRectangle(220, 235, 310, 190, BLACK);
+                    ST7789_TFT_ShowString(225, 193, 128, 16, "Save", 32, 1, WHITE, PURPLE);
+                }
+                ST7789_TFT_ShowString(50, 80, 160, 16, "Saveing...", 32, 1, WHITE, OLIVE);
+                delay_ms(1000);
+                changeFlag = 0;
+                break;
+            }
+            //第一次触摸
+            else if ((_touchpanel.y > 62 && _touchpanel.y < 178 && _touchpanel.x > 7 && _touchpanel.x < 313))
+            {
+                _touch.PressAgainFalg++;
+                _touchpanel.ltx = _touchpanel.x;
+                _touchpanel.lty = _touchpanel.y;
+
+            }
+            else {}
+        }
+        else _touch.PressAgainFalg = 0;
+    }
+
+    ST7789_TFT_Clear_White(0, 28, TFT_COL, TFT_ROW);
+    Display_InterfaceWindow();
+    TFT_Power_scan();
+    TFT_Single_scan();
 }
 
 static void Display_expense(void)
 {
-	uint8_t key = 0;
-	uint8_t num[4] = {"0.00"};
+    uint8_t key = 0;
+    uint8_t num[4] = {"0.00"};
 
-	meunState = 0;
+    meunState = 0;
 
-	if (changeFlag == 0)
-	{
-		ST7789_TFT_Clear_White(0, 29, TFT_COL, TFT_ROW);
-		ST7789_TFT_Clear_Gary(0, 28, TFT_COL, 65);
-		ST7789_TFT_ShowChinese(112, 31, xiaofei_ch+128, 32, 3, 1, WHITE, BLACK);
-		ST7789_TFT_ShowChinese(72, 83, shurujinge_ch, 32, 6, 1, WHITE, OLIVE);
-		ST7789_TFT_ShowString(128, 136, 64, 16, num, 32, 1, WHITE, RED);
-		ST7789_TFT_ShowChinese(16, 198, shurucuowu_ch, 32, 9, 1, WHITE, OLIVE);
-		changeFlag = 1;
-		KEY_Scan_check();
-	}
-	while (changeFlag)
-	{
-		key = KEY_Scan();
-		switch (key)
-		{
-			case KEY_CANCEL:
-				changeFlag = 0;
-				Display_InterfaceWindow();
-				break;
-			default:
-				break;
-		}
-	}
+    if (changeFlag == 0)
+    {
+        ST7789_TFT_Clear_White(0, 29, TFT_COL, TFT_ROW);
+        ST7789_TFT_Clear_Gary(0, 28, TFT_COL, 65);
+        ST7789_TFT_ShowChinese(112, 31, xiaofei_ch + 128, 32, 3, 1, WHITE, BLACK);
+        ST7789_TFT_ShowChinese(72, 83, shurujinge_ch, 32, 6, 1, WHITE, OLIVE);
+        ST7789_TFT_ShowString(128, 136, 64, 16, num, 32, 1, WHITE, RED);
+        ST7789_TFT_ShowChinese(16, 198, shurucuowu_ch, 32, 9, 1, WHITE, OLIVE);
+        changeFlag = 1;
+        KEY_Scan_check();
+    }
+    while (changeFlag)
+    {
+        key = KEY_Scan();
+        switch (key)
+        {
+        case KEY_CANCEL:
+            changeFlag = 0;
+            Display_InterfaceWindow();
+            break;
+        default:
+            break;
+        }
+    }
 }
 
 static void MainWindow_switch(uint8_t keyvalue)
 {
-	switch (keyvalue)
-	{
-		case KEY_MENU:
-			meunState = 1;
-			Display_MainMeun();
-			break;
-		case KEY_NUM_0:
-			meunState = 2;
-			Display_expense();
-			break;
-		case KEY_NUM_1:
-			meunState = 2;
-			Display_expense();
-			break;
-		case KEY_NUM_2:
-			meunState = 2;
-			Display_expense();
-			break;
-		case KEY_NUM_3:
-			meunState = 2;
-			Display_expense();
-			break;
-		case KEY_NUM_4:
-			meunState = 2;
-			Display_expense();
-			break;
-		case KEY_NUM_5:
-			meunState = 2;
-			Display_expense();
-			break;
-		case KEY_NUM_6:
-			meunState = 2;
-			Display_expense();
-			break;
-		case KEY_NUM_7:
-			meunState = 2;
-			Display_expense();
-			break;
-		case KEY_NUM_8:
-			meunState = 2;
-			Display_expense();
-			break;
-		case KEY_NUM_9:
-			meunState = 2;
-			Display_expense();
-			break;
-		default:
-			break;
-	}
+    switch (keyvalue)
+    {
+    case KEY_MENU:
+        meunState = 1;
+        Display_MainMeun();
+        break;
+    case KEY_NUM_0:
+        meunState = 2;
+        Display_expense();
+        break;
+    case KEY_NUM_1:
+        meunState = 2;
+        Display_expense();
+        break;
+    case KEY_NUM_2:
+        meunState = 2;
+        Display_expense();
+        break;
+    case KEY_NUM_3:
+        meunState = 2;
+        Display_expense();
+        break;
+    case KEY_NUM_4:
+        meunState = 2;
+        Display_expense();
+        break;
+    case KEY_NUM_5:
+        meunState = 2;
+        Display_expense();
+        break;
+    case KEY_NUM_6:
+        meunState = 2;
+        Display_expense();
+        break;
+    case KEY_NUM_7:
+        meunState = 2;
+        Display_expense();
+        break;
+    case KEY_NUM_8:
+        meunState = 2;
+        Display_expense();
+        break;
+    case KEY_NUM_9:
+        meunState = 2;
+        Display_expense();
+        break;
+    default:
+        break;
+    }
 }
 
 static void Meun1_switch(uint8_t keyvalue)
 {
-	switch (keyvalue)
-	{
-		case KEY_CANCEL:
-			meunState = 0;
-			Display_InterfaceWindow();
-			break;
-		case KEY_NUM_1:
-			meunState = 0;
-			Display_expense();
-			break;
-		case KEY_NUM_2:
-			meunState = 0;
-			QRCode_test();
-			break;
-		case KEY_NUM_6:
-			meunState = 0;
-			Display_picturetest();
-			break;
-		case KEY_NUM_8:
-			meunState = 0;
-			Display_touch();
-			break;
-		case KEY_NUM_9:
-			meunState = 0;
-			Display_cardtest();
-			break;
-		default:
-			break;
-	}
+    switch (keyvalue)
+    {
+    case KEY_CANCEL:
+        meunState = 0;
+        Display_InterfaceWindow();
+        break;
+    case KEY_NUM_1:
+        meunState = 0;
+        Display_expense();
+        break;
+    case KEY_NUM_2:
+        meunState = 0;
+        QRCode_test();
+        break;
+    case KEY_NUM_6:
+        meunState = 0;
+        Display_picturetest();
+        break;
+    case KEY_NUM_8:
+        meunState = 0;
+        Display_touch();
+        break;
+    case KEY_NUM_9:
+        meunState = 0;
+        Display_cardtest();
+        break;
+    default:
+        break;
+    }
 }
 
 // 检测按键状态，最终修改meunState和changeFlag，或什么都不做
 void MeunState_Check_Update(void)
 {
-	uint8_t keyvalue = 0;
+    uint8_t keyvalue = 0;
 
-	keyvalue = KEY_Scan();
-	if (meunState == 0)
-	{
-		MainWindow_switch(keyvalue);
-	}
-	else if (meunState == 1)
-	{
-		Meun1_switch(keyvalue);
-	}
+    keyvalue = KEY_Scan();
+    if (meunState == 0)
+    {
+        MainWindow_switch(keyvalue);
+    }
+    else if (meunState == 1)
+    {
+        Meun1_switch(keyvalue);
+    }
 }
 
 void TFT_Power_scan(void)
 {
-	ST7789_TFT_Picture(284, 4, gImage_full_energe);
+    ST7789_TFT_Picture(284, 4, gImage_full_energe);
 //	ST7789_TFT_Picture(284, 4, gImage_low_power);
 //	ST7789_TFT_Picture(284, 4, gImage_power_1);
 //	ST7789_TFT_Picture(284, 4, gImage_power_2);
@@ -1179,29 +1216,29 @@
 //	ST7789_TFT_Picture(4, 4, gImage_single3);
 //	ST7789_TFT_Picture(4, 4, gImage_single2);
 //	ST7789_TFT_Picture(4, 4, gImage_single1);
-	ST7789_TFT_Picture(4, 4, gImage_single_l);
+    ST7789_TFT_Picture(4, 4, gImage_single_l);
 }
 
 void TFT_SPI_Init(void)
 {
-	St7789TFT_InitTypedef St7789TFT_InitStruct;
+    St7789TFT_InitTypedef St7789TFT_InitStruct;
 
-	St7789TFT_InitStruct.SPIx = ST7789VTFTSPI;
-	St7789TFT_InitStruct.IO_TFT_SDA_PIN = ST7789_TFT_SDA_PIN;
-	St7789TFT_InitStruct.IO_TFT_SDA_Port = ST7789_TFT_SDA_PORT;
-	St7789TFT_InitStruct.IO_TFT_SCL_PIN = ST7789_TFT_SCL_PIN;
-	St7789TFT_InitStruct.IO_TFT_SCL_Port = ST7789_TFT_SCL_PORT;
-	St7789TFT_InitStruct.IO_TFT_CS_PIN = ST7789_TFT_CS_PIN;
-	St7789TFT_InitStruct.IO_TFT_CS_Port = ST7789_TFT_CS_PORT;
-	St7789TFT_InitStruct.IO_TFT_RES_PIN = ST7789_TFT_RST_PIN;
-	St7789TFT_InitStruct.IO_TFT_RES_Port = ST7789_TFT_RST_PORT;
-	St7789TFT_InitStruct.IO_TFT_BL_PIN = ST7789_TFT_BL_PIN;
-	St7789TFT_InitStruct.IO_TFT_BL_Port = ST7789_TFT_BL_PORT;
-	St7789TFT_InitStruct.IO_TFT_A0_PIN = ST7789_TFT_A0_PIN;
-	St7789TFT_InitStruct.IO_TFT_A0_Port = ST7789_TFT_A0_PORT;
+    St7789TFT_InitStruct.SPIx = ST7789VTFTSPI;
+    St7789TFT_InitStruct.IO_TFT_SDA_PIN = ST7789_TFT_SDA_PIN;
+    St7789TFT_InitStruct.IO_TFT_SDA_Port = ST7789_TFT_SDA_PORT;
+    St7789TFT_InitStruct.IO_TFT_SCL_PIN = ST7789_TFT_SCL_PIN;
+    St7789TFT_InitStruct.IO_TFT_SCL_Port = ST7789_TFT_SCL_PORT;
+    St7789TFT_InitStruct.IO_TFT_CS_PIN = ST7789_TFT_CS_PIN;
+    St7789TFT_InitStruct.IO_TFT_CS_Port = ST7789_TFT_CS_PORT;
+    St7789TFT_InitStruct.IO_TFT_RES_PIN = ST7789_TFT_RST_PIN;
+    St7789TFT_InitStruct.IO_TFT_RES_Port = ST7789_TFT_RST_PORT;
+    St7789TFT_InitStruct.IO_TFT_BL_PIN = ST7789_TFT_BL_PIN;
+    St7789TFT_InitStruct.IO_TFT_BL_Port = ST7789_TFT_BL_PORT;
+    St7789TFT_InitStruct.IO_TFT_A0_PIN = ST7789_TFT_A0_PIN;
+    St7789TFT_InitStruct.IO_TFT_A0_Port = ST7789_TFT_A0_PORT;
 
-	ST7789_TFT_GpioInit(&St7789TFT_InitStruct);
-	ST7789_TFT_Init();
+    ST7789_TFT_GpioInit(&St7789TFT_InitStruct);
+    ST7789_TFT_Init();
 }
 
 
