TWDT误触发在ESP32双核下常见根因是:TWDT默认监控两个核心的IDLE任务,而IDLE任务优先级为0,任何高优先级任务长期占用CPU(如忙等、长临界区、关中断过久)都会让对应核心的IDLE得不到调度,从而触发TWDT。排查步骤:1) 用esp_task_wdt_status()确认被监控任务;2) 检查是否有任务在while(1)中不阻塞;3) 检查portENTER_CRITICAL或taskENTER_CRITICAL区是否过长;4) 检查是否在中断中长时间关中断。配置建议:在menuconfig中开启CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU0/CPU1,按需只监控一个核心;对确实需要长时间运行的任务,用esp_task_wdt_add()注册并周期性esp_task_wdt_reset(),但不要在IDLE钩子里喂狗——IDLE钩子本身就在IDLE上下文运行,喂狗会掩盖CPU饥饿问题。更推荐用esp_task_wdt_init()设置合理超时(如5-10s),并配合任务设计保证每个核心都有阻塞点让IDLE运行。若使用vTaskDelay或阻塞式API,IDLE自然获得调度,无需额外喂狗。