STM32F10x FreeRTOS工程模板(源码下载)

STM32F10x FreeRTOS工程模板(源码下载)
#include “sys.h”
#include “led.h”
#include “delay.h”
#include “usart.h”

/FreeRTOS头文件/
#include “FreeRTOS.h”
#include “task.h”

#define start_prio 1 //任务优先级
#define start_size 128 //任务堆栈
TaskHandle_t start_handle; //任务句柄
void start_task(void *pvParameters); //任务申明

#define led_prio 2
#define led_size 50
TaskHandle_t led_handle;
void led_task(void * pvParameters);

#define time_prio 3
#define time_size 50
TaskHandle_t time_handle;
void time_task(void * pvParameters);

int main(void)
{
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4); //设置系统中断优先级分组4
delay_init();
uart_init(115200);
LED_Init(); //初始化LED
//创建任务
xTaskCreate(start_task, //任务函数
“start_task”, //任务名称
start_size, //堆栈大小(字)
NULL, //传递给任务函数的参数
start_prio, //任务优先级
&start_handle); //任务句柄

vTaskStartScheduler();          //开启任务调度

}
//开始任务
void start_task(void * pvParameters)
{
taskENTER_CRITICAL(); //进入临界区
//创建任务
xTaskCreate(led_task,
“led_task”,
led_size,
NULL,
led_prio,
&led_handle);
xTaskCreate(time_task,
“time_task”,
time_size,
NULL,
time_prio,
&time_handle);
vTaskDelete(start_handle); //删除开始任务
taskEXIT_CRITICAL(); //退出临界区
}
//呼吸灯
void led_task(void * pvParameters)
{
while(1)
{
LED=!LED;
vTaskDelay(200);
}
}
//开机时间
void time_task(void * pvParameters)
{
u16 x=0;
while(1)
{
vTaskDelay(1000);
printf(“运行时间: %ds\n”,x);
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值