文章目录
一、前言
跟线程标志相关的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