[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);
}
}
评论区(暂无评论)