之前文章做過(guò)一次調(diào)查,盡然有大部分人都沒(méi)有接觸過(guò)RTOS,希望本文能帶領(lǐng)那部分朋友入門(mén)。
1寫(xiě)在前面
以前想要在STM32上跑FreeRTOS操作系統(tǒng),還需要自己一步一步的移植FreeRTOS代碼。
現(xiàn)在使用STM32CubeMX工具,就不需要這么繁雜的移植工作,只需輕松幾步就能讓FreeRTOS跑起來(lái)。
本文以STM32L412(NUCLEO-L412KB板卡)為例,其它STM32型號(hào)類(lèi)似。
同時(shí),使用目前(2019.06)最新的MDK和STM32CubeMX工具。因此,需要提前下載安裝工具和軟件包。
2準(zhǔn)備工作
主要有三類(lèi):
MDK-ARM (含軟件包)
STM32CubeMX (含軟件包)
FreeRTOS源碼(可選)
2.1 MDK-ARM(含軟件包)
這里需要下載安裝MDK-ARM,以及STM32對(duì)應(yīng)的軟件包。
官方安裝包地址:
http://www.keil.com/download/product
官方軟件包地址:
http://www.keil.com/dd2/Pack
具體安裝,使用方法可以參看我之前整理的專(zhuān)欄文章:【專(zhuān)欄】Keil系列教程
2.2 STM32CubeMX (含軟件包)
這里也是一樣,需要下載安裝STM32CubeMX,以及STM32對(duì)應(yīng)的軟件包。
官方下載地址:
www.st.com/stm32cubemx
具體安裝,使用方法可以參看我之前整理的專(zhuān)欄文章:【專(zhuān)欄】STM32CubeMX系列教程
提示:軟件包里包含F(xiàn)reeRTOS源碼,但不是最新的。
2.3 FreeRTOS源碼
上面STM32Cube軟件包其實(shí)包含了FreeRTOS源碼,但不是最新版本。
FreeRTOS官網(wǎng):
www.freertos.org
如果想使用最新版本,或指定某一版本,可以到下面地址下載:
https://sourceforge.net/projects/freertos/files/FreeRTOS
上面地址包含F(xiàn)reeRTOS歷史版本,如果使用指定版本,將源碼替換即可(一本來(lái)說(shuō)都兼容)。
3STM32CubeMX創(chuàng)建工程
有了STM32CubeMX這個(gè)工具,開(kāi)發(fā)STM32變得更加快捷。
本文以STM32L412KB為例,其它STM32型號(hào)原理類(lèi)似。
1.打開(kāi)軟件,進(jìn)入選擇器
2.選中MCU
3.LED引腳配置
4.UART輸出配置
這里配置成異步模式之后,引腳自動(dòng)配置(我的開(kāi)發(fā)板RX引腳不是默認(rèn),則需要自己配置)。
5.使能FreeRTOS
6.配置FreeRTOS任務(wù)
這里創(chuàng)建兩個(gè)FreeRTOS任務(wù):Task1和Task2。
提示:針對(duì)初學(xué)者,使用STM32CubeMX配置FreeRTOS時(shí),大部分參數(shù)默認(rèn)即可。
當(dāng)你熟悉之后,可以進(jìn)一步掌握每項(xiàng)參數(shù)。
7.配置時(shí)鐘
這里選擇MSI作為時(shí)鐘源,進(jìn)行倍頻,是系統(tǒng)時(shí)鐘達(dá)到80M。
8.工程管理配置
這里參數(shù)是常規(guī)配置,可參看我教程:【專(zhuān)欄】STM32CubeMX系列教程
9.生成并打開(kāi)工程
4源碼分析
4.1 在兩個(gè)任務(wù)中添加應(yīng)用程序
提示:這里使用了huart2,所以需要包含:#include "usart.h"
4.2 說(shuō)明
任務(wù)Task1:間隔500ms閃爍(變化)一次LED(PB3)。
任務(wù)Task2:間隔1000ms,串口UART2發(fā)送一次數(shù)據(jù)“Demo...”
osDelay函數(shù)代表系統(tǒng)延時(shí),單位ms.
然后,就是LED閃爍,和UART發(fā)送函數(shù)。
4.3 編譯下載運(yùn)行
上面步驟完成之后,就可以編譯,然后直接下載運(yùn)行了,通過(guò)串口調(diào)試助手可以看見(jiàn)輸出字符“Demo...”。
5工程及源碼下載
為方便初學(xué)者,這里提供對(duì)應(yīng)工程和源碼,方便大家學(xué)習(xí)。
百度網(wǎng)盤(pán):
https://pan.baidu.com/s/1IdsuIlqqFhuJYxMI6EC7dQ
提取碼:7k5i
提示:公號(hào)不支持外部鏈接,請(qǐng)復(fù)制鏈接到瀏覽器打開(kāi)。
鏈接后期可能會(huì)失效,關(guān)注公眾號(hào)『strongerHuang』及時(shí)獲取動(dòng)態(tài)。
推薦閱讀:
1.工信部宣布5G商用牌照即將發(fā)放!
2.IC封裝原理及功能特性匯總
-
STM32
+關(guān)注
關(guān)注
2264文章
10854瀏覽量
354293 -
FreeRTOS
+關(guān)注
關(guān)注
12文章
483瀏覽量
61915
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論