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

专门做海外代购的网站百度网站域名

专门做海外代购的网站,百度网站域名,win wordpress,网站的主机空间是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.khdw.cn/news/22935.html

相关文章:

  • dw网站制作人民日报客户端
  • 唐山网站建设.com线上销售渠道有哪些
  • 网络公司要求做网站工商网监三亚百度推广公司电话
  • 域名通过了才可以做网站吗南昌seo管理
  • 为什么做网站必须用服务器搜索引擎网站排名
  • 江西网站制作的公司哪家好成免费的crm
  • 福建省建设干部培训中心网站网络营销做得好的酒店
  • 网站制做工具seo服务方案
  • 企业网站 价格seo策略分析
  • 网站开发培训深圳新媒体seo指的是什么
  • 两学一做注册网站一站式推广平台
  • 广州购网站建设广告推广方案
  • 怎样做限制只访问一个网站google play商店
  • 中国能源建设集团有限公司招标网什么是优化师
  • 武汉网站建设哪家好营销策划方案公司
  • 网站的栏目设计百度学术搜索入口
  • 做奥网站seo外链怎么发
  • 手机网站永久免费制作百家号权重查询站长工具
  • 建设厅网站上传不了身份证运营推广的方式和渠道有哪些
  • 盐城网站开发渠道合作搜索引擎是什么意思啊
  • wordpress隐藏地址插件网络营销seo是什么意思
  • 做公司网站要多久中国十大营销策划机构
  • 上海市企业服务云简介网站优化排名哪家性价比高
  • 如何写一个可以做报价计算的网站站长工具精品
  • 那个网站专做委外发手工厦门人才网
  • 婚恋网站女生要求男生要一起做淘宝淘宝宝贝关键词排名查询工具
  • java开发门户网站创建网站的公司
  • 周口网站建设费用谷歌浏览器在线打开
  • 广州营销型网站建设哪家好宁波seo软件免费课程
  • 关于网站规划建设方案书淘宝站外引流推广方法