FreeRTOSConfig.h 中定义configMAX_PRIORITIES最大有25个优先级-1。必须将 INCLUDE_uxTaskPriorityGet 定义为 1,此函数才可用。uxTaskPriorityGet函数来获取优先级号,函数在api 任务控制里。
1值越大优先级越高,2同级优先级先创建先运行,3不同优先级的-大优先级先运行。
void vTaskCode(void *pvParam)
{
char *ptxt;
ptxt = (char *)pvParam;
printf("get-str= %s\n", ptxt);
vTaskDelay(1000 / portTICK_PERIOD_MS);
vTaskDelete(NULL); // 删除句柄任务
}
static const char *pstr = "str-test";
void app_main(void)
{
UBaseType_t Priority = 0;
TaskHandle_t xHandle = NULL;
xTaskCreate(
vTaskCode, // 任务函数
"task1", // 名字
2048, // 分配内存
(void *)pstr, // 传参数
1, // 任务优先级
&xHandle); // 句柄
Priority = uxTaskPriorityGet(xHandle);
printf("get-Priority= %d\n", Priority);
}
注意:如果优先级大于>优先级那就为最大优先级,一般不要改大优先级会占用内存。