FreeRTOS使用教程(配合CubeMX)
生活随笔
收集整理的這篇文章主要介紹了
FreeRTOS使用教程(配合CubeMX)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
FreeRTOS使用教程(配合CubeMX)
一、CubeMX配置
關于FreeRTOS的具體配置一般集中在Kernel Setting中。具體參數一般可以默認,有特殊需求可以去進行一些調整。
默認TICK_RATE_HZ為1000,表示FreeRTOS的系統時鐘節拍為1000Hz(1ms)
可以理解為系統心跳,后面使用到的osDelay等函數的時間參數的單位就是1ms
之后就可以在Tasks and Queneus中Task中點擊Add添加任務。
- Priority: 優先級根據需要更改
- Stack Size: 任務棧大小一般128Words就夠用
- Entry Function:入口函數名稱
- Code Generation Option:
- Default:生成在freertos.c中
- As external:只在freertos.c進行了extern函數聲明
因此這里可以開啟一個定時器TIM6作為HAL庫的時鐘源,rtos繼續使用systick作為時鐘源。
System Core中的SYS配置的是HAL庫的時鐘源
二、任務代碼的編寫
一個任務的標準寫法:
/* USER CODE END Header_Task_10ms */ void Task_10ms(void *argument) {/* USER CODE BEGIN Task_10ms *//* Infinite loop */for(;;){//10msosDelay(10);}/* USER CODE END Task_10ms */ }注意:for(;;)里osDelay()不可缺少,比如這里osDelay(10)表示10ms(具體來說應該是10個tick后,取決于前面freertos的配置)后重新再來執行此任務
Tips:osDelay()這種延時是不精確的,因此就有vTaskDelayUntil()函數,此函數可以實現任務每次運行一個具體時間。
總結
以上是生活随笔為你收集整理的FreeRTOS使用教程(配合CubeMX)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: FreeRTOS学习记录(安富莱Free
- 下一篇: 独家丨我在北工大看王校长吃热狗