查看原文
其他

轻松几步实现在STM32上运行FreeRTOS任务

strongerHuang strongerHuang 2021-01-31

置顶/星标公众,不错过每一条消息


之前文章做过一次调查,尽然有大部分人都没有接触过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封装原理及功能特性汇总


6最后

我的知乎:strongerHuang

我的网站:www.strongerhuang.com


若觉得文章对你有帮助,随手点“在看”、转发分享,也是我继续更新的动力。


扫描下面二维码、关注公众号,在底部菜单中查看更多精彩内容!


长按识别图中二维码关注

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存