文章目录

  • 一、前言
  • 二、实验目的
  • 三、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 - 获取线程标志与清除线程标志相关推荐

  1. RTX5 | 事件标志组02 - 置位事件标志组,并获取事件标志组的值

    文章目录 一.前言 二.实验目的 三.API 3.1.osEventFlagsSet 3.2.osEventFlagsGet 四.代码 4.1.main.h 4.2.main.c 五.Event Re ...

  2. RTX5 | 事件标志组03 - 线程同步(逻辑或)

    一.前言 事件标志组是独自存在的,线程标志组只是线程的一部分.事件标志组的使用方法与线程标志组的使用方法一样,学会使用线程标志组就等于学会使用事件标志组,反之亦然.当线程退出之后,其线程标志组就会消失 ...

  3. RTX5 | 事件标志组01 - 创建事件标志组

    文章目录 一.前言 二.实验目的 三.API 3.1.osEventFlagsAttr_t 3.2.osEventFlagsNew 四.代码 4.1.main.h 4.2.main.c 五.Event ...

  4. 互斥量、临界区、信号量、事件标志组和消息邮箱

    为了好的理解互斥量.临界区.信号量.事件标志组和消息邮箱,下面一些知识对初学者来说很重要: 为了实现各任务之间的合作和无冲突的运行,在有关联的任务之间必须建立一些制约关系.这些制约关系主要有两种:直接 ...

  5. 互斥量、临界区、信号量、事件标志组和消息邮箱(转)

    互斥量.临界区.信号量.事件标志组和消息邮箱          为了好的理解互斥量.临界区.信号量.事件标志组和消息邮箱,下面一些知识对初学者来说很重要: 为了实现各任务之间的合作和无冲突的运行,在有 ...

  6. FreeRTOS源码分析与应用开发07:事件标志组

    目录 1. 概述 2. 事件标志组类型 3. 创建事件标志组 4. 删除事件标志组 5. 设置事件标志位 5.1 任务级设置 5.2 中断级设置 6. 清除事件标志位 6.1 任务级清除 6.2 中断 ...

  7. 【IoT】STM32 系统级开发之 ucosIII 或 freeRTOS 事件标志组详解

    1.轻型操作系统同步的方案详解 1)信号量 假设有两个任务 Task1 和 Task2,第一个任务进行按键的扫描,第二个任务进行LED灯的点亮 需求: 扫描到按键按下后点亮 LED 灯,也就是说第二个 ...

  8. UCOS操作系统——事件标志组(十四)

    UCOS操作系统 文章目录 UCOS操作系统 前言 一.事件标志组 二.相关函数 1.创建事件标志组 2. 等待事件标志组 3.向事件标志组发布标志 三.事件标志组实验 前言 前面我们提到过可以使用信 ...

  9. 【Android 异步操作】线程池 ( Worker 简介 | 线程池中的工作流程 runWorker | 从线程池任务队列中获取任务 getTask )

    文章目录 一.线程池中的 Worker ( 工作者 ) 二.线程池中的工作流程 runWorker 三.线程池任务队列中获取任务 getTask 在博客 [Android 异步操作]线程池 ( 线程池 ...

最新文章

  1. 深入解析Java OutOfMemoryError
  2. Intelij idea工具设置片,用64位工作,用32位运行
  3. C语言如何产生随机数
  4. Jmeter之配置元件操作
  5. 平台服务器测试3—接口测试工具实现
  6. 对校招生培养工作的建议_如何提升人才培养质量?西华的老师们正面临一场大考...
  7. figma设计_设计原型的最简单方法:Figma速成课程
  8. 深度学习(06)-- Network in Network(NIN)
  9. 同包类 和 其他类 java_关于继承:为什么Java中的“protected”修饰符允许访问同一个包中的其他类?...
  10. python grpc入门
  11. (原)ubuntu下cadvisor+influxdb+grafana+supervisord监控主机和docker的containers
  12. AcWing 894. 拆分-Nim游戏
  13. 苹果 CEO 库克“喜当爹”,被女子索赔31.6亿分手费!
  14. 56. mysqli 扩展库(3)
  15. 51单片机——红外解码
  16. 基于python的网易云音乐下载器
  17. 机器人图形变变变_《有魔法的形状》l 走进数学的艺术世界——创意拼搭,图形变变变...
  18. 如何用个人电脑打造量子模拟器
  19. 免费WiFi分享给你,全民免费WiFi来袭
  20. Python采集手机4K壁纸,又是一个练手小案例,也不用担心没壁纸换咯

热门文章

  1. 使用MySQL的存储过程
  2. 您对无法重新创建的表进行了更改或者启用了“阻止保存要求重新创建表的更改”选项...
  3. C++是什么?怎么学?学完了能得到什么?
  4. 近找到了一个免费的python教程,两周学会了python开发【内附学习视频】
  5. 飞鸽传书CSDN的搜索结果
  6. 2012年11月04日春色满园关不住freeeim源码哇
  7. 不要局限在完成当前飞鸽传书2009的简单思路上
  8. 传闻中“日进斗金”的程序员,你真的了解吗?看完还想当程序员?
  9. 除了要求app随手机壳颜色变之外,产品还要求....
  10. 程序员过端午的正确姿势,一般人看不懂