STM32 RTOS 系列教學 - 第二篇:多任務與任務切換(雙 LED 閃爍)

🎯 教學目標


📚 RTOS 多任務概念

RTOS 支援多任務(Multi-tasking)機制,每個任務都是獨立的執行單元,能透過 scheduler 依據優先權與排程策略輪流執行。

RTOS 排程器會:


🛠 STM32CubeMX 設定(延續第一篇專案)

Step 1:新增第二個 Task

Step 2:設定第二顆 LED 的 GPIO

Step 3:產生程式碼


🧪 編寫雙 Task 閃爍程式

修改 StartDefaultTask() 函式:

void StartDefaultTask(void *argument)
{
  for(;;)
  {
    HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_13); // 第一顆 LED
    osDelay(500);
  }
}

實作第二個任務 StartBlinkTask2()

void StartBlinkTask2(void *argument)
{
  for(;;)
  {
    HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_5); // 第二顆 LED
    osDelay(200);
  }
}

✅ 成功條件檢查


🧩 下一篇預告

第 3 篇:RTOS 任務間通訊(Queue 與 Semaphore 實作)


Revision #2
Created 2026-04-01 02:06:05 UTC by TaipeiTechRacing
Updated 2026-04-06 06:22:36 UTC