- int main()
 - {
 -         uint8_t IpData[128];
 -         int8_t temp;//检验热点是否连接成功,成功为1,失败为0
 -         uint8_t TryCount=0;
 -         RCC_Configuration(); //系统时钟初始化 
 -         TIM2_Init();
 -         USART1_Init(115200);//串口一初始化
 -         printf("init...\r\n");
 -         UART4_Init(115200);//WiFi串口四初始化
 -         for(TryCount=0; TryCount<3; TryCount++)//三次连接
 -         {
 -                 printf("start link %d times.\r\n",TryCount+1);
 -                 temp=ConnectToServer((char *)MY_DEVICE_ID, (char *)MA_SECRET_KEY);//连接热点和服务器
 -                 if(temp != 0)//连接失败 temp = -1:WIFI模式设置错误 -2:WIFI连接错误 -3:端口或地址错误 -4:第一次握手数据发送错误 -5未响应错误
 -                 {
 -                         printf("Connect To Server ERROR=%d\r\n",temp);
 -                 }
 -                 else
 -                 {
 -                         break;
 -                 }
 -         }
 -         printf("link success\r\n");
 -         ClrAtRxBuf();//清空AT缓存
 -         //==================以上为WIFI连接函数===========================
 
-         while(1)
 -         {
 -         //===================以下为WIFI接收到云平台数据函数==================
 -                 if(F_AT_RX_FINISH)//判断是否接收到UART4_RX数据
 -                 {         // 接收到数据包
 -                         ESP8266_GetIpData((uint8_t *)AT_RX_BUF, (char *)IpData);//获取数据,存入IpData
 -                         USER_DataAnalysisProcess((char *)IpData);//分析数据,在这个函数里对数据进行处理
 -                         memset(IpData, 0x00, 128);//清空数据
 -                         ClrAtRxBuf();
 -                 }
 -                 ///==================已下为WIFI发送单片机数据到云平台函数==================
 -                 if(TimeCount >= 1000)//10S发送一次数据 timeCount每计数100次代表1s
 -                 {
 -                         TimeCount=0;
 -                         ESP8266_SendSensor((char *)"wind", (char *)"2020-10-16 14:10:26", GPIO_ReadOutputDataBit(GPIOA,GPIO_Pin_0));//发送数据函数,参数1标识名 参数二:时间 参数三:数据如温度,低频高低
 -                         ClrAtRxBuf();
 -                 }
 -         }
 -         
 - }
 
- //=================以下为分析函数具体实现============
 - void USER_DataAnalysisProcess(char *RxBuf)
 - {
 -         char *cmdid = NULL;
 -         uint8_t TxetBuf[128];//发送数据
 -         if(strstr((const char *)RxBuf, (const char *)PING_REQ) != NULL)//心跳请求//strstr()查找子串在主串第一次出现的位置,判断是否收到数据
 -         {
 -                 if(ESP8266_IpSend((char *)PING_RSP, strlen((const char *)PING_RSP)) < 0)//响应心跳
 -                 {//发送失败
 -                         printf("发送心跳包失败!\r\n");
 -                 }
 -                 else
 -                 {
 -                         printf("心跳包!\r\n");
 -                 }
 -         }
 -         else if(strstr((const char *)RxBuf, (const char *)""t":5") != NULL)//命令请求//收到请求
 -         {
 -                 if(strstr((const char *)RxBuf, (const char *)""apitag":"ctrl"") != NULL)//判断收到的标识名
 -                 {
 -                         memset(TxetBuf,0x00,128);//清空缓存
 - ///=====================操作代码书写区域=====================
 -                         //==============判断收到的数据,在里面执行需要的操作==============
 -                         if((strstr((const char *)RxBuf, (const char *)""data":1") != NULL))
 -                         {
 -                                 GPIO_SetBits(GPIOA,GPIO_Pin_0);
 -                                 cmdid = USER_GetJsonValue((char *)RxBuf, (char *)"cmdid");
 -                                 sprintf((char *)TxetBuf,"{"t":6,"cmdid":%s,"status":0,"data":1}",cmdid);
 -                                 //printf("%s\r\n",TxetBuf);
 -                                 if(ESP8266_IpSend((char *)TxetBuf, strlen((char *)TxetBuf)) < 0)
 -                                 {//发送失败
 -                                         //printf("发送响应失败!\r\n");
 -                                 }
 -                         }
 -                         else if((strstr((const char *)RxBuf, (const char *)""data":0") != NULL))//关灯
 -                         {
 -                                 GPIO_ResetBits(GPIOA,GPIO_Pin_0);
 -                                 cmdid = USER_GetJsonValue((char *)RxBuf, (char *)"cmdid");
 -                                 sprintf((char *)TxetBuf,"{"t":6,"cmdid":%s,"status":0,"data":0}",cmdid);
 -                                 //printf("%s\r\n",TxetBuf);
 -                                 if(ESP8266_IpSend((char *)TxetBuf, strlen((char *)TxetBuf)) < 0)
 -                                 {//发送失败
 -                                         printf("发送响应失败!\r\n");
 -                                 }
 -                         }
 -                 }
 -         }
 - }