FreeRTOS点灯(1) 任务创建函数 BaseType_t xTaskCreate学习所需设备器件STM32F407单片机、st-link下载器BaseType_t 为有符号的整数类型。在FreeRTOS配置文件portmacro.h可移植层头文件中有定义。我的库函数版本FreeRTOS Kernel V10.5.1 定义如下typedef long BaseType_t;在FreeRTOS中这样定义BaseType_t的好处就是 1、可以跨平台移植会自动匹配目标平台。2、会自动选择目标架构最高效的数据类型比如32处理器使用32位整型16位处理器使用16位整型。3、类型安全。BaseType_t 的使用场景1、函数返回值如我们前面说的任务创建函数返回值就是BaseType_t。2、布尔类型判断。3、状态判断。BaseType_t xTaskCreate( TaskFunction_t pxTaskCode,const char * const pcName,const configSTACK_DEPTH_TYPE usStackDepth,void * const pvParameters,UBaseType_t uxPriority,TaskHandle_t * const pxCreatedTask )其中TaskFunction_t pxTaskCode通过看TaskFunction_t的定义可知在projdefs.h中定义了typedef void (* TaskFunction_t)( void * )。意思是定义一个TaskFunction_t类型的函数指针用于指向任务函数。const char * const pcName给任务起一个const char*类型的名字。const configSTACK_DEPTH_TYPE usStackDepth 是分配任务栈的大小单位为字Word在这里我使用的32F40系列单片机内核为Cortex-M4是32位系统1字等于4字节。void * const pvParameters:传递一个void*类型的参数。UBaseType_t uxPriority:UBaseType_t为无符号整型这里是定义任务的优先级。TaskHandle_t * const pxCreatedTask TaskHandle_t*这里是任务控制块指针pxCreatedTask是一个输出参数用于接收新创建任务的任务句柄。可以给他空指针NULL也可以给具体任务句柄任务句柄是TCB指针TCB指的是任务控制块TCB指针指向每个任务块的首地址。我们可以使用句柄进行任务的挂起、删除、恢复、变换优先级、查看信息等操作。