ESP8266在STA TCP-Client模式下,连接服务器不成功atk_8266返回连接成功

esp8266没连接到服务器返回连接上的错误原因解决办法。

在连接上路由器后延时2s在连接服务器。

    u8 *p = NULL;
    u8 ipbuf[16];     //IP缓存
    int t = 5;  
    // 检测esp8266模块是否存在
    t = 5;
    while (atk_8266_send_cmd("AT","OK",20) && --t) // 等待esp8266就绪
    {
        atk_8266_quit_trans();    // 退出透传
        atk_8266_send_cmd("AT+CIPMODE=0","OK",200);  // 关闭透传模式    
        delay_ms(800);            
    }
    if (t <= 0)
    {
        return 1;                 // 未检测到模块
    }
    t = 5;
    while (atk_8266_send_cmd("ATE0","OK",20) && --t);  // 关闭回显
    if (t <= 0)
    {
        return 1;                 // 关闭回显失败
    }
    delay_ms(10);
    atk_8266_at_response(1); // 检查ATK-ESP8266模块发送过来的数据,及时上传给电脑
    atk_8266_send_cmd("AT+CWMODE=1","OK",50);    // 设置WIFI STA 模式
    atk_8266_send_cmd("AT+RST","OK",20);
    delay_ms(1000);         //延时3S等待重启成功
    delay_ms(1000);
    delay_ms(1000);
    delay_ms(1000);
    p = mymalloc(SRAMIN, 32);
    
    // 设置连接到的WIFI网络名称/加密方式/密码,这几个参数需要根据您自己的路由器设置进行修改!! 
    sprintf((char *)p, "AT+CWJAP=\"%s\",\"%s\"", wifista_ssid, wifista_password);// 设置无线参数:ssid,密码
    t = 5;
    while(atk_8266_send_cmd(p,"WIFI GOT IP",300) && --t);                    // 连接目标路由器,并且获得IP
    if (t <= 0)
    {
        myfree(SRAMIN, p);        // 释放内存
        return 2;                 // 连接路由器失败
    }
    delay_ms(1000);
    delay_ms(1000);    
    delay_ms(100);
    atk_8266_at_response(1);
    sprintf((char*)ipbuf,"192.168.43.228");
    atk_8266_send_cmd("AT+CIPMUX=0","OK",20);   // 0:单连接,1:多连接
    sprintf((char*)p,"AT+CIPSTART=\"TCP\",\"%s\",%s",ipbuf,(u8*)portnum);
    t = 5;
    while(atk_8266_send_cmd(p,"OK",200) && --t) // 连接server
    {
        delay_ms(800);
    }
    if (t <= 0) 
    {
        myfree(SRAMIN, p);        // 释放内存
        return 3;                 // 连接Server失败
    }
    atk_8266_send_cmd("AT+CIPMODE=1","OK",200);      // 传输模式为:透传
    USART3_RX_STA = 0;    
    myfree(SRAMIN, p);        // 释放内存
    return 0;                 // 连接server成功

 

你可能感兴趣的:(ESP8266在STA TCP-Client模式下,连接服务器不成功atk_8266返回连接成功)