优化
diff --git a/supwisdom/sp_card.c b/supwisdom/sp_card.c
index 81babcb..4fcbd65 100644
--- a/supwisdom/sp_card.c
+++ b/supwisdom/sp_card.c
@@ -41,7 +41,6 @@
 
 uint8 sp_card_request(sp_card_t* cardpcd)
 {
-
   uint8 sak;
   uint8 snr[8];
 
@@ -80,7 +79,7 @@
 
 static uint16 sp_select_adf15()
 {
-  uint16 ret = 0;
+  uint16 ret;
   uint8* temp_buff = NULL;
   uint8 buff_len = 0;
   uint8 cmd_buff[] = {"\x00\xA4\x00\x00\x02\x3F\x00"};
@@ -94,7 +93,7 @@
 
 static uint16 sp_read_binary_file(uint8 out[])
 {
-  uint16 ret = 0;
+  uint16 ret;
   uint8* temp_buff = NULL;
   uint8 buff_len = 0;
   uint8 cmd_buff[5] = {"\x00\xB0\x95\x00\x47"};
@@ -108,9 +107,9 @@
 }
 static uint16 sp_cpu_read(sp_card_t* card)
 {
-  uint16 ret = 0;
+  uint16 ret;
   uint8 buff[72];
-  uint8 offset = 0;
+  uint8 offset;
   MEMCLEAR(buff, sizeof(buff));
   ret = sp_select_adf15();
   if(ret)
@@ -123,6 +122,7 @@
   {
     return ret;
   }
+  offset = 0;
   MEMCLEAR(card->citizen_cardno, sizeof(card->citizen_cardno));
   offset += 31;
   MEMCPY(card->citizen_cardno, buff+offset, sizeof(card->citizen_cardno));
diff --git a/supwisdom/sp_communicate.c b/supwisdom/sp_communicate.c
index 7b96183..258c90f 100644
--- a/supwisdom/sp_communicate.c
+++ b/supwisdom/sp_communicate.c
@@ -13,7 +13,7 @@
 
 static void sp_usart_send(sp_pos_t* pos, sp_protocol_request_t* req)
 {
-  uint8 buf[264];
+  uint8 buf[sizeof(sp_protocol_request_t)];
   MEMCLEAR(buf, sizeof(buf));
   sp_protocol_crc((uint8*)req +2, req->datalen, (uint8*)req +2 +req->datalen);
   req->datalen += 2;
@@ -90,13 +90,12 @@
 {
   uint8 size;
   uint16 ret;
-  int32 timeout_ms = COMM_WAIT_TIME;
   cw_unpack_context unpack;
   unpack_field_t field;
   sp_protocol_response_t resp;
 
-  disp_hint_info(pos,"ÕýÔÚÉí·ÝÈÏÖ¤ÖÐ",DELAY_TIME2s);
-  ret = sp_usart_recv(pos, &resp, timeout_ms);
+  disp_hint_info(pos,"ÕýÔÚÉí·ÝÈÏÖ¤ÖÐ",0);
+  ret = sp_usart_recv(pos, &resp, COMM_WAIT_TIME);
   if(ret)
   {
     ret = RC_CARD_AUTHENTICATION;
@@ -254,12 +253,11 @@
 {
   uint8 size;
   uint16 ret;
-  int32 timeout_ms = COMM_WAIT_TIME;
   cw_unpack_context unpack;
   unpack_field_t field;
   sp_protocol_response_t resp;
 
-  ret = sp_usart_recv(pos, &resp, timeout_ms);
+  ret = sp_usart_recv(pos, &resp, COMM_WAIT_TIME);
   if(ret)
   {
     ret = RC_QRCODE_FAILURE;
@@ -313,12 +311,11 @@
 {
   uint8 size;
   uint16 ret;
-  int32 timeout_ms = COMM_WAIT_TIME;
   cw_unpack_context unpack;
   unpack_field_t field;
   sp_protocol_response_t resp;
 
-  ret = sp_usart_recv(pos, &resp, timeout_ms);
+  ret = sp_usart_recv(pos, &resp, COMM_WAIT_TIME);
   if(ret)
   {
     ret = RC_QRCODE_QUERY_FAIL;
@@ -453,7 +450,7 @@
   uint8 size;
   uint8 ctime[6];
   uint8 systime[7];
-  uint8 login_flag = 0;
+  uint8 login_flag;
   cw_unpack_context unpack;
   unpack_field_t field;
 
@@ -462,7 +459,7 @@
     return resp->retcode;
   }
   pos->heartbeat.heart_status = HEART_RECV;
-
+  login_flag = 0;
   sp_unpack_init(&unpack,resp->data,resp->datalen);
   size = sp_unpack_map_size(&unpack);
   while(size-- > 0)
diff --git a/supwisdom/sp_consume.c b/supwisdom/sp_consume.c
index e1a9c46..78dd02c 100644
--- a/supwisdom/sp_consume.c
+++ b/supwisdom/sp_consume.c
@@ -57,7 +57,7 @@
 
 void sp_test_card_state(sp_pos_t* pos, sp_cardworkstate_t* cardWorkState, uint32 tick)
 {
-  uint8 ret = 0;
+  uint8 ret;
   sp_card_t cardpcd;
   switch(pos->cardState.cur_state)
   {
@@ -197,7 +197,7 @@
 
 static uint16 sp_check_dev(const sp_pos_t* pos)
 {
-  uint16 ret = 0;
+  uint16 ret;
   uint8 ctime[6];
   MEMCLEAR(ctime, sizeof(ctime));
   sp_get_bcdtime(ctime);
@@ -230,7 +230,7 @@
 
 static uint16 do_new(sp_pos_t* pos, sp_card_t* card)
 {
-  uint16 ret = 0;
+  uint16 ret;
   sp_transdtl_t record;
   MEMCLEAR(&record, sizeof(record));
   card->cardtype = pos->cardState.tag_type;
@@ -289,7 +289,7 @@
 
 static uint16 do_work(sp_pos_t* pos, sp_card_t* card)
 {
-  uint16 ret = 0;
+  uint16 ret;
   sp_valve_on();
   //¼ÆËãÏû·Ñ½ð¶î
   ret = sp_calc_payamt_by_flowsensor(pos, card);
@@ -613,7 +613,7 @@
 }
 
 //¶þάÂëÏû·Ñ´¦Àí
-uint32 tick = 0;
+static uint32 tick = 0;
 void sp_qrcode_handle(sp_pos_t* pos, sp_cardworkstate_t* cardWorkState)
 {
   uint16 ret = 0;