#include "config.h"
#include "global.h"
#include "stdio.h"
#include "PC.h"
#include "FreeRTOS.h"
#include "task.h"
#include "list.h"
void vLED1Task(void *pvParameters)
{
while(1)
{
GPIO_Reverse ();
vTaskDelay(1000/portTICK_RATE_MS);
}
}
void vLED2Task(void *pvParameters)
{
portTickType xLastWakeTime;
//xLastWakeTime=xTaskGetTickCount();
while(1)
{
LED_Reverse();
vTaskDelay(200/portTICK_RATE_MS);
//vTaskDelayUntil(&xLastWakeTime,(1000/portTICK_RATE_MS));
}
}
void vUARTTask(void *pvParameters)
{
while(1)
{
USART_SendData (USART1 ,0xAA);
vTaskDelay(1000/portTICK_RATE_MS);
}
}
int main(void)
{
BSP_INIT();
xTaskCreate(vLED1Task,"led1",50,NULL,1,NULL);
xTaskCreate(vLED2Task,"led2",50,NULL,2,NULL);
xTaskCreate(vUARTTask,"UART",50,NULL,3,NULL);
vTaskStartScheduler();//
return 0;
}
stm32 FreeRTOS中如何创建任务
最新推荐文章于 2025-09-24 13:20:05 发布
本文展示了一个使用FreeRTOS实时操作系统实现多任务处理的示例程序。该程序包含三个任务:LED1Task控制一个LED灯以1秒周期闪烁;LED2Task控制另一个LED灯以200毫秒周期闪烁;UARTTask则每秒通过USART1发送一个预定义的数据字节。这些任务通过调用vTaskCreate创建,并按不同优先级运行。
1024

被折叠的 条评论
为什么被折叠?



