第3章 STM32CUBE的FREERTOS配置和任务使用
前言
硬件的配置由前面的工程递增,会根据目的修改部分控制代码
由于本人较懒,记录主要是过程,原理性的东西网上一大把,我就不赘述了,由于懒,主要由图片和代码加少量文字组成
源码地址https://gitcode.com/qq_36517072/stm32,第x章为cx文件夹
一、STM32CUBE配置freertos
根据图片配置freertos并配置一个自己的任务

由于freertos占用了systick定时器,为hal库修改默认使用的定时器

ctrl+s保存generate code
二、代码和测试
使用freertos后,main函数的while(1)永远不会进入,在osKernelStart时会进行系统调度死循环
修改freertos.c,增加的内容主要两个任务之间的处理,入口分别为StartDefaultTask和StartTask
/* USER CODE BEGIN Includes */
#include <stdio.h> //串口重定向
#include "gpio.h"
/* USER CODE END Includes */
......
/* USER CODE BEGIN StartDefaultTask */
/* Infinite loop */
for(;;)
{
HAL_GPIO_TogglePin(GPIOF,LED0_Pin);
printf("this is DefaultTask\r\n");
osDelay(1000);
}
/* USER CODE END StartDefaultTask */
......
/* USER CODE BEGIN StartTask */
/* Infinite loop */
for(;;)
{
HAL_GPIO_TogglePin(GPIOF,LED1_Pin);
printf("this is myTask\r\n");
osDelay(1000);
}
/* USER CODE END StartTask */
连接好烧录器编译并烧录
可以观察到每过一秒打印两个任务的内容

总结
主要介绍了STM32CUBE下freertos的配置

浙公网安备 33010602011771号