系列文章目录STM32 Cubemax(十四) ——FreeRTOS移植与LED点灯测试
前言
之前的代码其实一直都是裸机在跑,即本质上就是在一个while(1)中在跑,这对于任务量较小的程序来说,没有什么问题。但最近遇到一些工程性的代码,其参考代码均采用了FreeRTOS操作系统,以此来记录一下自己的学习过程。
一、CubeMax移植FreeRTOS
废话不多说,想把FreeRTOS配置起来,再说一些其他东西。
时钟配置?

?时钟树配置
这个地方主要根据自己的开发板配置下面两个部分

?嘀嗒时钟配置
如果使用FreeRTOS,嘀嗒时钟源要使用定时器产生的,这里不说原因,先配置就好。

?FreeRTOS配置
这里下面的配置功能,等有特殊功能需要,再介绍,这里不需要动(其实也就是打开或者关闭一些功能)

?FreeRTOS任务配置
我们这里配置两个任务来实现两个LED的翻转任务。

?主要点击Tasks and Queues的Taks下的add来添加任务,我这里已经添加了两个了。
里面的一些配置主要就是有关任务优先级,堆栈大小,入口函数名字等。
IO口配置
简单配置两个LED的IO口

?然后生成代码就OK了。
二、代码编写
生成代码后,我们点开生成的freertos.c文件

在文件里可以看到创建的两个任务的入口函数名字,在其中编写LED翻转代码即可。这里用了osDelay函数,现在简单的把他当成是ms级延长就可以。

?下载程序,如果两个LED闪烁时间不一致,就代码移植配置成功了。
|