1、简介
本文将使用CubeMX工具完成CMSIS_V2 FreeRTOS工程的创建,以及参数设置、任务部署和测试案例
2、CubeMX设置
使能串口1,用于输出调试信息

选择FREERTOS库,接口版本为CMSIS_V2
![1747310368874449.png G7PMS3OODL(Z_[81)@F_}]L.png](http://uphotos.eepw.com.cn/1709346044/pics/1747310368874449.png)
默认设置中已经初始化了一个任务,现在新增一个任务

注意增大堆栈大小,避免可能的堆栈内存溢出

最后生成工程,以下Keil工程一览
包含了FreeRTOS的部署、初始化及运行设置

3、任务部署
任务部署的代码放在freertos.c文件

其中任务StartDefaultTask可定义为:
/* USER CODE END Header_StartDefaultTask */
void StartDefaultTask(void *argument)
{
/* USER CODE BEGIN StartDefaultTask */
/* Infinite loop */
for(;;)
{
osDelay(500);
printf("DefaultTask Runing\n");
}
/* USER CODE END StartDefaultTask */
}表示每500ms,输出DefaultTask Runing字符串一次
任务StartTask02可定义为:
/* USER CODE END Header_StartTask02 */
void StartTask02(void *argument)
{
/* USER CODE BEGIN StartTask02 */
/* Infinite loop */
for(;;)
{
osDelay(1500);
printf("MyTask02k Runing\n");
}
/* USER CODE END StartTask02 */
}表示每1500ms,输出MyTask02k Runing字符串一次
4、实验结果

在时间顺序上,每输出3次字符串DefaultTask Runing后输出一次MyTask02k Runing,基本符合程序设定的执行逻辑。
我要赚赏金
