1.調度鎖函數(shù)只是禁止了任務調度窥妇,并沒有關閉任何中斷
2.調度鎖開啟函數(shù) vTaskSuspendAll 和調度鎖關閉函數(shù) xTaskResumeAll 一定要成對使用
3.切不可在調度鎖開啟函數(shù) vTaskSuspendAll 和調度鎖關閉函數(shù) xTaskResumeAll 之間調用任何會引起任務切換的 API栋猖,比如 vTaskDelayUntil沛慢、vTaskDelay、xQueueSend 等
/*
*********************************************************************************************************
*? 函 數(shù) 名: vTaskLED
*? 功能說明: LED 閃爍
*? 形 參: pvParameters 是在創(chuàng)建該任務時傳遞的形參
*? 返 回 值: 無
* 優(yōu) 先 級: 2
*********************************************************************************************************
*/
static void vTaskLED(void *pvParameters)
{
while(1)
{
vTaskSuspendAll(); /* 開啟調度鎖 */
printf("任務 vTaskLED 正在運行\(zhòng)r\n");
//xTaskResumeAll ();
if(!xTaskResumeAll()) /* 關閉調度鎖,如果需要任務切換饼煞,此函數(shù)返回 pdTRUE,否則返回 pdFALSE */
{
taskYIELD ();
}
bsp_LedToggle(2);
vTaskDelay(200);
}
}