【STM32】FreeRTOS 移植到 STM32F103
生活随笔
收集整理的這篇文章主要介紹了
【STM32】FreeRTOS 移植到 STM32F103
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
文章目錄
- main.c
移植后的程序結(jié)構(gòu)如下圖:
本節(jié)的任務(wù)設(shè)計為:
main.c
#include "led.h" #include "delay.h" #include "sys.h" #include "FreeRTOS.h" #include "task.h"#define START_TASK_PRIO 1 //任務(wù)優(yōu)先級 #define START_STK_SIZE 128 //任務(wù)堆棧大小 TaskHandle_t StartTask_Handler; //任務(wù)句柄 void start_task(void *pvParameters); //任務(wù)句柄#define LED0_TASK_PRIO 2 //任務(wù)句柄 #define LED0_STK_SIZE 50 //任務(wù)堆棧大小 TaskHandle_t LED0Task_Handler; //任務(wù)堆棧大小 void led0_task(void *pvParameters); //任務(wù)函數(shù)#define LED1_TASK_PRIO 3 //任務(wù)函數(shù) #define LED1_STK_SIZE 50 //任務(wù)堆棧大小 TaskHandle_t LED1Task_Handler; //任務(wù)句柄 void led1_task(void *pvParameters); //任務(wù)句柄int main(void) {NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4); //設(shè)置系統(tǒng)中斷優(yōu)先級分組4 delay_init(); //延時函數(shù)初始化 uart_init(115200); //初始化串口LED_Init(); //初始化LED//創(chuàng)建開始任務(wù)xTaskCreate((TaskFunction_t )start_task, //任務(wù)函數(shù)(const char* )"start_task", //任務(wù)名稱(uint16_t )START_STK_SIZE, //任務(wù)堆棧大小(void* )NULL, //傳遞給任務(wù)函數(shù)的參數(shù)(UBaseType_t )START_TASK_PRIO, //任務(wù)優(yōu)先級(TaskHandle_t* )&StartTask_Handler); //任務(wù)句柄 vTaskStartScheduler(); //開啟任務(wù)調(diào)度 }//開始任務(wù)任務(wù)函數(shù) void start_task(void *pvParameters) {taskENTER_CRITICAL(); //進(jìn)入臨界區(qū)//創(chuàng)建LED0任務(wù)xTaskCreate((TaskFunction_t )led0_task, (const char* )"led0_task", (uint16_t )LED0_STK_SIZE, (void* )NULL, (UBaseType_t )LED0_TASK_PRIO, (TaskHandle_t* )&LED0Task_Handler); //創(chuàng)建LED1任務(wù)xTaskCreate((TaskFunction_t )led1_task, (const char* )"led1_task", (uint16_t )LED1_STK_SIZE, (void* )NULL,(UBaseType_t )LED1_TASK_PRIO,(TaskHandle_t* )&LED1Task_Handler); vTaskDelete(StartTask_Handler); //刪除開始任務(wù)taskEXIT_CRITICAL(); //退出臨界區(qū) }//LED0任務(wù)函數(shù) void led0_task(void *pvParameters) {while(1){LED0=~LED0;vTaskDelay(500);} } //LED1任務(wù)函數(shù) void led1_task(void *pvParameters) {while(1){LED1=0;vTaskDelay(200);LED1=1;vTaskDelay(800);} }總結(jié)
以上是生活随笔為你收集整理的【STM32】FreeRTOS 移植到 STM32F103的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【STM32】无线通信实验代码详解
- 下一篇: 【STM32】FreeRTOS 系统配置