輕鬆幾步實現在STM32上運行FreeRTOS任務

之前文章做過一次調查,盡然有大部分人都沒有接觸過RTOS,希望本文能帶領那部分朋友入門。

1寫在前面

以前想要在STM32上跑FreeRTOS操作系統,還需要自己一步一步的移植FreeRTOS代碼。

現在使用STM32CubeMX工具,就不需要這麼繁雜的移植工作,只需輕鬆幾步就能讓FreeRTOS跑起來。

本文以STM32L412(NUCLEO-L412KB板卡)爲例,其它STM32型號類似。

同時,使用目前(2019.06)最新的MDK和STM32CubeMX工具。因此,需要提前下載安裝工具和軟件包。

2準備工作

主要有三類:

  • MDK-ARM (含軟件包)
  • STM32CubeMX (含軟件包)
  • FreeRTOS源碼(可選)

2.1 MDK-ARM(含軟件包)

這裏需要下載安裝MDK-ARM,以及STM32對應的軟件包。

官方安裝包地址:

http://www.keil.com/download/product

官方軟件包地址:

http://www.keil.com/dd2/Pack

具體安裝,使用方法可以參看我之前整理的專欄文章:【專欄】Keil系列教程

2.2 STM32CubeMX (含軟件包)

這裏也是一樣,需要下載安裝STM32CubeMX,以及STM32對應的軟件包。

官方下載地址:

www.st.com/stm32cubemx

具體安裝,使用方法可以參看我之前整理的專欄文章:【專欄】STM32CubeMX系列教程

提示:軟件包裏包含FreeRTOS源碼,但不是最新的。

2.3 FreeRTOS源碼

上面STM32Cube軟件包其實包含了FreeRTOS源碼,但不是最新版本。

FreeRTOS官網:

www.freertos.org

如果想使用最新版本,或指定某一版本,可以到下面地址下載:

https://sourceforge.net/projects/freertos/files/FreeRTOS

上面地址包含FreeRTOS歷史版本,如果使用指定版本,將源碼替換即可(一本來說都兼容)。

3STM32CubeMX創建工程

有了STM32CubeMX這個工具,開發STM32變得更加快捷

本文以STM32L412KB爲例,其它STM32型號原理類似。

1.打開軟件,進入選擇器

2.選中MCU

3.LED引腳配置

4.UART輸出配置

這裏配置成異步模式之後,引腳自動配置(我的開發板RX引腳不是默認,則需要自己配置)。

5.使能FreeRTOS

6.配置FreeRTOS任務

這裏創建兩個FreeRTOS任務:Task1和Task2。

提示:針對初學者,使用STM32CubeMX配置FreeRTOS時,大部分參數默認即可。

當你熟悉之後,可以進一步掌握每項參數。

7.配置時鐘

這裏選擇MSI作爲時鐘源,進行倍頻,是系統時鐘達到80M。

8.工程管理配置

這裏參數是常規配置,可參看我教程:【專欄】STM32CubeMX系列教程

9.生成並打開工程

4源碼分析

4.1 在兩個任務中添加應用程序

提示:這裏使用了huart2,所以需要包含:#include "usart.h"

4.2 說明

任務Task1:間隔500ms閃爍(變化)一次LED(PB3)。

任務Task2:間隔1000ms,串口UART2發送一次數據“Demo...”

osDelay函數代表系統延時,單位ms.

然後,就是LED閃爍,和UART發送函數。

4.3 編譯下載運行

上面步驟完成之後,就可以編譯,然後直接下載運行了,通過串口調試助手可以看見輸出字符“Demo...”。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章