乐鑫技术交流
直播中

符筹荣

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

使用ESP8266_NONOS_SDK_V1.5.2_16_01_29编写了一个简单的眨眼probram,不怎么稳定如何解决?

我正在定制板上使用 ESP-WROOM-02。
我使用 ESP8266_NONOS_SDK_V1.5.2_16_01_29 编写了一个简单的眨眼 probram,它*有时有效*,*有时无效*。
main.c 在这里:https://gist.github.com/mash/0f5b1a2d85......FDD8706C2D

当我观察 UART1 调试行时,
当它成功启动时,它会输出以下内容:

ets Jan  8 2013,rst cause:1, boot mode:(3,7)

负载 0x40100000,LEN 1856,16 室
尾 0
Chksum 0x63
负载 0x3ffe8000,LEN 776,房间 8
尾 0
CHKSUM 0x02
负载 0x3ffe8310,len 552,房间 8
尾 0
Chksum 0x79
CSUM 0x79

第 2 个启动版本:1.5
  SPI Speed      : 40MHz
  SPI Mode       : QIO
  SPI Flash Size & Map: 32Mbit(1024KB+1024KB)
跳转到运行 user1 @ 1000



当它不起作用时,UART1 不会输出任何内容。
当它进入此状态时,
它在 IO4 和 IO16 上输出高电平(它们连接到 LED)。
即使我将 RST 降低到低点并再次回到高点,它也不会恢复。

IO15直接接GND,
IO2 用 10k 电阻上拉,
IO0 用 10k 电阻上拉。

发生此问题的可能性约为 50%。
如果我在EN和GND之间添加一个100uF的电容器,概率会下降到10%左右,但它仍然会发生。

发生了什么事情?
我怎样才能解决这个问题?

回帖(1)

小芳

2024-7-22 17:08:13
这可能是由多种原因导致的,以下是一些建议和解决方案,希望能帮助您解决问题:

1. **检查电源稳定性**:不稳定的电源可能导致ESP8266模块在运行过程中出现意外重启或复位。请确保您的电源供应稳定,电压在规定的范围内(通常为3.3V)。

2. **检查代码逻辑**:仔细检查您的代码逻辑,确保没有死循环、资源竞争或其他可能导致程序不稳定的问题。您可以通过添加更多的调试信息来帮助定位问题。

3. **优化内存使用**:ESP8266的内存资源有限,过度使用内存可能导致程序崩溃。检查您的程序是否使用了过多的内存,或者是否有内存泄漏的问题。可以考虑使用内存分析工具来帮助您找到问题。

4. **检查硬件连接**:确保您的ESP-WROOM-02模块与外部设备(如LED灯)之间的连接正确且稳定。松动的连接可能导致程序运行不稳定。

5. **固件升级**:您当前使用的是ESP8266_NONOS_SDK_V1.5.2_16_01_29版本,这个版本相对较旧。可以尝试升级到较新的固件版本,以获取更好的性能和稳定性。

6. **使用RTOS**:虽然您的项目可能不需要使用实时操作系统(RTOS),但使用RTOS可以帮助您更好地管理任务和资源,从而提高程序的稳定性。可以考虑使用FreeRTOS等轻量级RTOS。

7. **检查外部干扰**:电磁干扰可能会影响ESP8266模块的正常工作。请确保您的开发环境没有强烈的电磁干扰源,或者尝试将模块放置在远离干扰源的位置。

8. **使用可靠的开发工具**:确保您使用的编译器、调试器和其他开发工具是最新版本,以避免因工具问题导致的程序不稳定。

9. **参考其他成功案例**:查找其他成功的ESP8266项目,参考他们的代码和实现方法,看看是否有可以借鉴的地方。


举报

更多回帖

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