YdaMooc 2024-02-29 00:28 采纳率: 100%
浏览 11
已结题

关于#Exception#的问题,如何解决?(标签-单片机|关键词-串口)

esp8266为什么会出现这种串口信息?出现这个之后,单片机就重启了。这是为什么呢?Exception (9)这个是啥问题


Exception (9):
epc1=0x40104ee1 epc2=0x00000000 epc3=0x00000000 excvaddr=0xffffffff depc=0x00000000

>>>stack>>>

ctx: sys
sp: 3fffed50 end: 3fffffb0 offset: 01a0
3fffeef0:  4022a4d6 3ffe8a24 80fec600 60000600  
3fffef00:  4022a5d8 3ffe8a24 3ffedf20 00779394  
3fffef10:  40231a64 3ffee51c 3ffedf20 40208fd2  
3fffef20:  40231a71 3ffee51c 3ffedf20 40231a71  
3fffef30:  40231ab6 3fffdab0 00000000 3fffdcb0  
3fffef40:  3ffedf48 3fffdab0 00000000 00000001  
3fffef50:  40000f49 40000f49 3fffdab0 40000f49  
3fffef60:  40000e19 40001878 00000002 00000000  
3fffef70:  3fffff10 aa55aa55 000000c1 40104789  
3fffef80:  4010478f 00000002 00000000 42e5077f  
3fffef90:  4010000d 42620797 46060c02 42620005  
3fffefa0:  402297f8 3fffef3c 402297b1 3fffff68  
3fffefb0:  3fffffc0 00000000 00000000 feefeffe  
3fffefc0:  feefeffe feefeffe feefeffe feefeffe  
3fffefd0:  feefeffe feefeffe feefeffe feefeffe  
3fffefe0:  feefeffe feefeffe feefeffe feefeffe  
3fffeff0:  feefeffe feefeffe feefeffe feefeffe  
3ffff000:  feefeffe feefeffe feefeffe feefeffe  
3ffff010:  feefeffe feefeffe feefeffe feefeffe  
3ffff020:  feefeffe feefeffe feefeffe feefeffe  
3ffff030:  feefeffe feefeffe feefeffe feefeffe  
3ffff040:  feefeffe feefeffe feefeffe feefeffe  
3ffff050:  feefeffe feefeffe feefeffe feefeffe  
3ffff060:  feefeffe feefeffe feefeffe feefeffe  
3ffff070:  feefeffe feefeffe feefeffe feefeffe  
3ffff080:  feefeffe feefeffe feefeffe feefeffe  
3ffff090:  feefeffe feefeffe feefeffe feefeffe  
3ffff0a0:  feefeffe feefeffe feefeffe feefeffe  
3ffff0b0:  feefeffe feefeffe feefeffe feefeffe  
3ffff0c0:  feefeffe feefeffe feefeffe feefeffe  
3ffff0d0:  feefeffe feefeffe feefeffe feefeffe  
3ffff0e0:  feefeffe feefeffe feefeffe feefeffe  
3ffff0f0:  feefeffe feefeffe feefeffe feefeffe  
3ffffdf0:  00001330 00000266 00000266 40100648  
3ffffe00:  3fff0114 ffff0004 00000000 00000023  
3ffffe10:  00000020 00000266 3fff00d4 40100b2c  
3ffffe20:  00000020 00000404 3ffef7e4 0000000a  
3ffffe30:  3fffff48 00000000 3ffffe80 40201f1c  
3ffffe40:  000018d8 0000031b 0000031b 3fff077c  
3ffffe50:  3ffe84cc 3fffff1c 3fffff10 40201058  
3ffffe60:  3ffef764 00000000 00000020 40208bfc  
3ffffe70:  00001790 000002f2 000002f2 40100648  
3ffffe80:  00001218 00000243 00000243 40100648  
3ffffe90:  00000000 3ffe867c 00000020 3fffff1c  
3ffffea0:  00000ae0 0000015c 0000015c 40100648  
3ffffeb0:  3fff05ae 00000000 3ffee670 3ffe86c4  
3ffffec0:  3ffee7d4 3ffee5fc 00000020 401008d3  
3ffffed0:  3ffe867c 3ffee7d4 3ffee5fc 40208b30  
3ffffee0:  00000000 00000002 3fffff70 40206089  
3ffffef0:  3ffee7d4 3ffee5fc 3ffe84cc 402060a8  
3fffff00:  3ffee7d4 3ffee5fc 3ffe84cc 40202319  
3fffff10:  3ffe84cc 005c0000 00000000 00000000  
3fffff20:  00000000 3ffee51c 3ffef71c 40203f9f  
3fffff30:  00000001 002078b8 402057ae 3fffff1c  
3fffff40:  00040000 0000ffff 00040000 402017d6  
3fffff50:  4010506d 05b7d0b1 3ffee954 00000000  
3fffff60:  3ffedf20 3ffee954 000493e0 3ffee954  
3fffff70:  3fffdad0 3ffee850 40206f04 3fffefa0  
3fffff80:  3ffee954 3fffdad0 3ffee850 4020754e  
3fffff90:  3fffdad0 00000000 3ffee810 40202342  
3fffffa0:  feefeffe feefeffe feefeffe 4020701c  
<<<stack<<<

 ets Jan  8 2013,rst cause:2, boot mode:(3,6)

load 0x4010f000, len 1392, room 16 
tail 0
chksum 0xd0
csum 0xd0
v3d128e5c
~ld
  • 写回答

3条回答 默认 最新

  • 关注

    D102428 上午好☀️☀️☀️️
    本答案参考通义千问

    Exception (9) 是ESP8266单片机中遇到的一种常见错误类型,通常表示程序执行时发生了未处理的异常。在你的堆栈跟踪信息中,可以看到一些地址和函数调用,这些通常与内存访问错误、中断处理不当或者硬件问题相关。

    解决方案

    1. 检查代码

      • 确保你的串口通信代码没有溢出或尝试访问无效的内存地址。
      • 检查是否有数组越界、指针异常等问题。
    2. 错误定位

      • 根据堆栈信息,定位到导致异常的具体行号(如40231a6440208fd2等),查看上下文中的变量状态和操作是否正确。
    3. 内存管理

      • 使用ets_printf或其他调试手段,在关键位置打印变量值,帮助确定问题所在。
      • 如果有频繁的复位,检查是否在数据传输过程中,特别是缓冲区操作或串口接收时,数据处理不正确。
    4. 异常处理

      • 在可能出错的地方添加异常处理代码,比如使用try-catch机制,当发生异常时捕获并记录错误,而不是直接复位。
    5. 硬件检查

      • 确保你的ESP8266供电稳定,引脚连接正确。
      • 检查串口线路上是否有短路或信号干扰。
    6. 固件更新

      • 更新ESP8266的固件到最新版本,修复已知的bug。
    7. 查阅文档

      • 参考ESP8266的官方文档或社区论坛,查找类似问题的解决方案。
    8. 代码审查

      • 如果是开源项目,找其他人帮忙审查代码,看看是否有潜在的问题。

    代码示例(假设你使用C语言):

    void handleException() {
        uint32_t epc1 = readRegister(EPC1);
        uint32_t epc2 = readRegister(EPC2);
        // ...其他异常处理代码...
    }
    
    void main() {
        try {
            // 主函数代码
        } catch (uint32_t ex) {
            handleException();
        }
    }
    

    这只是一个基本的异常处理框架,具体实现取决于你的硬件和编译器。如果你的单片机使用的是MicroPython,可以参考官方文档了解异常处理方法。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 3月15日
  • 已采纳回答 3月7日
  • 创建了问题 2月29日

悬赏问题

  • ¥15 Windows Script Host 无法找到脚本文件"C:\ProgramData\Player800\Cotrl.vbs”
  • ¥15 matlab自定义损失函数
  • ¥15 35114 SVAC视频验签的问题
  • ¥15 impedancepy
  • ¥15 求往届大挑得奖作品(ppt…)
  • ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
  • ¥50 浦育平台scratch图形化编程
  • ¥20 求这个的原理图 只要原理图
  • ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
  • ¥20 微信的店铺小程序如何修改背景图