物联网操作系统学习笔记————事件标志组

本文详细介绍了FreeRTOS事件标志组的概念、应用及实现原理。通过实例展示了如何利用事件标志组检测多个按键输入,并在任意按键按下时通过串口输出信息。当所有按键按下时,会触发蜂鸣器报警。文章还涵盖了事件标志组的创建、设置、获取和等待等关键函数的使用。
摘要由CSDN通过智能技术生成

概念及其应用

FreeRTOS的事件标志组
在这里插入图片描述
概念简单理解就是一个事件标志可以控制多个任务,也可以多个事件标志采用与逻辑控制一个任务,多个事件标志用或逻辑控制一个任务

FreeRTOS事件标志组的介绍
在这里插入图片描述
1:FreeRTOS事件标志组是24比特内存空间
2、当任务去创建一个事件标志组的时候,可以和相关bit进行关联。
当等待事件标志组触发时,任务TASK2从运行态变为阻塞态。当任意一个中断或任务进行了一个SET把标志位从零值一之后,就可以让TASK2进行恢复。
工作原理:
在这里插入图片描述

事件标志组函数

实验操作:
功能需求
1、使用事件标志组检测多个按键输入(K3、K4、K5、K6)
2、当检测到任何一个按键按下,串口打印输出按键信息
3、当4路按键都已经按下,触发蜂鸣器报警

API
xEventGroupCreate()
在这里插入图片描述
xEventGroupSetBits()
在这里插入图片描述
xEventGroupSetBitsFromISR()
在这里插入图片描述
xEventGroupGetBits()
在这里插入图片描述
xEventGroupGetBitsFromISR()
在这里插入图片描述
xEventGroupWaitBits()
在这里插入图片描述
xEventGroupSync()
在这里插入图片描述

STM32CubeMX的配置
1、按键端口配置
查看原理图,配置按键IO口,
在这里插入图片描述
在STM32cubeMX中将PA0\PC13\PF11\PI9串口设置为gpio_exit模式,打开串口中断
2、蜂鸣器端口配置
查看原理图,配置蜂鸣器
在这里插入图片描述
将PF6配置为GPIO_OUTPUT模式

按键中断及事件标志组的创建
1、按键回调函数检测按键按下
①设置按键事件标志组句柄
EventGroupHandle_t KeyEventGroup;
②按键回调函数

void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin){
   

	//是不是KEY3
	if(Key3_Pin == GPIO_Pin){
   
		
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值