点击查看代码
/**
*********************************************************************************
* @file main.c
* @author
* @version
* @date 2024/07/20
* @brief 利用FreeRTOS的动态分配内存的方案来创建一个任务,学习API接口的使用流程
创建一个任务,用于点亮一盏LED灯 PF9 -- LED0
*********************************************************************************
**/
#include "stm32f4xx.h" //必须包含
#include <stdio.h>
#include "led.h"
#include "FreeRTOS.h"
#include "task.h"
//任务的接口
void led_task(void *arg)
{
for(;;)
{
//LED灯亮
GPIO_ResetBits(GPIOF,GPIO_Pin_9);
}
}
int main()
{
BaseType_t xReturned;
TaskHandle_t LedTaskHandle = NULL; //用于存储创建的任务句柄
//1.硬件的初始化
LED_Config();
//2.创建一个任务
xReturned = xTaskCreate(
led_task, //任务的地址
"task for led", //任务的描述
128, //任务的堆栈大小 128 * 32 / 8 = 512字节
NULL, //任务接口的参数,无需传参则填NULL
1, //任务的优先级 范围 0 ~ configMAX_PRIORITIES - 1
&LedTaskHandle //任务的句柄,是为了提供给其他函数使用的
);
//错误处理
if( xReturned != pdPASS )
{
}
//3.启动调度器
vTaskStartScheduler();
while(1)
{
}
}