1、简介
本文将使用CubeMX工具完成CMSIS_V2 FreeRTOS工程的创建,以及参数设置、任务部署和测试案例
2、CubeMX设置
使能串口1,用于输出调试信息
选择FREERTOS库,接口版本为CMSIS_V2
默认设置中已经初始化了一个任务,现在新增一个任务
注意增大堆栈大小,避免可能的堆栈内存溢出
最后生成工程,以下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,基本符合程序设定的执行逻辑。