创建任务的示例代码(可套用):
#include "FreeRTOS.h"
#include "task.h"
// 任务句柄
TaskHandle_t xTask1Handle = NULL;
TaskHandle_t xTask2Handle = NULL;
// 任务1的实现
void vTask1(void *pvParameters)
{
for (;;)
{
// 执行任务1的代码
// 例如,读取传感器数据
// ...
// 延时500ms
vTaskDelay(pdMS_TO_TICKS(500));
}
}
// 任务2的实现
void vTask2(void *pvParameters)
{
for (;;)
{
// 执行任务2的代码
// 例如,通过UART发送数据
// ...
// 延时1000ms
vTaskDelay(pdMS_TO_TICKS(1000));
}
}
// 主函数中创建任务
int main(void)
{
HAL_Init(); // HAL库初始化
SystemClock_Config(); // 配置系统时钟
// 创建任务
xTaskCreate(vTask1, "Task1", 128, NULL, 1, &xTask1Handle);
xTaskCreate(vTask2, "Task2", 128, NULL, 1, &xTask2Handle);
// 启动调度器
vTaskStartScheduler();
// 如果调度器启动成功,下面的代码将不会执行
while (1)
{
}
}
|