STMCubeMX在创建FreeRtos工程中使用CMSIS_V2接口封装与CMSIS_V1版本在初始化中略有不同。在用户任务的初始化中CMSIS_V1对用户任务进行了创建,而CMSIS_V2并没有创建,需要用户使用osThreadNew();函数进行创建即可。

MX_FREERTOS_Init()函数

CMSIS_V1对用户函数进行创建

CMSIS_V2中并没有创建
同时参考https://arm-software.github.io/CMSIS_5/RTOS2/html/group__CMSIS__RTOS__ThreadMgmt.html#thread_examples例程和CMSIS_os.h中的说明将osThreadCreate();函数替换为osThreadNew();。

其中osThreadNew();函数说明如下:

函数说明
func:为创建函数的指针;
argumen:为函数参数,如无可为NULL;
attr:为创建任务所需的参数结构体;
说明如下:

结构体说明
在MX_FREERTOS_Init();中添加任务创建即可;