104 lines
2.2 KiB
C
104 lines
2.2 KiB
C
#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; //状态寄存器清空
|
|
}
|
|
}
|