之前文章做過一次調查,盡然有大部分人都沒有接觸過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...”。
5工程及源碼下載
為方便初學者,這里提供對應工程和源碼,方便大家學習。
百度網盤:
https://pan.baidu.com/s/1IdsuIlqqFhuJYxMI6EC7dQ
提取碼:7k5i
提示:公號不支持外部鏈接,請復制鏈接到瀏覽器打開。
鏈接后期可能會失效,關注公眾號『strongerHuang』及時獲取動態。
推薦閱讀:
1.工信部宣布5G商用牌照即將發放!
2.IC封裝原理及功能特性匯總
-
STM32
+關注
關注
2309文章
11162瀏覽量
373434 -
FreeRTOS
+關注
關注
14文章
499瀏覽量
66938
發布評論請先 登錄
FreeRTOS入門資料
基于 X-Cube-FreeRTOS_Heap4 和 CubeMX 生成 UCPD 項目介紹
FreeRTOS 空閑任務
FreeRTOS和uC/OS-II的功能特性
FreeRtos 能否同時使用兩個 CPU?
FreeRTOS任務調度及優先級問題
Task任務:LuatOS實現“任務級并發”的核心引擎
如何輕松幾步實現在STM32上運行FreeRTOS任務
評論