细说STM32单片机FreeRTOS任务管理API函数及多任务编程的实现方法

目录

一、FreeRTOS任务管理API函数

1、任务管理API函数

2、获取任务的句柄 

(1)函数xTaskGetCurrentTaskHandle()

(2)函数xTaskGetIdleTaskHandle()

(3)函数xTaskGetHandle()

3、单个任务的操作

(1)获取和设置任务的优先级

(2)函数vTaskGetInfo()

(3)函数pcTaskGetName()

(4)函数uxTaskGetStackHighWaterMark()

(5)函数eTaskGetState()

4、内核信息统计

(1)函数uxTaskGetNumberOfTasks()

(2)函数vTaskList()

(3)函数uxTaskGetSystemState()

(4)函数vTaskGetRunTimeStats() 

(5)函数xTaskGetSchedulerState()

二、示例演示任务管理API函数的使用方法

1、示例功能

2、项目设置

(1)RCC、SYS、Code Generator

(2) ADC3_IN6

(3)FreeRTOS 

(4)GPIO 

(5)USART3

(6)NVIC

3、软件设计

(1)main.c

(2)freertos.c

(3)FreeRTOSConfig.h

4、运行与调试


        FreeRTOS中除了用于任务管理的一些RTOS函数外,还有一些API函数(也叫任务管理工具函数),用于操作任务或取任务信息。一些内容需要参考本文作者写的其他文章,

       参考文章:细说STM32单片机FreeRTOS任务管理相关函数及多任务编程的实现方法-CSDN博客  https://wenchm.blog.csdn.net/article/details/147139017?spm=1011.2415.3001.5331

一、FreeRTOS任务管理API函数

1、任务管理API函数

分组

FreeRTOS函数

函数功能

获取

任务

句柄

xTaskGetCurrentTaskHandle()

获取当前任务的句柄

xTaskGetIdleTaskHandle()

获取空闲任务的句柄

xTaskGetHandle()

根据任务名称返回任务句柄,运行比较慢

单个

任务

的信

uxTaskPriorityGet()

获取一个任务的优先级

uxTaskPriorityGetFromISR()

函数uxTaskPriorityGet()的ISR版本

vTaskPrioritySet()

设置一个任务的优先级,可以在运行过程中改变一个任务的优先级

vTaskGetInfo()

返回一个任务的信息,包括状态信息、栈空间信息等

pcTaskGetName()

根据任务句柄返回任务的名称,参数为NULL时,返回任务自己的名称

uxTaskGetStackHighWaterMark()

返回一个任务的栈空间的高水位值,即最少可用空间。返回值越小,表明任务的栈空间越容易溢出。高水位值的单位是字

eTaskGetState()

返回一个任务的当前运行状态,返回值是枚举类型eTaskState

内核

信息

uxTaskGetNumberOfTasks()

返回内核管理的所有任务的个数,包括就绪的、阻塞的、挂起的任务,也包括虽然删除了,但还没有在空闲任务里释放的任务

vTaskList()

创建一个列表,显示所有任务的信息。此函数会禁止所有中断,需要使用sprintf()函数,所以一般只用于调试阶段

uxTaskGetSystemState()

获取系统中所有任务的任务状态,包括每个任务的句柄、任务名称、优先级等信息

vTaskGetRunTimeStats()

获取每个任务的运行时间统计

xTaskGetTickCount()

返回嘀嗒信号当前计数值

xTaskGetTickCountFromISR()

函数xTaskGetTickCount()的ISR版本

xTaskGetSchedulerState()

返回任务调度器的运行状态

其他
函数

vTaskSetApplicationTaskTag()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wenchm

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值