🔥作者简介: 一个平凡而乐于分享的小比特,中南民族大学通信工程专业研究生,研究方向无线联邦学习 🎬擅长领域:驱动开发,嵌入式软件开发,BSP开发 ❄️作者主页:一个平凡而乐于分享的小比特的个人主页 ✨收录专栏:UCOS-III,本专栏为UCOS-III学习记录 欢迎大家点赞 👍 收藏 ⭐ 加关注哦!💖💖
本质:事件标志是一个用于指示事件是否发生的比特位。事件标志组由多个事件标志组成的, 可以简单的理解事件标志组,就是一个整数。
事件标志组的特点:
事件标志组逻辑关系图:

使用事件标志组流程:创建事件标志组–>设置事件标志–> 获取事件标志
函数 | 描述 |
|---|---|
OSFlagCreate() | 创建一个事件标志组 |
OSFlagDel() | 删除一个事件标志组 |
OSFlagPend() | 等待事件标志组中的事件 |
OSFlagPendAbort() | 终止挂起等待事件标志组中的事件 |
OSFlagPendGetFlagRdy() | 获取任务等待到的事件 |
OSFlagPost() | 设置事件标志组中的事件 |
void OSFlagCreate ( OS_FLAG_GRP* p_grp, //指向事件标志组结构体的指针
CPU_CHAR* p_name, //指向作为事件标志组名的 ASCII 字符串的指针
OS_FLAGS flags, //事件标志组的初始值
OS_ERR* p_err //指向接收错误代码变量的指针
)OS_FLAGS OSFlagPost ( OS_FLAG_GRP* p_grp, //指向事件标志组结构体的指针
OS_FLAGS flags, //设置事件指定位清0或置1
OS_OPT opt, //函数操作选项:OS_OPT_POST_FLAG_SET 或 OS_OPT_POST_FLAG_CLR
OS_ERR* p_err //指向接收错误代码变量的指针
)//OS_FLAGS 类型返回值 事件标志组更新后的事件标志值OS_FLAGS OSFlagPend( OS_FLAG_GRP* p_grp, //指向事件标志组结构体的指针
OS_FLAGS flags, //等待的事件标志
OS_TICK timeout, //任务挂起等待事件标志的最大允许时间
OS_OPT opt, //函数操作选项
CPU_TS* p_ts, //指向接收等待到事件时的时间戳的变量的指针
OS_ERR* p_err //指向接收错误代码变量的指针
) //OS_FLAGS 类型返回值 任务实际等待到的事件标志,如果没有任何标志准备就绪,则为 0opt | 描述 |
|---|---|
OS_OPT_PEND_FLAG_CLR_ALL | 等待“flags”中的所有指定位被清0 |
OS_OPT_PEND_FLAG_CLR_ANY | 等待“flags”中的任意指定位被清0 |
OS_OPT_PEND_FLAG_SET_ALL | 等待“flags”中的所有指定位被置1 |
OS_OPT_PEND_FLAG_SET_ANY | 等待“flags”中的任意指定位被置1 |
调用上面四个选项的时候还可以搭配下面三个选项
OS_OPT_PEND_FLAG_CONSUME | 当等待到指定位后,清0对应位 |
|---|---|
OS_OPT_PEND_BLOCKING | 标志组不满足条件时挂起任务 |
OS_OPT_PEND_NON_BLOCKING | 标志组不满足条件时不挂起任务 |