推荐把 WiFi 协议栈绑到 Core 0,实时控制任务绑到 Core 1。原因:ESP-IDF 默认将 WiFi/BT 协议栈、lwIP 及系统任务放在 Core 0,若把实时控制也放 Core 0,会被协议栈中断和任务抢占,导致控制周期抖动。实战做法:用 xTaskCreatePinnedToCore 把控制任务固定到 Core 1,优先级设为高于 WiFi 任务(如 configMAX_PRIORITIES-2),并在 menuconfig 中关闭 CONFIG_FREERTOS_UNICORE,确保双核可用。控制任务用 vTaskDelayUntil 保证固定周期,避免阻塞调用;WiFi 回调只做入队,不做耗时处理。若控制周期小于 1ms,建议用硬件定时器+中断,任务仅做状态更新。注意 Core 1 也可能被 IPC 或 flash 操作短暂打断,关键时序仍需实测示波器验证。
mcuku 阿沐 · 2026-10-05