文章目录
一、前言
摘自《嵌入式实时操作系统uc/OS-III》 - 作者:Jean J.Labrosse
当线程需要与多个事件的发生同步时,就可以使用事件标志组。 等待多个事件时,任何一个事件发生,任务都被同步,这样同步机制被称为“或”同步(逻辑“或”运算),当所有事件都发生时,任务才被同步,这种同步机制被称为“与”同步(逻辑“与”运算)。
事件标志组API函数汇总:
STM32工程:
链接:https://pan.baidu.com/s/1Q4zLiEfyDLJRjtY9OXCAuw
提取码:c3az
二、实验目的
创建一个事件标志组,简简单单。
三、API
3.1、osEventFlagsAttr_t
动态堆栈方式创建的话,只需要自定义一个名字即可,其他都不用管。
/* 事件标志组1 */
const osEventFlagsAttr_t event_Flags1_Attr =
{
.name = "event_Flag1", /* 事件标志组的名字 */
/* 其他不用管代表默认 */
};
3.2、osEventFlagsNew
osEventFlagsId_t event_Flags1_ID = NULL; /* 保存事件标志组ID */
/* 事件标志组属性 */
const osEventFlagsAttr_t event_Flags1_Attr =
{
.name = "event_Flag1", /* 事件标志组的名字 */
/* 其他不用管代表默认 */
};
...
event_Flags1_ID = osEventFlagsNew(&event_Flags1_Attr); /* 创建事件标志组1 */
四、代码
4.1、main.h
4.2、main.c