zhyinch
2020-11-17 c8fa9e7b73d663fd1ee78632d38cea1b49c14d39
Ô´Âë/ºËÐİå/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);
   USART_puts(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;
@@ -66,7 +81,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 +94,9 @@
                     //返回一个error状态
                     //SendComMap(pack_datalen,pack_index);
                     save_com_map_to_flash();
                     delay_ms(100);
                     NVIC_SystemReset();
                     SendConfigConfirm(pack_msgtype,pack_length);
                     delay_ms(10);
                     SCB->AIRCR = 0X05FA0000|(unsigned int)0x04; //软复位回到bootloader
                     break;
                  case CMD_READ:
                     //read包中data字节,即mUsartReceivePack[0]表示数据长度;
@@ -91,12 +107,13 @@
                     break;
               }
               break;
            case MSG_WTAG:
               case MSG_WTAG:
               remotesend_state++;
               if(remotesend_state>14)
                  remotesend_state=1;
               memcpy(remotetag_para,mUsartReceivePack,REMOTEPARA_LEN);
               break;
      }
      }
      usart_receive_state = UsartReceiveWaitHead0;