RTX5 | 线程标志组02 - 获取线程标志与清除线程标志
文章目录
- 一、前言
- 二、实验目的
- 三、API
- 3.1、osThreadFlagsClear
- 3.2、osThreadFlagsGet
- 四、代码
- 4.1、main.h
- 4.2、main.c
- 五、Event Recorder调试
- 5.1、长按按键KEY1
- 5.2、长按按键KEY2
- 六、细节补充
- 6.1、osThreadFlagsGet不会阻塞当前线程,osThreadFlagsWait可以阻塞当前线程,也可以设置超时,也可以不阻塞。
一、前言
跟线程标志相关的API还有两个,分别是osThreadFlagsClear与osThreadFlagsGet。
STM32工程:
链接:https://pan.baidu.com/s/14RvDF5k-dWD92N6iIwxHSA
提取码:2o3t
二、实验目的
长按按键KEY1,发送线程标志0x02U(0x01U << 1)给Test_Flags线程,Test_Flag线程获取标志后,执行相应的操作,并清除该标志位。
长按按键KEY2,发送线程标志0x01U(0x01U << 0)给Test_Flag线程,Test_Flag线程获取标志后,执行相应的操作,并清除该标志位。
三、API
3.1、osThreadFlagsClear
/* 使用案例 */
osThreadFlagsClear(0x01U << 0); /* 清除当前线程的flag0 */
osThreadFlagsClear(0x01U << 1); /* 清除当前线程的flag1 */
osThreadFlagsClear(0x01U << 8); /* 清除当前线程的flag8 */
osThreadFlagsClear(0x01U << 31); /* 清除当前线程的flag31 */
3.2、osThreadFlagsGet
/* 使用案例 */
uint32_t flags;
flags = osThreadFlagsGet(); /* 获取当前线程的flags */
四、代码
4.1、main.h
4.2、main.c
五、Event Recorder调试
5.1、长按按键KEY1
5.2、长按按键KEY2
六、细节补充
6.1、osThreadFlagsGet不会阻塞当前线程,osThreadFlagsWait可以阻塞当前线程,也可以设置超时,也可以不阻塞。
RTX5 | 线程标志组02 - 获取线程标志与清除线程标志相关推荐
- RTX5 | 事件标志组02 - 置位事件标志组,并获取事件标志组的值
文章目录 一.前言 二.实验目的 三.API 3.1.osEventFlagsSet 3.2.osEventFlagsGet 四.代码 4.1.main.h 4.2.main.c 五.Event Re ...
- RTX5 | 事件标志组03 - 线程同步(逻辑或)
一.前言 事件标志组是独自存在的,线程标志组只是线程的一部分.事件标志组的使用方法与线程标志组的使用方法一样,学会使用线程标志组就等于学会使用事件标志组,反之亦然.当线程退出之后,其线程标志组就会消失 ...
- RTX5 | 事件标志组01 - 创建事件标志组
文章目录 一.前言 二.实验目的 三.API 3.1.osEventFlagsAttr_t 3.2.osEventFlagsNew 四.代码 4.1.main.h 4.2.main.c 五.Event ...
- 互斥量、临界区、信号量、事件标志组和消息邮箱
为了好的理解互斥量.临界区.信号量.事件标志组和消息邮箱,下面一些知识对初学者来说很重要: 为了实现各任务之间的合作和无冲突的运行,在有关联的任务之间必须建立一些制约关系.这些制约关系主要有两种:直接 ...
- 互斥量、临界区、信号量、事件标志组和消息邮箱(转)
互斥量.临界区.信号量.事件标志组和消息邮箱 为了好的理解互斥量.临界区.信号量.事件标志组和消息邮箱,下面一些知识对初学者来说很重要: 为了实现各任务之间的合作和无冲突的运行,在有 ...
- FreeRTOS源码分析与应用开发07:事件标志组
目录 1. 概述 2. 事件标志组类型 3. 创建事件标志组 4. 删除事件标志组 5. 设置事件标志位 5.1 任务级设置 5.2 中断级设置 6. 清除事件标志位 6.1 任务级清除 6.2 中断 ...
- 【IoT】STM32 系统级开发之 ucosIII 或 freeRTOS 事件标志组详解
1.轻型操作系统同步的方案详解 1)信号量 假设有两个任务 Task1 和 Task2,第一个任务进行按键的扫描,第二个任务进行LED灯的点亮 需求: 扫描到按键按下后点亮 LED 灯,也就是说第二个 ...
- UCOS操作系统——事件标志组(十四)
UCOS操作系统 文章目录 UCOS操作系统 前言 一.事件标志组 二.相关函数 1.创建事件标志组 2. 等待事件标志组 3.向事件标志组发布标志 三.事件标志组实验 前言 前面我们提到过可以使用信 ...
- 【Android 异步操作】线程池 ( Worker 简介 | 线程池中的工作流程 runWorker | 从线程池任务队列中获取任务 getTask )
文章目录 一.线程池中的 Worker ( 工作者 ) 二.线程池中的工作流程 runWorker 三.线程池任务队列中获取任务 getTask 在博客 [Android 异步操作]线程池 ( 线程池 ...
最新文章
- 深入解析Java OutOfMemoryError
- Intelij idea工具设置片,用64位工作,用32位运行
- C语言如何产生随机数
- Jmeter之配置元件操作
- 平台服务器测试3—接口测试工具实现
- 对校招生培养工作的建议_如何提升人才培养质量?西华的老师们正面临一场大考...
- figma设计_设计原型的最简单方法:Figma速成课程
- 深度学习(06)-- Network in Network(NIN)
- 同包类 和 其他类 java_关于继承:为什么Java中的“protected”修饰符允许访问同一个包中的其他类?...
- python grpc入门
- (原)ubuntu下cadvisor+influxdb+grafana+supervisord监控主机和docker的containers
- AcWing 894. 拆分-Nim游戏
- 苹果 CEO 库克“喜当爹”,被女子索赔31.6亿分手费!
- 56. mysqli 扩展库(3)
- 51单片机——红外解码
- 基于python的网易云音乐下载器
- 机器人图形变变变_《有魔法的形状》l 走进数学的艺术世界——创意拼搭,图形变变变...
- 如何用个人电脑打造量子模拟器
- 免费WiFi分享给你,全民免费WiFi来袭
- Python采集手机4K壁纸,又是一个练手小案例,也不用担心没壁纸换咯
热门文章
- 使用MySQL的存储过程
- 您对无法重新创建的表进行了更改或者启用了“阻止保存要求重新创建表的更改”选项...
- C++是什么?怎么学?学完了能得到什么?
- 近找到了一个免费的python教程,两周学会了python开发【内附学习视频】
- 飞鸽传书CSDN的搜索结果
- 2012年11月04日春色满园关不住freeeim源码哇
- 不要局限在完成当前飞鸽传书2009的简单思路上
- 传闻中“日进斗金”的程序员,你真的了解吗?看完还想当程序员?
- 除了要求app随手机壳颜色变之外,产品还要求....
- 程序员过端午的正确姿势,一般人看不懂