|
stm32f103c8t6 FreeRTOS例程 串口和閃燈.
PC13閃爍,串口打印數(shù)據(jù)。
使用編譯環(huán)境:MDK4.72A IAR6.30
使用硬件環(huán)境:所有STM32F103xxx硬件系統(tǒng)
使用函數(shù)庫(kù)版本:STM32F10x_StdPeriph_Driver V3.50
工程概要:PC13延時(shí)閃亮
調(diào)試方式:ST-Link SW
TIM圖片20181026094740.png (47.46 KB, 下載次數(shù): 71)
下載附件
2018-10-26 09:48 上傳
單片機(jī)源程序如下:
- //頭文件
- #include "stm32f10x.h"
- #include "usart.h"
- #include "led.h"
- #include "FreeRTOS.h"
- #include "task.h"
- #include "led.h"
- #include <stdio.h>
- //任務(wù)優(yōu)先級(jí)
- #define START_TASK_PRIO 1
- //任務(wù)堆棧大小
- #define START_STK_SIZE 128
- //任務(wù)句柄
- TaskHandle_t StartTask_Handler;
- //任務(wù)函數(shù)
- void start_task(void *pvParameters);
- //任務(wù)優(yōu)先級(jí)
- #define LED0_TASK_PRIO 2
- //任務(wù)堆棧大小
- #define LED0_STK_SIZE 50
- //任務(wù)句柄
- TaskHandle_t LED0Task_Handler;
- //任務(wù)函數(shù)
- void led0_task(void *pvParameters);
- //任務(wù)優(yōu)先級(jí)
- #define UART1_TASK_PRIO 3
- //任務(wù)堆棧大小
- #define UART1_STK_SIZE 50
- //任務(wù)句柄
- TaskHandle_t UART1Task_Handler;
- //任務(wù)函數(shù)
- void uart1_task(void *pvParameters);
- int main(void)
- {
- SystemInit();
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);//設(shè)置系統(tǒng)中斷優(yōu)先級(jí)分組4
- USART1_Config(); //初始化串口
- LED_GPIO_Config(); //初始化LED
-
- //創(chuàng)建開(kāi)始任務(wù)
- xTaskCreate((TaskFunction_t )start_task, //任務(wù)函數(shù)
- (const char* )"start_task", //任務(wù)名稱(chēng)
- (uint16_t )START_STK_SIZE, //任務(wù)堆棧大小
- (void* )NULL, //傳遞給任務(wù)函數(shù)的參數(shù)
- (UBaseType_t )START_TASK_PRIO, //任務(wù)優(yōu)先級(jí)
- (TaskHandle_t* )&StartTask_Handler); //任務(wù)句柄
- vTaskStartScheduler(); //開(kāi)啟任務(wù)調(diào)度
- }
- //開(kāi)始任務(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)建Uart任務(wù)
- xTaskCreate((TaskFunction_t )uart1_task,
- (const char* )"uart1_task",
- (uint16_t )UART1_STK_SIZE,
- (void* )NULL,
- (UBaseType_t )UART1_TASK_PRIO,
- (TaskHandle_t* )&UART1Task_Handler);
- vTaskDelete(StartTask_Handler); //刪除開(kāi)始任務(wù)
- taskEXIT_CRITICAL(); //退出臨界區(qū)
- }
- //LED0任務(wù)函數(shù)
- void led0_task(void *pvParameters)
- {
- while(1)
- {
- LED0_ON;
- vTaskDelay(500);
- LED0_OFF;
- vTaskDelay(500);
- }
- }
- //uart1任務(wù)函數(shù)
- void uart1_task(void *pvParameters)
- {
- while(1)
- {
- LED1_ON;
- printf("Hello\r\n");
- vTaskDelay(800);
- }
- }
復(fù)制代碼
所有資料51hei提供下載:
STM32F103C8T6核心板測(cè)試程序(RTC).rar
(670.86 KB, 下載次數(shù): 339)
2018-11-2 02:36 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
評(píng)分
-
查看全部評(píng)分
|