基于Hal库实现FreeRTOS操作系统

2023-05-16

基于Hal库实现FreeRTOS操作系统(二)

前言

通过STM32CubeMX生成了一个工程模板,本章我基于前者新建的工程开始基于FreeRTOS操作系统的动态任务创建方法。

任务创建的动态方法

首先,我们找到tasks.c文件(我的路径是Middleware->FreeRTOS->tasks.c,不同电脑可能路径不同,这里只是作为参考)。在这里找到xTaskCreate函数详细代码如下所示:
xTaskCreate(	TaskFunction_t pxTaskCode,                                              //创建任务块
							const char * const pcName,	                //任务块名字
							const configSTACK_DEPTH_TYPE usStackDepth,      //申请代码块大小
							void * const pvParameters,                      //返回的变量
							UBaseType_t uxPriority,                         //优先级
							TaskHandle_t * const pxCreatedTask )            //任务块句柄

由上述代码可知,动态创建一个任务,主要有六个模块组成,在在对应的文件(tasks.h)中有使用的例子。如下

 * Example usage:
   <pre>
 // Task to be created.
 void vTaskCode( void * pvParameters )
 {
	 for( ;; )
	 {
		 // Task code goes here.
	 }
 }

下面贴入我使用的代码:

#define START_STK_SIZE    120//栈大小
#define START_TASK_PRIO   1//任务优先级
TaskHandle_t StartTask_Handler;//任务句柄
void start_task( void * pvParameters )//任务函数
{
	。。。
	vTaskDelete(StartTask_Handler);//通过句柄删除任务
}
int main()
{
	。。。
    xTaskCreate((TaskFunction_t)         start_task,            //创建任务块
		(char *)                 "start_task",		//任务块名字
		(configSTACK_DEPTH_TYPE) START_STK_SIZE,        //申请代码块大小
		(void *)                 NULL,                  //返回的变量
		(UBaseType_t)            START_TASK_PRIO,       //优先级
		(TaskHandle_t *)         &StartTask_Handler );  //任务块句柄
		。。。
}

完成动态创建一个任务优先级为1,栈大小为120bit的任务。
vTaskDelete()函数同样在task.c文件中,通过任务块的句柄删除函数。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于Hal库实现FreeRTOS操作系统 的相关文章

随机推荐

  • SQL 用avg,sum等函数如何实现结果值小数位数为两位

    TRY cast avg col as decimal 15 2 cast sum col as decimal 15 2 cast avg as decimal 10 2 如果字段是int类型 xff0c 那么用上面的任何一种方法都不管用
  • html&nbsp;&nbsp;特殊字符(转)

    有些字符在HTML里有特别的含义 xff0c 比如小于号 lt 就表示HTML Tag的开始 xff0c 这个小于号是不显示在我们最终看到的网页里的 那如果我们希望在网页中显示一个小于号 xff0c 该怎么办呢 xff1f 这就要说到HTM
  • linux重启nginx命令

    先找到nginx进程号 xff0c 命令如下 ps span class token operator span ef span class token operator span grep nginx 重启命令kill HUP 进程号 k
  • .net6 基本使用JWT生成Token,模拟用户登录,启动api授权,需要登录携带token才能请求数据,基本给用户添加权限管理

    1 创建好项目 xff0c 添加一个控制器 xff0c 新建用户登录api接口和接收用户登录信息类Dto Dto就包含两个字段 xff0c 账号和密码 2 安装NuGet包 xff0c 搜索JWT xff0c 安装图下这个包 3 在apps
  • SQL server 2019和 SSMS下载与安装教程

    SQL server xff08 2019版本 xff09 安装 一 SQL server 下载 1 下载链接 xff1a SQL server官网 2 打开开始安装 xff0c 如果出现以下问题 以管理员身份运行PowerShell xf
  • .net6 下 SqlSugar迁移创建表以及生成实体类 sqlserver数据库

    一 根据实体类迁移创建表 在项目NuGet中安装SqlSugar和System Data SqlClient 创建实体类 xff0c 存放在Models文件夹下 CodeFirstTable1表实体类 span class token ke
  • windows10安装MongoDB基础详细教程

    下载MongoDB 官网下载地址 xff1a MongoDB Community Downloads MongoDB 找到想要下载的版本拉到最后 xff0c 找到windows版本 解压后目录如下 xff0c 添加两个文件夹data和log
  • .net6 web api使用sqlsugar全局引用,mysql数据库

    安装所需要的nuget包 SqlSugar MySql span class token punctuation span Data 在Program cs文件全局注入sqlsugar span class token comment 注册
  • windows通过命令远程传输文件夹到云服务器linux操作系统

    在cmd控制台窗口输入以下命令 scp span class token operator span r span class token operator span path span class token operator span
  • C#对Lambda表达式的理解以及用Lambda表达式定义委托

    文章目录 关于C 对Lambda表达式的面试问题Lambda表达式定义各种委托方法 xff0c 方便简洁 关于C 对Lambda表达式的面试问题 什么是Lambda表达式 xff1f Lambda表达式是C 中的一种匿名函数 xff0c 它
  • 【快速写好毕业论文】你不得不知晓的七个常用文献搜索平台

    本篇推文共计2000个字 xff0c 阅读时间约3分钟 01 引言 又是一年的毕业季 xff0c 毕业论文成为了大多数同学们难以逾越的屏障 毕业论文存在以下特点 xff1a 章节多 页码多 图表多 文献多 编号多 那么如何快速写好毕业论文
  • 第一章控制系统的状态空间描述方法

    状态空间法 xff1a 在经典控制理论中常用输入输出模型 xff0c 用传递函数描述系统输入与输出之间的的关系 xff0c 即系统外部的因果关系 是一种不完全描述 所谓状态空间法是指 xff1a 即描述了系统输入变量和内部变量之间的互相关系
  • mysql&nbsp;获取指定记录的相邻的记录

    恩 xff0c 今天做项目时 xff0c 需要对相邻的两个模块进行拖动换位 xff0c 有些是HTML5的代码 xff0c 这里不添加了 xff0c 重要的是写sql语句时获取相邻记录的id xff0c 然后根据id xff0c 把他们的o
  • 程序人生---转今日关注

    请活出你自己 从今天起 xff0c 做个 不好相处 的人 什么人最累 xff1f 活在别人眼里和嘴里的人 因为 xff0c 想要活成别人世界里的 好人 xff0c 就会不可避免地委屈自己 xff0c 活成自己世界里的 小丑 甄嬛传 里有一句
  • SolidWorks2020绘制XT60PW-M模型

    SolidWorks2020绘制XT60PW M模型 注 xff1a 模型根据数据手册绘制下载链接 1 2 3 4
  • Netty 基础学习(一)TCP模型详解

    目录 一 TCP协议详解1 1 TCP 报文结构1 2 TCP的可靠性1 2 1 序列号与确认应答1 2 2 超时重传机制1 2 3 流量控制机制1 2 4 拥塞控制机制 1 3 TCP的三次握手1 3 1 建立连接 1 4 TCP四次挥手
  • ROS中static_transform_publisher工具的使用

    static transform publisher的功能是发布两个坐标系之间的静态坐标变换 xff0c 这两个坐标系不会发生相对位置变化 命令格式为 xff1a static transform publisher x y z yaw p
  • STM32CubeMX之串口配置

    STM32CubeMX之串口配置 串口通信是一种设备间非常常用的串行通信方式 xff0c 以比特位的形式发送或接收数据 xff0c 电子工程师经常使用这种方式来调试数据 本章节我们将学习串口发送和接收数据 STM32F103C8开发板通过串
  • STM32CubeMX之定时器PWM输出

    STM32CubeMX之定时器PWM输出 知识百科 PWM简介 PWM是一种对模拟信号电平进行 数字编码 的方法 通过高 分辨率 计数器的使用 xff0c 方波的占空比被调制用来对一个具体 模拟信号 的电平进行编码 PWM信号仍然是数字的
  • 基于Hal库实现FreeRTOS操作系统

    基于Hal库实现FreeRTOS操作系统 xff08 二 xff09 前言 通过STM32CubeMX生成了一个工程模板 xff0c 本章我基于前者新建的工程开始基于FreeRTOS操作系统的动态任务创建方法 任务创建的动态方法 首先 xf