zhyinch
2020-10-11 45f30075681a43ac44bdc48d07d20aa9a8ba12df
Ô´Âë/ºËÐİå/Src/application/serial_at_cmd_app.c
@@ -22,11 +22,26 @@
            UsartReceiveWaitData,
            UsartReceiveWaitChecksum
}UsartRecvPackState;
uint8_t mUsartReceivePack[100] = {0};
uint8_t mUsartReceivePack[100] = {0};
uint8_t send_frame[200];
void SendConfigConfirm(uint8_t pack_msgtype,uint8_t pack_length)
{
   uint16_t checksum = 0;
   send_frame[0] = 0x55;
   send_frame[1] = 0xAA;
   send_frame[2] = 0x09;
   send_frame[3] = 8;
   send_frame[4] = pack_msgtype;
   send_frame[5] = pack_length;
   checksum = Checksum_u16(&send_frame[2],8);
   memcpy(&send_frame[10],&checksum,2);
   UART_PushFrame(send_frame, 12);
}
void SendComMap(uint8_t data_length, uint8_t index)
{
   static uint8_t send_frame[EUART_RX_BUF_SIZE];
   uint16_t checksum = 0;
   send_frame[0] = 0x55;
   send_frame[1] = 0xAA;
@@ -36,10 +51,7 @@
   send_frame[5] = index;
   send_frame[6] = data_length;
   memcpy(&send_frame[7], &g_com_map[index>>1], data_length);
   for(int i = 0; i<(data_length+5); i++)
   {
      checksum += send_frame[2+i];
   }
   checksum = Checksum_u16(&send_frame[2],5+data_length);
   memcpy(&send_frame[7+data_length],&checksum,2);
   
@@ -66,7 +78,7 @@
      checksum += pack_index;
      checksum += pack_datalen;
      checksum += pack_msgtype;
      if((data + checksum)&0xff == 0xFF)            //校验通过
      if(((data + checksum)&0xff) == 0xFF)            //校验通过
      {
         switch(pack_msgtype)
         {
@@ -79,8 +91,8 @@
                     //返回一个error状态
                     //SendComMap(pack_datalen,pack_index);
                     save_com_map_to_flash();
                     delay_ms(100);
                     NVIC_SystemReset();
                     SendConfigConfirm(pack_msgtype,pack_length);
                     Program_Init();
                     break;
                  case CMD_READ:
                     //read包中data字节,即mUsartReceivePack[0]表示数据长度;
@@ -91,12 +103,7 @@
                     break;
               }
               break;
            case MSG_WTAG:
               remotesend_state++;
               if(remotesend_state>14)
                  remotesend_state=1;
               memcpy(remotetag_para,mUsartReceivePack,REMOTEPARA_LEN);
               break;
      }
      }
      usart_receive_state = UsartReceiveWaitHead0;