1、简介
本次教程基于STM32CubeMX进行单片机与Freertos初始化配置,对使用Freertos进行实际操作介绍,并且分享一些使用过程中的小技巧与踩过的坑,在充当笔记的同时也方便小白快速上手。
2、STM3CubeMX配置
2.1 sys配置
2.2 RCC配置
2.3时钟配置
输入HCLK下方最大系数,点击回车时钟树自动配置。
2.4 串口配置
分别配置好单片机的串口1,为了方便后续的测试,具体配置如下:
2.5 freertos配置
CMSIS_V1、2日常使用区别不大,V2功能更全一些,因此直接使用V2进行开发。
接着点击Tasks and Queues 可以看到默认生成一个任务,接着在新建一个任务如下:
其中可以对任务的名称以及开辟的内存大小进行设置,设置完成后,可以看到有两个任务。
2.6 生成ARM程序
3、 Keil 5程序设计与测试
3.1 编译测试
出现如下错误:
FreeRTOS/Source/CMSIS_RTOS_V2/freertos_os2.h(31): error: #13: expected a file name报错
解决办法:
在下方将版本调低,重新生成文件再次编译。
版本调低后编译无误,如下:
3.2 任务测试
在freertos.c中可以看到两个任务:
分别在任务1、2通过串口1发送数据进行测试,首先在main.h中加入usart.h:
#include "usart.h"
接着在任务1、2中分别不同延时发送数据:
HAL_UART_Transmit(&huart1,(uint8_t *)"任务1\r\n",5,0xFFFF);
osDelay(500);
HAL_UART_Transmit(&huart1,(uint8_t *)"任务2\r\n",5,0xFFFF);
osDelay(1000);
测试结果如下: