本文最后更新于44 天前,其中的信息可能已经过时,如有错误请留言告知
1. FreeRTOS 是什么
- 嵌入式轻量级实时操作系统内核(RTOS)
- 用于在单片机(STM32/ESP32 等)上实现多任务、优先级调度、实时响应
2. 裸机(不用 RTOS) vs FreeRTOS
- 裸机
- 一个
while(1)循环里顺序执行所有功能 - 任务阻塞会导致整个程序卡住
- 无优先级,实时性差
- 一个
- FreeRTOS
- 把功能拆成多个独立任务
- 支持优先级,高优先级任务可抢占执行
- 任务互不干扰,结构清晰,适合复杂项目
3. 两个最核心系统函数
xTaskCreate(...)- FreeRTOS 官方提供的 API 函数
- 作用:创建一个任务,告诉系统要运行哪个函数、优先级、栈大小等
vTaskStartScheduler()- FreeRTOS 官方提供的 API 函数
- 作用:启动任务调度器
- 调用后系统开始自动切换、调度任务,程序正式进入 RTOS 运行模式
4. 标准 main 函数结构
c
运行
int main(void)
{
// 1. 创建任务
xTaskCreate(LED_Task, "LED", 128, NULL, 1, NULL);
xTaskCreate(Key_Task, "KEY", 128, NULL, 2, NULL);
xTaskCreate(UART_Task, "UART", 128, NULL, 1, NULL);
// 2. 启动调度器,系统自动运行
vTaskStartScheduler();
// 3. 正常不会执行到这里
while(1);
}
5. 一句话总结
xTaskCreate:创建任务vTaskStartScheduler:启动 RTOS,让任务自动调度运行


