查看: 799|回复: 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-2-21 11:08
  • 签到天数: 1019 天

    [LV.10]以坛为家III

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

    本版积分规则

    热门推荐

    博哥零基础教你玩转ESP8266(十三) ESP8266WiFiGeneric库
    博哥零基础教你玩转ESP826
    帖子导航帖 博哥零基础教你玩转ESP8266(一) 重识ESP8266 博哥零基础教你玩转ESP8266
    求助!WeMos D1 WiFi怎么接0.96寸OLED?(ㄒoㄒ)
    求助!WeMos D1 WiFi怎么
    求助!WeMos D1 WiFi怎么接0.96寸OLED?(ㄒoㄒ) 想用WeMos D1 WiFi接收服务器的数据然
    串口发送16进制指令求助
    串口发送16进制指令求助
    我准备串口发出16进制指令到我的外置设备 代码如下图 我分别监控ARDUINO的tx口和USB口
    一文教你选择Arduino开发板,小白进
    一文教你选择Arduino开发
    笔者在2016年接触了Arduino,跳了万条坑,行了千里弯,到今天也算是Arduino的一
    大神们!1602显示屏上的MQ2浓度示数不是实时监测的何解
    大神们!1602显示屏上的MQ
    本人小白,刚刚接触arduino,长时间的查阅资料后,通过复制修改代码接线实现了DHT11实
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   ( 蜀ICP备14017632号-3 )
    快速回复 返回顶部 返回列表