核心原因通常不是 Wi-Fi 任务本身,而是 Wi-Fi 驱动在 Core0 上创建了多个高优先级任务(如 wifi、bt、esp_timer、ipc 等),并且 ADC 连续采样若使用 DMA 或 esp_adc 驱动,其内部中断/回调可能仍运行在 Core0。FreeRTOS 的抢占基于优先级,只要 Core0 上存在优先级高于你的采样任务的任务,就会抢占。另外,若你的采样任务未显式绑定到 Core1,它可能被调度到 Core0;即使绑定,ADC 中断默认也由 Core0 处理。建议:1) 用 xTaskCreatePinnedToCore 把采样任务钉到 Core1;2) 检查并提高采样任务优先级,但不要高于 Wi-Fi 关键任务;3) 使用 ADC DMA 连续模式,减少 CPU 参与;4) 用 vTaskPrioritySet 动态调整,或用临界区/中断屏蔽保护关键采样段;5) 通过 esp_timer 或硬件定时器触发采样,避免任务调度抖动。
mcuku 阿沐 · 2026-09-23