天天看點

使用STM32CubeMX建立FreeRTOS項目

使用STM32CubeMX建立FreeRTOS項目

  • ​​介紹​​
  • ​​STM32CubeMX​​
  • ​​FreeRTOS​​
  • ​​使用流程​​
  • ​​後續​​

介紹

STM32CubeMX

STM32CubeMX是被廣泛使用的。它內建了晶片選型、引腳配置設定和功能配置,中間件配置,時鐘配置,初始代碼和項目的功能。

使用STM32CubeMX建立FreeRTOS項目

FreeRTOS

FreeRTOS 是與世界領先的晶片公司合作開發了 15 年,現在每 170 秒下載下傳一次,是面向微控制器和小型微處理器的市場領先的實時作業系統 (RTOS)。根據 MIT 開源許可免費分發,FreeRTOS 包含一個核心和一組持續增加的庫,可廣泛應用于各個行業領域。FreeRTOS 的建構重點是可靠性和易用性。

使用流程

  1. 建立一個ioc檔案工程選取到對應的晶片(這裡選用STM32C8T6)
  2. RCC快速選取外部時鐘
  3. 使用STM32CubeMX建立FreeRTOS項目
  4. 選擇Debug(不選不能燒錄和調試)
  5. 使用STM32CubeMX建立FreeRTOS項目
  6. 選擇時鐘源

    若要使用RTOS的話,sys這裡就不可以選取SysTick,要更換成其他定時器,這裡我選用了TIM1

  7. 使用STM32CubeMX建立FreeRTOS項目
  8. 在GPIO中選擇自己使用的引腳
  9. 使用STM32CubeMX建立FreeRTOS項目
  10. 選擇序列槽,設定裡面的參數
  11. 使用STM32CubeMX建立FreeRTOS項目
  12. 選擇FreeRTOS

    裡面的參數選擇自己用的,注意FreeRTOSConfig.h裡面的資訊都可以在這裡配置。

  13. 使用STM32CubeMX建立FreeRTOS項目
  14. 添加任務
  15. 使用STM32CubeMX建立FreeRTOS項目
  16. 設定系統時鐘
  17. 使用STM32CubeMX建立FreeRTOS項目
  18. 儲存、生成工程
  19. 修改工程代碼
void LED1ToggleTesk(void const * argument)
{
  /* USER CODE BEGIN LED1ToggleTesk */
  /* Infinite loop */
  for(;;)
  {

    HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_5);
    vTaskDelay(1000);
  }
  /* USER CODE END LED1ToggleTesk */
}      
  1. 實驗現象

    我們的LED燈會閃爍,亮一秒,滅一秒。

後續

繼續閱讀