第3章 STM32CUBE的FREERTOS配置和任务使用

前言

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


一、STM32CUBE配置freertos

根据图片配置freertos并配置一个自己的任务
alt text
由于freertos占用了systick定时器,为hal库修改默认使用的定时器
alt text
ctrl+s保存generate code

二、代码和测试

使用freertos后,main函数的while(1)永远不会进入,在osKernelStart时会进行系统调度死循环
修改freertos.c,增加的内容主要两个任务之间的处理,入口分别为StartDefaultTaskStartTask

/* 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 */

连接好烧录器编译并烧录

可以观察到每过一秒打印两个任务的内容
alt text


总结

主要介绍了STM32CUBE下freertos的配置

参考

https://blog.csdn.net/qq_36347513/article/details/122187066

posted @ 2025-09-01 13:41  夏影~  阅读(59)  评论(0)    收藏  举报