ESP-IDF 开发esp32s3时的开发报错解决
·
最近开发esp32,突然意识到,有些报错感觉值得记录下来,于是有本篇,不仅供我记录,同时也可以给大家参考
本系列会一直更新
一.2026/1/4 看门狗超时错误
报错详情:
E (80779) task_wdt: Task watchdog got triggered. The following tasks/users did not reset the watchdog in time:
E (80779) task_wdt: - IDLE0 (CPU 0)
E (80779) task_wdt: Tasks currently running:
E (80779) task_wdt: CPU 0: main
E (80779) task_wdt: CPU 1: IDLE1
E (80779) task_wdt: Print CPU 0 (current core) backtrace
问题原因
while(1) 死循环中没有任何延迟,导致主任务一直占用 CPU,IDLE 任务无法运行,触发看门狗超时。
解决方案
在循环中添加了 vTaskDelay(pdMS_TO_TICKS(1000)),每秒让出一次 CPU 时间,让 IDLE 任务可以运行。
二, FreeRTOS 任务函数不能直接返回
E (1834) FreeRTOS: FreeRTOS Task "afe_sr_iface_ta" should not return, Aborting now!
问题原因
FreeRTOS 任务函数执行完毕后直接返回,触发系统中止。FreeRTOS 任务有两种正确的结束方式:
- 无限循环 - 任务永远运行(最常用)
- 主动删除 - 调用
vTaskDelete(NULL)删除自己
解决方案
- 添加了
while(1)无限循环 - 循环中添加了
vTaskDelay()避免占满 CPU
对单片机感兴趣但时常因为一个bug解决不了的,建议加群,我喜欢聚在一起唠嗑,有写好的有趣的小demo我也会分享在群里哦
更多推荐

所有评论(0)