OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5246|回复: 2

ATK-8266的Deep Sleep直接用AT+GSLP=0进入,为何放到发送函数之后就无效了

[复制链接]

2

主题

3

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2021-3-13
在线时间
13 小时
发表于 2021-5-10 21:48:05 | 显示全部楼层 |阅读模式
10金钱
以下是定时中断服务函数,本意是希望进入定时服务函数发送完数据后,8266进入深度睡眠模式, 串口打印发现下一次定时到来后8266初始化(Net_Init();)中的AT指令还是可以响应,模块没有进入低功耗模式,但是AT+GSLP指令放到Net_Init();之前就可以使8266进入低功耗模式,有做过8266低功耗方面的前辈可以帮忙看看吗?是我指令哪里没有写对还是??
Net_Init();                                                  //8266初始化                       
Send_flag++;                                          //发完主函数清零                                                                                                                       
OneNet_SendData();                                       
ESP8266_Clear();

while(ESP8266_SendCmd("AT+GSLP=0\r\n", "OK", 200))        //使用外部唤醒                                                                               
        delay_ms(500);               
delay_ms(200);   
printf("Enter Deep Sleep\r\n");

以下是8266初始化函数
        ESP8266_Clear();

        printf("AT\r\n");
        while(ESP8266_SendCmd("AT\r\n\r", "OK", 200))
                delay_ms(500);
       
        printf("CWMODE\r\n");
        while(ESP8266_SendCmd("AT+CWMODE=1\r\n", "OK", 200))   //STATION模式
                delay_ms(500);
       
        printf("AT+CWDHCP\r\n");
        while(ESP8266_SendCmd("AT+CWDHCP=1,1\r\n", "OK", 200)) //设置 STA,使能 DHCP   
                delay_ms(500);
       
        printf("CWJAP\r\n");
        while(ESP8266_SendCmd(ESP8266_WIFI_INFO, "GOT IP", 200))
                delay_ms(500);
       
        printf("CIPSTART\r\n");               
        while(ESP8266_SendCmd(ESP8266_ONENET_INFO, "CONNECT", 200))
                delay_ms(500);
       
        printf("ESP8266 Init OK\r\n");


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

3

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2021-3-13
在线时间
13 小时
 楼主| 发表于 2021-5-27 20:54:07 | 显示全部楼层
回来说一下后来的解决方法:
后面是在低功耗指令前加上了延时,8266就可以进低功耗模式了,当时反复多了很多8266相关的说明和别人的帖子,记得其中有句话提到8266从运行模式降到低功耗是需要一定时间的,后来想着8266在发送的时候功耗会很大,写指令在其没有返回到正常模式时可能并没有有效写入,所以给了延时试了试,问题就这么没了。。一开始的延时给的大,后来逐渐往小给试了试,最后定格在200ms,再往下就不可靠了(写入没反应)。
虽然没有问题了,但我的方法可能并不是解决问题的正途,或许只是机缘巧合正好奏效了,希望有见解和心得的大佬能给出指点!
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2021-5-28 02:20:35 | 显示全部楼层
18235119177 发表于 2021-5-27 20:54
回来说一下后来的解决方法:
后面是在低功耗指令前加上了延时,8266就可以进低功耗模式了,当时反复多了很 ...

谢谢分享
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 11:25

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表