RTX5 | 线程标志组02 - 获取线程标志与清除线程标志
生活随笔
收集整理的這篇文章主要介紹了
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 - 获取线程标志与清除线程标志的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: js hover 触发事件_为什么说JS
- 下一篇: STM32H743+CubeMX-串口重