当前位置: 首页 > news >正文

FreeRTOS任务相关API函数

一、FreeRTOS任务相关API函数介绍

任务相关的API主要如下:

函数

描述

uxTaskPriorityGet()

获取任务优先级

vTaskPrioritySet()

设置任务优先级

uxTaskGetNumberOfTasks()

获取系统中任务的数量

uxTaskGetSystemState()

获取所有任务状态信息

vTaskGetInfo()

获取指定单个的任务信息

xTaskGetCurrentTaskHandle()

获取当前任务的任务句柄

xTaskGetHandle()

根据任务名获取该任务的任务句柄

uxTaskGetStackHighWaterMark()

获取任务的任务栈历史剩余最小值

eTaskGetState()

获取任务状态

vTaskList()

以“表格”形式获取所有任务的信息

vTaskGetRunTimeStats()

获取任务的运行时间

官网:任务实用程序 - FreeRTOS™

二、任务状态查询API函数实验

1、实验目标

学会使用 FreeRTOS 任务状态查询相关 API 函数:

  • start_task:用来创建其他的2个任务。
  • task1:LED1每500ms闪烁一次,提示程序正在运行。
  • task2:用于展示任务状态查询相关API函数的使用。

2、FreeRTOSConfig.h代码清单

#defineINCLUDE_xTaskGetSchedulerState1

#defineconfigUSE_TRACE_FACILITY1

#defineconfigUSE_STATS_FORMATTING_FUNCTIONS1

#defineINCLUDE_xTaskGetHandle1

#defineINCLUDE_uxTaskGetStackHighWaterMark1

#defineINCLUDE_eTaskGetState1

3、freertos_demo.c代码

实验结果:

三、任务时间统计API函数实验

1、实验目标

学会使用 FreeRTOS 任务运行时间统计相关 API 函数:

  • start_task:用来创建其他的2个任务。
  • task1:LED1每500ms闪烁一次,提示程序正在运行。
  • task2:用于展示任务运行时间统计相关API函数的使用。

2、函数解析

由官网给出的使用说明可知,需要重新配置一个定时器,且频率应为systick定时器的10倍

3、STM32CubeMX配置

4、FreeRTOSConfig.h代码

/*运行时间和任务状态统计相关定义*/

#defineconfigGENERATE_RUN_TIME_STATS1/* 1:使能任务运行时间统计功能,默认: 0 */

#ifconfigGENERATE_RUN_TIME_STATS

externvolatileunsignedlongulHighFrequencyTimerTicks;

#defineportCONFIGURE_TIMER_FOR_RUN_TIME_STATS() (ulHighFrequencyTimerTicks=0UL)

#defineportGET_RUN_TIME_COUNTER_VALUE()ulHighFrequencyTimerTicks

#endif

#defineconfigUSE_TRACE_FACILITY1

#defineconfigUSE_STATS_FORMATTING_FUNCTIONS1

5、main.c代码

6、freertos_demo.c代码

http://www.cnnetsun.cn/news/4313057.html

相关文章:

  • Stable Diffusion实战:从男生照片生成女生形象并与兄弟同框合影
  • 上半年动力储能电池销量暴涨48.6%、小鹏机器人融资9亿美元、新型储能入列十五五:新能源产业的第二增长曲线
  • 2026年AI数字人城市合伙人怎么选|3个维度避开合作陷阱
  • 非计算机专业入门深度学习:避开弯路的高效学习路径
  • Transformer结合强化学习:长时序决策的工程实践与避坑指南
  • MP3转AAC用哪种工具更方便?MP3转AAC的详细操作步骤与避坑注意
  • AI医疗入门指南:医学生从零跑通深度学习全流程
  • MacBook Pro M5 Max 本地大模型实战:从量化到部署的完整指南
  • 解析福州企业级AI自动化获客解决方案优质品牌特点
  • Python进阶:13个你可能不知道但能大幅提升效率的特性
  • AI Agent入门:从真实任务出发,跑通最小闭环
  • Android Studio记事本App开发:从SQLite到RecyclerView的完整项目实战
  • ComfyUI实战:搭建本地生图+视频一体化AI工作流
  • BP神经网络实现6类数字调制信号智能识别
  • 上下文窗口并非越大越好:大模型开发的资源取舍与实战策略
  • DeepSeek Harness接入全解:从API配置到reasoning_content报错排查
  • AI Agent零基础学习路线:从核心概念到日志分析实战
  • 在Ubuntu容器中验证Linux死亡命令:隔离边界与安全实践
  • JavaScript核心知识梳理:从变量到异步请求的入门路线
  • 8款高性价比AI论文平台横向实测,本硕博避坑必备指南
  • CAD批量统一文字大小:SCALETEXT命令快速解决字高不一致问题
  • 机器学习预测钢管混凝土柱承载力:XGBoost与SHAP深度解析
  • Shelf Protocol:电商数据访问的“Robots.txt”协议解析
  • ESP32-S3智能自动化控制器开发:从原型到成品的工程实践指南
  • Codex Harness与SWE-bench:模型评测的可复现性为何如此重要
  • LSTM汽车销量预测实战:从数据处理到调参上线
  • 基于51单片机与GSM模块的自动售货机完整设计与代码实现
  • CCF CSP历年真题Python题解与备考指南
  • Codex与Claude Code组合实战:AI编程成本控制与配置指南
  • 测试环境搭建实战:Redis、MySQL、禅道三件套安装与联动