乐鑫技术交流
直播中

李鑫

8年用户 1418经验值
私信 关注
[问答]

ESP8266异常掉线的原因?

使用8266连接路由器,之后8266什么事都不干。电脑用有线连接路由器,不断ping8266,会发现8266大约每隔不到一分钟就会从路由器断开连接。RTOS、NONOS、ARDUINO均有这种现象。
WiFi信道上几乎没有干扰,路由器只连接了电脑和8266这两个设备。
代码如下

#include "esp_common.h"

void ICACHE_FLASH_ATTR user_init(void) {
    system_update_cpu_freq(160);  //设置CPU为160Mhz

    wifi_set_opmode_current(STAtiON_MODE);

    struct station_config conf = {
        .ssid = "TESTY",
        .password = "OOOOPPPP",
        .bssid_set = 0,
    };
    wifi_station_set_config(&conf);

    os_printf("init donen");
}


串口日志如下

rf cal sector: 1019
tcpip_task_hdl : 3ffef680, prio:10,stack:512
idle_task_hdl : 3ffef720,prio:0, stack:384
tim_task_hdl : 3fff1ed8, prio:2,stack:512
sleep disable
init done
mode : sta(bc:dd:c2:30:24:b9)
add if0
scandone
state: 0 -> 2 (b0)
state: 2 -> 3 (0)
state: 3 -> 5 (10)
add 0
aid 1
pm open phy_2,type:0 0 0
cnt

connected with TESTY, channel 13
dhcp client start...
ip:192.168.1.101,mask:255.255.255.0,gw:192.168.1.1
state: 5 -> 2 (3c0)
rm 0
pm close 7 0 0/44806164
reconnect
state: 2 -> 0 (0)
scandone
state: 0 -> 2 (b0)
state: 2 -> 3 (0)
state: 3 -> 5 (10)
add 0
aid 1
pm open phy_2,type:0 0 0
cnt

connected with TESTY, channel 13
dhcp client start...
ip:192.168.1.101,mask:255.255.255.0,gw:192.168.1.1
state: 5 -> 2 (3c0)   
rm 0
pm close 7 0 0/66950923
reconnect        
state: 2 -> 0 (0)
scandone
state: 0 -> 2 (b0)
state: 2 -> 3 (0)
state: 3 -> 5 (10)      
add 0
aid 1
pm open phy_2,type:0 0 0
cnt

回帖(1)

张静

2024-7-20 16:20:41
ESP8266异常掉线的原因可能有以下几点:

1. **固件问题**:确保你使用的ESP8266固件是最新版本,或者至少是稳定的版本。有时候,固件的bug可能会导致设备不稳定。

2. **电源问题**:ESP8266的电源不稳定可能导致设备频繁掉线。确保你的电源供应稳定,且符合ESP8266的电源要求。

3. **路由器设置**:检查路由器的设置,确保没有设置导致设备频繁断开连接的参数,例如DHCP租期过短、MAC地址过滤等。

4. **信道干扰**:虽然你提到WiFi信道上几乎没有干扰,但仍然建议检查周围环境中是否存在其他无线设备的信号干扰。

5. **代码问题**:从你提供的代码片段来看,可能存在一些潜在的问题。例如,`system_update_cpu_freq(160);` 这行代码可能会影响ESP8266的稳定性。尝试使用默认的CPU频率,或者在不同频率下测试设备的性能。

6. **硬件问题**:ESP8266模块本身可能存在硬件问题,导致设备不稳定。尝试更换其他模块进行测试。

7. **软件环境**:确保你的开发环境(如Arduino IDE、ESP8266开发板等)是最新版本,以避免潜在的兼容性问题。

8. **内存问题**:ESP8266的内存有限,如果代码中存在内存泄漏或者占用过多内存,可能会导致设备不稳定。检查代码,确保没有内存泄漏,并优化内存使用。

为了解决这个问题,你可以尝试以下步骤:

1. 更新ESP8266固件到最新版本。
2. 检查电源供应是否稳定。
3. 检查路由器设置,确保没有导致设备断开连接的参数。
4. 更换WiFi信道,避免潜在的信号干扰。
5. 尝试使用默认的CPU频率,或者在不同频率下测试设备的性能。
6. 更换其他ESP8266模块进行测试。
7. 更新开发环境,确保使用的是最新版本。
8. 检查代码,优化内存使用,避免内存泄漏。

希望这些建议能帮助你解决问题。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分