[FreeRTOS] 学习记录 - 创建一个多任务程序
HAL 库版本
在使用 CubeMX 初始化的 FreeRTOS 工程后,可以选择默认创建一个线程(名称可配置),位于 freertos.c
中:
/* creation of mainTask */
mainTaskHandle = osThreadNew(StartDefaultTask, NULL, &mainTask_attributes);
/* USER CODE BEGIN RTOS_THREADS */
创建一个新的任务,则需要使用 xTaskCreate
函数,这个函数的声明如下:
BaseType_t xTaskCreate( TaskFunction_t pxTaskCode,
const char * const pcName,
const configSTACK_DEPTH_TYPE usStackDepth,
void * const pvParameters,
UBaseType_t uxPrioity,
TaskHandle_t * const pxCreateTask );
TaskFunction_t pxTaskCode
:指定的运行函数const char * const pcName
:名字const configSTACK_DEPTH_TYPE usStackDepth
:栈的深度void * const pvParameters
:参数UBaseType_t uxPrioity
:优先级TaskHandle_t * const pxCreateTask
:句柄
创建一个任务用于串口发送数据:
xTaskCreate(usartTask, "usartTask", 128, NULL, osPriorityNormal, NULL);
void usartTask(void *argument){
while(1){
printf("usart task is run!\n");
HAL_Delay(500);
}
}
评论区(暂无评论)