标题: 51单片机为何读取不到ESP8266透传模式下 GET到的数据 [打印本页]

作者: zhj0712    时间: 2019-1-27 16:10
标题: 51单片机为何读取不到ESP8266透传模式下 GET到的数据
如题所述,想做个wifi校时时钟,前面AT返回的OK可以读取到,,后面GET返回的数据读取不到,求大神帮助,下面是部份程序
void main()
{
      delay5s();
      UsartInit();

      ESP8266_Set("AT+CWMODE_DEF=1\r\n"); //!!配置WiFi模组工作模式为单STA模式,并把配置保存在flash
      delay200ms();  delay200ms(); delay200ms(); delay200ms(); delay200ms();      
      ESP8266_Set("AT+RST\r\n"); //!!重启模块
      delay5s();
      ESP8266_Set("AT+CWJAP_DEF=\"111\",\"11111111\"\r\n");     //        !!连接网络
      delay5s();delay5s();delay5s();
      ESP8266_Set("AT+CIPMUX=0\r\n");  //设置单链接模式
      delay200ms();delay200ms();delay200ms();  
//      ESP8266_Set("AT+CWAUTOCONN=1\r\n");  //!!使能上电自动连接AP
//      delay200ms();delay200ms();delay200ms();delay200ms();delay200ms();
      ESP8266_Set("AT+CIPSTART=\"TCP\",\"api.k780.com\",88\r\n");//!!连接服务器
      delay200ms();delay200ms();delay200ms();delay200ms();delay200ms();
      ESP8266_Set("AT+CIPMODE=1\r\n");  //!!设置透传
      delay200ms();delay200ms();delay200ms();delay200ms();delay200ms();
      ESP8266_Set("AT+CIPSEND\r\n");  //!!启动发送
      delay200ms();delay200ms();delay200ms();delay200ms();delay200ms();
      ESP8266_Set("GET ' 'http://api.k780.com:88/?app=life.time&appkey=10003&sign=b59bc3ef6191eb9f747dd4e83c99f2a4&format=json");  //!!GET请求
      delay200ms();delay200ms();delay200ms();delay200ms();delay200ms();
      ES=1;
//      while(1)
//      {
//get返回值{"success":"1","result":{"timestamp":"1548490735","datetime_1":"2019-01-26 16:18:55","datetime_2":"2019年01月26日 16时18分55秒","week_1":"6","week_2":"星期六","week_3":"周六","week_4":"Saturday"}}      
      if(Recive_table[0]=='{')//如果为S则显示1否则0
           {
             TM1650_Set_Time(0x48,0x11);
             TM1650_Set_Time(0x68,d_code[1]);            
          }






void Uart_Interrupt() interrupt 4        
{
//  static uint i=0;
      ES=0;
      if(RI)
      {
           RI=0;
           Receive=SBUF;        //MCU接收wifi模块反馈回来的数据
           if(Receive=='{')
           {
                RX_ok=0;//清除
                RX_flag=1;//开始接收
           }
              if(RX_flag=1)
              {
                  Recive_table[ii++]=Receive;
                  if(Receive=='\n')
                  {
                    Recive_table[ii]=='\n';
                    ii=0;
                    RX_flag=0;//清0表示这一次数据接收完成
                    RX_ok=1;//接收完成       
                  }
                //  if(i>=255)i=0;
              }

        //   if((Recive_table[i-1]=='\n'))i=0;  //遇到换行 重新装值

      }
      else TI=0;
     ES=1;

}






欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1