文章目录
前言
上一次是初步接触实时系统,这次开始认真学习
一、创建一个任务需要注意哪些?
1、任务创建函数xTaskCreate
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 )//任务句柄
这里说一下 任务标签 ,它可以和任务名重名,也可以不重名。
任务优先级值越小,优先级越低。
任务句柄,就是在代码前面需要定义一个
TaskHandle_t Task1_Handler = NULL;
所以传任务句柄参数时可以传NULL。
2、代码分析
#include "sys.h"
#include "usart.h"
#include "led.h"
#include "FreeRTOS.h"
#include "task.h"
//任务句柄
TaskHandle_t Task1_Handler = NULL;
TaskHandle_t Task2_Handler = NULL;
void *Task1_func (void *param)
{
while(1)
{
printf("AS");
}
}
void *Task2_func (void *param)
{
while(1)
{
printf("BJ");
}
}
int main(void)
{
delay_init(); //延时函数初始化
uart_init(115200); //初始化串口
LED_Init();
//初始化LED
xTaskCreate((TaskFunction_t)Task1_func, "Task1", 52, NULL, 1, &