一.事件标志组简介
在裸机上,事件标志位:用一个位,表示事件是否发生。
1.什么是事件标志组?
答:事件标志组是一组事件标志位的集合,可以简单的理解为事件标志组是一个整数(u16)。
特点:(1)每一位代表一个事件(高8位不算)
(2)每一位事件的含义都由用户自己决定 如:bit0表示按键按下,bit1表示.....(1:表示事件发生,0:事件未发生)
(3)任意的任务或中断都可以读写这些位 (4)可以等待某一位成立,或多个位同时成立
一个事件组就包含一个EventBites_t数据类型的变量,如图下图为EventBites_t的定义:
2.事件标志组的组成
答:事件标志组是16位/32位的无符号数据类型,用来存放事件标志,其中高8位用作存储事件标志组的控制信息,低8位/24位用作存储事件标志,所以一个事件组,最多存储24个事件标志。
3.事件标志组和队列、信号量的区别
4.事件标志组的相关API函数
(1)动态创建事件标志组
(2)清除事件标志位
(3)设置事件标志位
(4)等待事件标志位
(5)设置事件位,并等待事件位(同步函数)
综合实验:
1.创建2个任务,Task1,Task2,并创建事件标志组
(1)Task1:读取按下按键的键值,根据键值将事件标志组对应位置一,模拟事件发生
(2)Task2:同时等待事件标志组的多个事件位,当这些事件位都置1就执行相应的处理
2.CubeMX配置
创建两个任务
3.代码部分:
(1)创建事件标志组
(2)任务业务逻辑
现象: