STM32CUBEMX的freertos一般使用方法笔记

本文介绍了使用STM32CubeMX创建FreeRTOS操作系统的方法,包括LED闪烁配置、时钟配置等。还阐述了任务挂起与取消挂起、消息队列、二进制信号量与连续二进制信号量、互斥锁与递归互斥锁的相关函数及使用方法。

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

一、使用STM32CubeMX创建FreeRTOS操作系统
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
LED闪烁的配置在这里插入图片描述
接下来配置时钟,点击生成
在这里插入图片描述
此处为用户代码编写处;
开启这个选项便可以使用更加精确的延时。
在这里插入图片描述
在代码区添加
在这里插入图片描述
便可以!
二、任务挂起和取消挂起
osThreadSuspend(osThreadId thread_id);
//osThreadId thread_id为要挂起任务句柄
osThreadResume(osThreadId thread_id);
//osThreadId thread_id取为要取消任务的句柄
三、消息队列
在这里插入图片描述
函数:
osMessagePut(myQueue01Handle,ProducerValue,0);//将ProducerValue放入队列myQueue01Handle中
osEvent event;//在接受函数中声明改变量
event = osMessageGet(myQueue01Handle,osWaitForever); //获取队列消息,获取之后并删除
event = osMessagePeek(myQueue01Handle,osWaitForever); //获取之后不删除消息
osMessagePeek函数需要加上这句;否则信号量不对
在这里插入图片描述四、二进制信号量与连续二进制信号量
在这里插入图片描述
在需要二进制信号量的任务中将NULL改为信号量句柄在这里插入图片描述
osSemaphoreRelease(semaphore);
//如果释放信号量成功 osSemaphoreRelease信号量释放函数 信号量+1
osSemaphoreGetCount(semaphore)获取信号量函数
osSemaphoreWait 信号量释放等待函数 osSemaphoreWait(semaphore,0) 信号量-1
//二进制信号量的数值只在 0 1之间
连续二进制信号量
在这里插入图片描述

在这里插入图片描述
五、互斥锁与递归互斥锁
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述osMutexWait(myMutex01Handle,osWaitForever); //获得互斥锁信号量函数osMutexWait();
osRecursiveMutexWait(myRecursiveMutex01Handle,osWaitForever);//获得递归互斥锁
osRecursiveMutexRelease(myRecursiveMutex01Handle); //释放递归互斥锁
osMutexRelease(myMutex01Handle); //释放互斥锁信号量函数
使用方法:可以将使用互斥锁的两个任务的优先级暂时提高到同一优先级

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值