STM32CubeMX创建F429 FreeRTOS工程(文末附源码)

1. 打开STM32CubeMX

  • 我使用的是Version 5.5.0
    STM32CubeMX创建F429 FreeRTOS工程(文末附源码)_第1张图片

2. 根据芯片创建工程

  • 此处我使用的是stm32f429igt6
    STM32CubeMX创建F429 FreeRTOS工程(文末附源码)_第2张图片
    STM32CubeMX创建F429 FreeRTOS工程(文末附源码)_第3张图片

3. 配置时钟

  • 选择外部时钟
    STM32CubeMX创建F429 FreeRTOS工程(文末附源码)_第4张图片
  • 配置时钟树
    STM32CubeMX创建F429 FreeRTOS工程(文末附源码)_第5张图片

4. 配置串口

STM32CubeMX创建F429 FreeRTOS工程(文末附源码)_第6张图片

5. 配置LED

STM32CubeMX创建F429 FreeRTOS工程(文末附源码)_第7张图片

6. 勾选使用RTOS

  • 此处我们选择新版本:CMSIS_V2
    STM32CubeMX创建F429 FreeRTOS工程(文末附源码)_第8张图片
  • 添加任务
    STM32CubeMX创建F429 FreeRTOS工程(文末附源码)_第9张图片
    STM32CubeMX创建F429 FreeRTOS工程(文末附源码)_第10张图片
    STM32CubeMX创建F429 FreeRTOS工程(文末附源码)_第11张图片

7. 生成工程

STM32CubeMX创建F429 FreeRTOS工程(文末附源码)_第12张图片
STM32CubeMX创建F429 FreeRTOS工程(文末附源码)_第13张图片

  • 可能出现以下警告:
    STM32CubeMX创建F429 FreeRTOS工程(文末附源码)_第14张图片

其意思就是,当使用了FreeRtos的时候,强烈建议HAL库使用除了Systick以外的时钟源。也就是说当不使用FreeRtos的时候,HAL使用的是systick作为时钟源,现在使用了rtos,不建议hal库和rtos一起使用systick作为时钟源。

  • 根据软件的建议,使用定时作为HAL库的时钟源:
  • 这里我们使用TIM1作为HAL库的时钟源,点击生成代码时,上边的警告已经不再出现了
    STM32CubeMX创建F429 FreeRTOS工程(文末附源码)_第15张图片

8. 测试RTOS是否添加成功

8.1 打开MDK工程

STM32CubeMX创建F429 FreeRTOS工程(文末附源码)_第16张图片

8.2 在freertos.c中添加任务函数
  • 引入头文件
/* USER CODE BEGIN Includes */     
#include "usart.h"
/* USER CODE END Includes */
  • 修改Func1_LED函数
void Func1_LED(void *argument)
{
  /* USER CODE BEGIN Func1_LED */
  /* Infinite loop */
  for(;;)
  {
	HAL_GPIO_WritePin(GPIOH, GPIO_PIN_10, GPIO_PIN_RESET);
	osDelay(100);
	HAL_GPIO_WritePin(GPIOH, GPIO_PIN_10, GPIO_PIN_SET);
	osDelay(100);
  }
  • 修改Func2_USART1函数
void Func2_USART1(void *argument)
{
  /* USER CODE BEGIN Func2_USART1 */
	uint8_t TxData[20]= "usart1 transmit!\n";
  /* Infinite loop */
  for(;;)
  {
	HAL_UART_Transmit(&huart1,TxData,20,0xffff);
    osDelay(500);
  }
  /* USER CODE END Func2_USART1 */
}

STM32CubeMX创建F429 FreeRTOS工程(文末附源码)_第17张图片

8.3 编译,下载

STM32CubeMX创建F429 FreeRTOS工程(文末附源码)_第18张图片

  • LED灯正常闪烁,同时串口正常发送
    STM32CubeMX创建F429 FreeRTOS工程(文末附源码)_第19张图片

移植成功!

CMSIS-RTOS2 API参考:
http://www.keil.com/pack/doc/CMSIS_Dev/RTOS2/html/group__CMSIS__RTOS.html

源码地址:https://download.csdn.net/download/u014779536/12116465

你可能感兴趣的:(#,2.1,STM32CubeMX,#,2.2,实时操作系统)