stm32 esp8266测试问题原因记录

现象:连上WIFI但发送数据失败

 原因:WIFI网络延时过大,或者程序设置的等待超时时间过小

解法:换个网络延时小的WIFI连,或者增加程序等待超时的时间

 

现象:连不上WIFI

 原因:esp8266_mqtt_init()中的的延迟过长,测试4S不行,要2S

解法:将4秒延时改回2S

复制代码
 1 int32_t esp8266_mqtt_init(void)
 2 {
 3     int32_t rt;
 4     delay_ms(2000);
 5     //esp8266初始化
 6     esp8266_init();
 7 
 8 //    printf("esp8266_mqtt_init 397");
 9 
10     //退出透传模式,才能输入AT指令
11     rt=esp8266_exit_transparent_transmission();
12     if(rt)
13     {
14         printf("esp8266_exit_transparent_transmission fail\r\n");
15         return -1;
16     }    
17     printf("esp8266_exit_transparent_transmission success\r\n");
18     delay_ms(2000);
19     
20     //复位模块
21     rt=esp8266_reset();
22     if(rt)
23     {
24         printf("esp8266_reset fail\r\n");
25         return -2;
26     }
27     printf("esp8266_reset success\r\n");
28     delay_ms(2000);    
29     
30     //关闭回显
31     rt=esp8266_enable_echo(0);
32     if(rt)
33     {
34         printf("esp8266_enable_echo(0) fail\r\n");
35         return -3;
36     }    
37     printf("esp8266_enable_echo(0)success\r\n");
38     delay_ms(2000);    
39         
40     //连接热点
41     rt = esp8266_connect_ap(WIFI_SSID,WIFI_PASSWORD);
42     if(rt)
43     {
44         printf("esp8266_connect_ap fail\r\n");
45         return -4;
46     }    
47     printf("esp8266_connect_ap success\r\n");
48     delay_ms(2000);
49     //连接网址
50     rt =esp8266_connect_server("TCP",MQTT_BROKERADDRESS,1883);
51     if(rt)
52     {
53         printf("esp8266_connect_server fail\r\n");
54         return -5;
55     }    
56     printf("esp8266_connect_server success\r\n");
57     delay_ms(2000);
58     
59     //进入透传模式
60     rt =esp8266_entry_transparent_transmission();
61     if(rt)
62     {
63         printf("esp8266_entry_transparent_transmission fail\r\n");
64         return -6;
65     }    
66     printf("esp8266_entry_transparent_transmission success\r\n");
67     delay_ms(2000);
68     //连接mqtt
69     if(mqtt_connect(MQTT_CLIENTID, MQTT_USARNAME, MQTT_PASSWD))
70     {
71         printf("mqtt_connect fail\r\n");
72         return -7;    
73     
74     }
75     printf("mqtt_connect success\r\n");
76     delay_ms(2000);        
77     //订阅
78     if(mqtt_subscribe_topic(MQTT_SUBSCRIBE_TOPIC,0,1))
79     {
80         printf("mqtt_subscribe_topic fail\r\n");
81         return -8;
82     }    
83     printf("mqtt_subscribe_topic success\r\n");
84     
85     return 0;
86 }
View Code
复制代码

现象:

 原因:esp8266_mqtt_init()中的延时过短

解法:测试270ms,也是可以的但不够稳定,建议没事保存默认2S不要改

 

posted @   败人两字非傲即惰  阅读(91)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
点击右上角即可分享
微信分享提示