查看: 1221|回复: 1

AT+RST返回信息过长,串口无法正常读取

[复制链接]

该用户从未签到

发表于 2018-9-23 14:52 | 显示全部楼层 |阅读模式
ESP8266,使用Ai-Thinker固件Ai Cloud2.0,升级成功,AT+RST指令返回信息如下:
AT+RST

OK
WIFI DISCONNECT

ets Jan  8 2013,rst cause:2, boot mode3,6)

load 0x40100000, len 2592, room 16
tail 0
chksum 0xf3
load 0x3ffe8000, len 764, room 8
tail 4
chksum 0x92
load 0x3ffe82fc, len 676, room 4
tail 0
chksum 0x22
csum 0x22

2nd boot version : 1.7(5d6f877)
SPI Speed : 40MHz
SPI Mode : DOUT
SPI Flash Size & Map: 32Mbit(1024KB+1024KB)
jump to run user1 @ 1000

å„.Ï.ÇnÏìrÇÚn|Ï.l.lÏè.l.bì...û|.sì.lúo‡.Én‚..l`.å‚rílål.å...l`.å‚sìlÏl.å...l`.å„ríl.èü.å..ll`.rlèÉslåû„åc.ååcp|..cpÇåèpüåé.b.ÏÛoÓÄ.nn„....ll‡‚..lèå.lÏèlåé.Ä.ålèrrlÄ.n¸.åû‚åc.llÏ.è..c...åû‚åc.l.åc.slrlrÚnú„.å.ÏÉ..cr.cÏ„bÏéú.É.é.íååå‚lcÏbÏÚoúüÄÄ.cr.bÏ„bÏéú.É.é.íååå„lc.l.ÉÇ.loúl`..ÇÉ.loúprl..opÄ.Ïìb‚íc.ÏÇ.bÉc.cÏÄbllååcpú.åbécppln‡éro.ålèr|ålès|ålér|..cúû.Élååcpú.åbécpcl`..r‚nl..l`.
Ai-Thinker Technology Co., Ltd.
Integrated AiCloud 2.0 v0.0.0.7s

ready


串口交互代码如下:

kittenblock中小学创客名师推荐的图形化编程软件

/**************************************************************************
功能:用于发送AT指令,返回接收到的返回信息
输入参量:
        String command:AT指令
        String receiveKeyword:等待接收到的关键字
        const int timeout:定义多长时间没接收到关键字退出该函数
返回:
        String:返回接收到的AT返回信息
**************************************************************************/
String WIFI::sendATCommandUntil(String command,String receiveKeyword,const long timeout) {
        String response = "";
        esp.print(command); // send the read character to the esp8266

        DBGLN("-1---------------");
        DBG("send:");
        DBGLN(command);
        DBGLN("-2---------------");

        long int time = millis();
        bool found = false;
        while ( (time + timeout) > millis()) {
                while (esp.available()) {
                        // The esp has data so display its output to the serial window
                        char c = esp.read(); // read the next character.
                        response += c;
                }
                esp.flush();        //清除接收缓冲区
                if(response.indexOf(receiveKeyword)!=-1) {
                        DBGLN("-3-------------------------------");

                        DBG("debug message receive Keyword:");
                        DBGLN(receiveKeyword);
                        DBGLN("-4-------------------------------");
                        found = true;
                        break;
                }
        }

        if(found == true)
        {
                DBGLN("-5----------receive message------");
                DBG(response);
                DBGLN("-6-------------------------------");
        }
        else
        {
                DBGLN("-7----------not receive Keyword------");
                software_Reset();
        }


        return response;
}


重置操作:
sendATCommandUntil("AT+RST\r\n", "ready", 5000);

因为AT+RST返回信息过长,超过了512个字节,系统无法准确读取到ready,从而每次都进入到 software_Reset(),大家探讨下如何解决。



aicloud_new_ready.png
  • TA的每日心情
    开心
    2019-6-23 09:28
  • 签到天数: 1104 天

    [LV.10]以坛为家III

    发表于 2018-9-23 18:00 | 显示全部楼层
    发出这条命令之后,断开串口连接,等待200ms,重新建立连接,发送AT,进行测试,就行了
    您需要登录后才可以回帖 登录 | 立即注册  

    本版积分规则

    热门推荐

    【项目】基于Arduino Nano的多功能桌面感应垃圾桶
    【项目】基于Arduino Nano
    基于Arduino Nano的多功能桌面感应垃圾桶随着大学生活不断往前迈进,宿舍桌面上的杂物
    智能物联网花盆
    智能物联网花盆
    打坏了一个费时5小时 3D打印的花盆,耗时22小时 下载:Kittenblock软件,安装、运
    呼吸灯实验
    呼吸灯实验
    本文节选自《Arduino程序设计基础》 之前的章节已经介绍了多种方法控制LED,但单是开
    为开发板 Generic ESP8266 Module 编译时出错
    为开发板 Generic ESP8266
    第一次尝试Arduino UNO软串口通信,编译一直通不过,错误信息 “开发板 generic (平
    Arduino Uno 无法上传程序
    Arduino Uno 无法上传程序
    原来可以正常使用的Arduino Uno 板子突然不能上传程序了,硬件驱动正常,TX和RX指示灯
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   ( 蜀ICP备14017632号-3 )
    快速回复 返回顶部 返回列表