当前位置: 首页 > news >正文

双语公司网站系统下载做衣服网站

双语公司网站系统下载,做衣服网站,自己建立旅游的网站建设,鞍山ui界面ESP32-S3-WIFI 事件标记组 介绍 在ESP32-S3的WiFi驱动程序中,事件标记组(Event Group)是一个非常重要的概念。它是FreeRTOS中的一种同步机制,用于在任务之间传递和同步事件。在WiFi驱动程序中,我们使用事件标记组来通…

ESP32-S3-WIFI 事件标记组

介绍

在ESP32-S3的WiFi驱动程序中,事件标记组(Event Group)是一个非常重要的概念。它是FreeRTOS中的一种同步机制,用于在任务之间传递和同步事件。在WiFi驱动程序中,我们使用事件标记组来通知不同的任务有关WiFi状态的变化。

在上一篇文章我们在Event_loop(定义事件处理程序其实就是event task任务)针对id,分别创建wifi_scan_taskwifi_show_task两个任务来执行相应的功能,那这时我们共创建了3个app task,造成了任务滥用的情况,那我们可以把这三个任务合在一起吗,当然可以,这就要用到Free RTOS 中的Event Group机制了。需要注意Event loop是ESP中的概念,而Event Group是Free RTOS 中的概念。

WiFi事件标记组的创建

在初始化WiFi驱动程序时,我们会创建一个事件标记组。这个事件标记组将被用来存储WiFi的状态信息。

EventGroupHandle_t wifi_event_group;void app_main(void)
{wifi_event_group = xEventGroupCreate();}

WiFi事件的处理

当WiFi状态发生变化时,例如连接到AP,断开连接,获取IP等,WiFi驱动程序会通过调用xEventGroupSetBits函数来设置相应的事件标记,xEventGroupSetBits函数第一个参数是事件标记组的句柄,第二个参数是要设置的位。

void event_handler(void* arg, esp_event_base_t event_base, int32_t event_id, void* event_data)
{if (event_base == WIFI_EVENT && event_id == WIFI_EVENT_STA_START) {xEventGroupSetBits(wifi_event_group, WIFI_CONNECT_BIT);} else if (event_base == WIFI_EVENT && event_id == WIFI_EVENT_STA_DISCONNECTED) {xEventGroupSetBits(wifi_event_group, WIFI_DISCONNECT_BIT);} else if (event_base == IP_EVENT && event_id == IP_EVENT_STA_GOT_IP) {xEventGroupSetBits(wifi_event_group, WIFI_GOT_IP_BIT);}
}

WiFi事件的检查

在其他任务中,我们可以通过调用xEventGroupWaitBits函数来等待特定的WiFi事件xEventGroupWaitBits函数第一个参数是事件标记组的句柄,第二个参数是我们关心的位,第三个参数决定是否在返回前清除这些位,第四个参数决定是否需要所有的位都被设置,第五个参数是等待的最大时间,而返回值可以用来判断哪些位被设置了。

void task_function(void *pvParameters)
{EventBits_t bits = xEventGroupWaitBits(wifi_event_group,WIFI_CONNECT_BIT | WIFI_DISCONNECT_BIT | WIFI_GOT_IP_BIT,pdFALSE,pdFALSE,portMAX_DELAY);if (bits & WIFI_CONNECT_BIT) {printf("WiFi connected\n");} else if (bits & WIFI_DISCONNECT_BIT) {printf("WiFi disconnected\n");} else if (bits & WIFI_GOT_IP_BIT) {printf("Got IP address\n");}
}

总结

🚨需要注意
在FreeRTOS中,事件标记组的位数取决于configUSE_16_BIT_TICKS的设置。如果configUSE_16_BIT_TICKS设置为1,那么事件标记组中的位数为8位。如果configUSE_16_BIT_TICKS设置为0,那么事件标记组中的位数为24位。

📚参考资料
freertos官方编程手册
微软copilot

http://www.yayakq.cn/news/370043/

相关文章:

  • 做网站需完成的软件中铁建设集团有限公司下属公司
  • 新增备案网站负责人域名空间费一年多少钱
  • 百度网站首页网址网站title优化
  • 威海网站建设在哪工厂外包小件加工
  • 个人网站做贷款广告google浏览器入口
  • 建筑工程网格化管理台账表格全网搜索引擎优化
  • 深圳证券网站开发短视频推广计划
  • 企信网企业信息查询平台官网优化软件排行榜
  • 建站公司新闻资讯本地的沈阳网站建设
  • 网站建设外出考察信息深圳企业网站定制
  • 网站备案收费幕布大连高新园区地图
  • 怎么看网站哪个公司做的建设网站需要钱吗
  • 做海报图片的网站犀牛云做网站如何
  • 网站置顶jq企业网站关键词优化
  • 蛋白质结构预测工具网站开发mooc网站开发ppt
  • 建材网站建设哪家公司网站的栏目设置
  • wordpress 英文企业站用vultr做网站
  • 开发菏泽网站建设做电影资源网站手机版
  • c 做交易网站辽宁省建筑工程信息网
  • 怎么在网站后台做标题的超链接网站维护要多久
  • 网站不收录的原因备案用的网站建设方案书怎么写
  • 一些做的好的网站学校网站建设目的是什么意思
  • 企业网站 建设流程免费开发软件app下载
  • 网站的维护方案wordpress3.9漏洞
  • 鹤岗市城乡建设局网站开网站建设公司好
  • 山东聊城建设学校网站浙江省职业能力建设处网站
  • 《网站开发课程设计》设计报告网站汉英结合的怎么做
  • 公司网站首页设计构想建一个网站大概需要多长时间
  • 可以做商城网站的公司用地方别名做网站名
  • 大型门户网站建设特点找个美工做淘宝网站需要多少钱