#include "main.h" uint32_t BlockNbr = 0, UserMemoryMask = 0; __IO uint32_t FlashProtection = 0; uint8_t wifi_frame_flg = 0; uint32_t wifi_len = 0; uint16_t wifi_signs_len = 13; uint8_t wifi_opm_buf[1700]; //全部数据 float value_buf[512]; uint8_t wifi_signs_buf[17]; //体征数据 uint64_t timeclock_count = 0; uint8_t TimeClock_Flag = 0; uint8_t get_time_buf[13] = {0xA5, 0x5A, 0x0D, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; void do_version(void) { // wifi_crc_send(version, 8); } /** * @brief 处理系统命令 * @param void * @retval void */ void wifi_cmd_exe(void) { unsigned char pMem[8]; uint64_t *p; if (USART1_RX_STA & 0x8000) //串口接收完成 { switch (USART1_RX_BUF[4]) { case 0x10: //升级请求 // do_upgrade(); break; case 0x13: //版本号请求 do_version(); //升级 break; case 0x20: TIM_Cmd(TIM3, ENABLE); //使能定时器3 pMem[0] = USART1_RX_BUF[5]; pMem[1] = USART1_RX_BUF[6]; pMem[2] = USART1_RX_BUF[7]; pMem[3] = USART1_RX_BUF[8]; pMem[4] = USART1_RX_BUF[9]; pMem[5] = USART1_RX_BUF[10]; pMem[6] = USART1_RX_BUF[11]; pMem[7] = USART1_RX_BUF[12]; p = (uint64_t *)pMem; timeclock_count = *p; TimeClock_Flag = 1; USART1_RX_BUF[0] = 0x00; //清除头 LED_G = 1; LED_G = 1; LED_B = 1; break; case 0x0A: // wifi发的东西 USART1_RX_BUF[0] = 0x00; //清除头 break; case 0x0C: // 配网 if (Key_Cal_Flag == 1) //配网中才进 { if (USART1_RX_BUF[5] == 01) //开始配网 { LED_G = 1; LED_B = 0; delay_ms(200); } else if (USART1_RX_BUF[5] == 02) //配网成功 { delay_ms(200); NVIC_SystemReset(); //复位 } else if (USART1_RX_BUF[5] == 03) //制造商成功 { Key_Cal_Flag = 0; LED_B = 1; LED_G = 0; delay_ms(200); } } else if (Key_Cal_Flag == 0) //刚启动检测 { if (USART1_RX_BUF[5] == 01) //开始配网 { Key_Cal_Flag = 1; delay_ms(200); } else if (USART1_RX_BUF[5] == 02) //配网成功 { delay_ms(200); } } break; case 0xFF: // NVIC_SystemReset(); break; default: break; } USART1_RX_STA = 0; //状态寄存器清空 } }