51单片机与计算机透传,51单片机为何读取不到ESP8266透传模式下 GET到的数据

在尝试创建一个Wi-Fi校时时钟时,遇到了一个问题:AT命令能够正常接收OK响应,但在执行GET请求从api.k780.com获取时间数据时,无法接收到返回的内容。代码中设置了连接服务器、启动发送GET请求和设置透传模式,但似乎在数据接收部分存在bug,导致无法解析到JSON返回值。问题可能在于数据接收和解析的逻辑上。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如题所述,想做个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;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值