创建任务:xTaskCreate()

      BaseType_t xTaskCreate( TaskFunction_t pxTaskCode, // 函数指针, 任务函数
      const char * const pcName, // 任务的名字
      const configSTACK_DEPTH_TYPE usStackDepth, //栈大小,单位为 word
      void * const pvParameters, // 调用任务函数时传入的参数
      UBaseType_t uxPriority, // 优先级
      TaskHandle_t * const pxCreatedTask ); // 任务句柄, 以后使用它来操作这个任务

删除任务:vTaskDelete()

      void vTaskDelete(TaskHandle_t xTaskToDelete);//传入任务句柄
      句柄为NULL时,删除自己
      为自己时,删除自己
      为其他任务时,删除其他任务

暂停任务:vTaskSuspend()

    void vTaskSuspend(TaskHandle_t xTaskToSuspend);//传入任务句柄
    句柄为NULL时,暂停自己
    为自己时,暂停自己
    为其他任务时,暂停其他任务

恢复任务:vTaskResume()

      void vTaskResume(TaskHandle_t vTaskResume);//传入任务句柄
      无法自己恢复自己,因为被暂停的任务是无法执行的

其他函数:

uxTaskPriorityGet()

    UBaseType_t uxTaskPriorityGet( const TaskHandle_t xTask )//传入任务句柄
    此函数用来获取指定任务的优先级,使用INCLUDE_uxTaskPriorityGet函数的话应该定义为1

vTaskPrioritySet()

    void vTaskPrioritySet(xTaskHandle pxTask,unsigned
    portBASE_TYPEuxNewPriority);
    //传入任务句柄,新的优先级
    此函数用于改变某一个任务的任务优先级,要使用此函数的话宏
    INCLUDE_vTaskPrioritySet应该定义为1

uxTaskGetSystemState():

    UBaseType_t uxTaskGetSystemState( TaskStatus_t * const
                                      pxTaskStatusArray,
                                      const UBaseType_t
                                      uxArraySize,
                                      uint32_t * const
                                      pulTotalRunTime )
    //说明:
    pxTaskStatusArray: 指向 TaskStatus_t 结构体类型的数组首地址,每个任务至少需
    要一个TaskStatus_t 结 构 体 , 任 务 的 数 量 可 以 使 用 函 数
    uxTaskGetNumberOfTasks()
    uxArraySize: 保存任务壮态数组的数组的大小。
    pulTotalRunTime: 如果 configGENERATE_RUN_TIME_STATS 为 1 的话此参数用来保存系统总的运行时间。
    返回值: 统计到的任务壮态的个数,也就是填写到数组 pxTaskStatusArray 中的个数,此值应该等于函数uxTaskGetNumberOfTasks()的返回值。
    如果参数uxArraySize太小的话返回值可能为0
    此函数用于获取系统中所有任务的任务壮态,每个任务的壮态信息保存在一个TaskStatus_t类型的结构体里面,
    这个结构体里面包含了任务的任务句柄、任务名字、堆栈、优先级等信息,
    要使用此函数的话宏 configUSE_TRACE_FACILITY 应该定义为 1
最后修改:2023 年 03 月 21 日
如果觉得我的文章对你有用,请随意赞赏