FreeRTOS代码
时间: 2023-07-02 08:07:17 浏览: 131
以下是一个简单的 FreeRTOS 代码示例,用于创建两个任务并使它们交替运行:
```c
#include "FreeRTOS.h"
#include "task.h"
// 任务1
void vTask1(void *pvParameters) {
while(1) {
printf("Task 1 is running.\n");
vTaskDelay(1000 / portTICK_PERIOD_MS); // 休眠1秒
}
}
// 任务2
void vTask2(void *pvParameters) {
while(1) {
printf("Task 2 is running.\n");
vTaskDelay(1000 / portTICK_PERIOD_MS); // 休眠1秒
}
}
int main() {
xTaskCreate(vTask1, "Task 1", configMINIMAL_STACK_SIZE, NULL, 1, NULL);
xTaskCreate(vTask2, "Task 2", configMINIMAL_STACK_SIZE, NULL, 1, NULL);
vTaskStartScheduler(); // 启动调度器
return 0;
}
```
在这个示例中,我们定义了两个任务 `vTask1` 和 `vTask2`,它们分别输出 `"Task 1 is running."` 和 `"Task 2 is running."`,然后休眠 1 秒钟。在 `main` 函数中,我们使用 `xTaskCreate` 函数创建这两个任务,并使用 `vTaskStartScheduler` 函数启动调度器。
在任务创建后,FreeRTOS 将开始调度这两个任务,并轮流运行它们,输出它们的消息。由于我们在任务中使用了 `vTaskDelay` 函数来休眠,因此这两个任务将交替运行,每隔 1 秒钟输出一次。
阅读全文