在ESP32双核Arduino环境中,loopTask默认运行在Core1、优先级1,自定义任务若用xTaskCreatePinnedToCore可指定核心与优先级。共享SPI总线时,必须用互斥量保护:创建SemaphoreHandle_t spiMutex = xSemaphoreCreateMutex(),在每次SPI传输前xSemaphoreTake(spiMutex, portMAX_DELAY),传输后xSemaphoreGive。注意Arduino的SPI库本身不提供总线锁,多任务并发调用SPI.beginTransaction/transfer会破坏时序。实测中,若高优先级任务等待低优先级loopTask持有的SPI锁,而loopTask又被中优先级任务抢占,会发生优先级反转。FreeRTOS互斥量支持优先级继承,可缓解此问题,但需确保使用xSemaphoreCreateMutex而非二值信号量。建议将SPI访问封装为独立任务,通过队列接收请求,避免多任务直接竞争;同时把SPI任务优先级设为高于所有使用者,减少反转窗口。实测用逻辑分析仪观察CS与SCK,可验证锁的有效性。