You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ESP32-SE Lo-Fi内置天线LoRaWAN传输看门狗超时故障排查求助

ESP32-SE Lo-Fi设备运行MCCI Arduino LoRaWAN代码时触发Core 1中断看门狗超时Guru Meditation Error

我有一台ESP32-SE Lo-Fi设备,需要通过内置天线利用LoRaWAN协议将数据上传至第三方数据库。目前采用MCCI Arduino LoRaWAN Library编写了代码(已隐去AppEUI、DevEUI、APPKEY等敏感信息),但设备运行时频繁触发Core 1中断看门狗超时的Guru Meditation Error,无法正常完成数据上传流程。

代码片段

// 隐去AppEUI、DevEUI、APPKEY
#include <Arduino.h>
#include <lmic.h>
#include <hal/hal.h>
#include <SPI.h>

// 敏感信息已移除
const u1_t PROGMEM APPEUI[8] = { /* 已隐去 */ };
const u1_t PROGMEM DEVEUI[8] = { /* 已隐去 */ };
const u1_t PROGMEM APPKEY[16] = { /* 已隐去 */ };

void os_getArtEui(u1_t* buf) { memcpy_P(buf, APPEUI, 8); }
void os_getDevEui(u1_t* buf) { memcpy_P(buf, DEVEUI, 8); }
void os_getDevKey(u1_t* buf) { memcpy_P(buf, APPKEY, 16); }

static osjob_t sendjob;

// 发送回调
void onEvent(ev_t ev) {
    switch(ev) {
        case EV_SCAN_TIMEOUT:
            Serial.println("EV_SCAN_TIMEOUT");
            break;
        case EV_BEACON_FOUND:
            Serial.println("EV_BEACON_FOUND");
            break;
        case EV_BEACON_MISSED:
            Serial.println("EV_BEACON_MISSED");
            break;
        case EV_BEACON_TRACKED:
            Serial.println("EV_BEACON_TRACKED");
            break;
        case EV_JOINING:
            Serial.println("EV_JOINING");
            break;
        case EV_JOINED:
            Serial.println("EV_JOINED");
            // 加入成功后调度发送任务
            os_setCallback(&sendjob, sendData);
            break;
        case EV_JOIN_FAILED:
            Serial.println("EV_JOIN_FAILED");
            break;
        case EV_REJOIN_FAILED:
            Serial.println("EV_REJOIN_FAILED");
            break;
        case EV_TXCOMPLETE:
            Serial.println("EV_TXCOMPLETE");
            // 再次调度发送任务
            os_setCallback(&sendjob, sendData);
            break;
        case EV_LOST_TSYNC:
            Serial.println("EV_LOST_TSYNC");
            break;
        case EV_RESET:
            Serial.println("EV_RESET");
            break;
        case EV_RXCOMPLETE:
            Serial.println("EV_RXCOMPLETE");
            break;
        case EV_LINK_DEAD:
            Serial.println("EV_LINK_DEAD");
            break;
        case EV_LINK_ALIVE:
            Serial.println("EV_LINK_ALIVE");
            break;
        default:
            Serial.print("Unknown event: ");
            Serial.println((unsigned int)ev);
            break;
    }
}

void sendData(osjob_t* j) {
    // 准备数据
    uint8_t data[] = {0x01, 0x02, 0x03};
    // 发送数据
    LMIC_setTxData2(1, data, sizeof(data), 0);
    Serial.println("Data scheduled for transmission");
}

void setup() {
    Serial.begin(115200);
    while(!Serial);

    // 初始化LMIC
    os_init();
    LMIC_reset();

    // 设置信道(根据区域调整,此处假设为EU868)
    LMIC_setupChannel(0, 868100000, DR_RANGE_MAP(DR_SF12, DR_SF7), BAND_CENTI);
    LMIC_setupChannel(1, 868300000, DR_RANGE_MAP(DR_SF12, DR_SF7B), BAND_CENTI);
    LMIC_setupChannel(2, 868500000, DR_RANGE_MAP(DR_SF12, DR_SF7), BAND_CENTI);
    LMIC_setupChannel(3, 867100000, DR_RANGE_MAP(DR_SF12, DR_SF7), BAND_CENTI);
    LMIC_setupChannel(4, 867300000, DR_RANGE_MAP(DR_SF12, DR_SF7), BAND_CENTI);
    LMIC_setupChannel(5, 867500000, DR_RANGE_MAP(DR_SF12, DR_SF7), BAND_CENTI);
    LMIC_setupChannel(6, 867700000, DR_RANGE_MAP(DR_SF12, DR_SF7), BAND_CENTI);
    LMIC_setupChannel(7, 867900000, DR_RANGE_MAP(DR_SF12, DR_SF7), BAND_CENTI);
    LMIC_setupChannel(8, 868800000, DR_RANGE_MAP(DR_FSK, DR_FSK), BAND_MILLI);

    // 禁用自适应数据速率
    LMIC_setAdrMode(0);
    // 设置数据速率
    LMIC_setDrTxpow(DR_SF7, 14);
    // 启动加入流程
    LMIC_startJoining();
}

void loop() {
    os_runloop_once();
}

错误日志

Guru Meditation Error: Core 1 panic'ed (Interrupt watchdog timeout on CPU1).
Core 1 register dump:
PC : 0x40084f6e PS : 0x00060030 A0 : 0x80083b3d A1 : 0x3ffb1f10
A2 : 0x00000000 A3 : 0x00000001 A4 : 0x00000001 A5 : 0x00000000
A6 : 0x00000000 A7 : 0x00000000 A8 : 0x80084f6e A9 : 0x3ffb1ee0
A10 : 0x00000000 A11 : 0x00000000 A12 : 0x00000001 A13 : 0x3ffb23c0
A14 : 0x00000000 A15 : 0x00000000 SAR : 0x00000010 EXCCAUSE: 0x00000006
EXCVADDR: 0x00000000 LBEG : 0x4000c2e0 LEND : 0x4000c2f6 LCOUNT : 0x00000000

Backtrace: 0x40084f6e:0x3ffb1f10 0x40083b3a:0x3ffb1f30 0x40083d0d:0x3ffb1f50 0x400e2d7d:0x3ffb1f70 0x400d1336:0x3ffb1fa0 0x400d0485:0x3ffb1fc0 0x40083695:0x3ffb1fe0

硬件信息

使用的设备为ESP32-SE Lo-Fi,采用内置LoRa天线,已确认天线配置与设备官方参数匹配。

请求协助排查该看门狗超时错误的原因,并给出修复方案。

内容的提问来源于stack exchange,提问作者user24436260

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 01:00:19