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

wordpress js 统计代码杭州专业seo公司

wordpress js 统计代码,杭州专业seo公司,怎么在网上卖东西视频,哈尔滨高端品牌网站建设文章目录 前言wifi配置步骤初始化wifi配置事件注册回调函数wifi清理 需要注意的事情 前言 esp32 的wifi功能很强大,这篇记录基本的esp32 连接wifi,获取ip地址,:官方文档介绍 wifi配置步骤 初始化 wifi初始化代码如下&#xff…

文章目录

  • 前言
  • wifi配置步骤
    • 初始化
    • wifi配置
    • 事件注册回调函数
    • wifi清理
  • 需要注意的事情

前言

esp32 的wifi功能很强大,这篇记录基本的esp32 连接wifi,获取ip地址,:官方文档介绍

wifi配置步骤

初始化

wifi初始化代码如下:

static void initialise_wifi(void)
{/* 创建事件标志组 */wifi_event_group_handler = xEventGroupCreate();/* 初始化底层TCP/IP堆栈,*/ESP_ERROR_CHECK(esp_netif_init());/* 创建默认循环事件 在整个项目中只能初始化一次只能初始化一次*/ESP_ERROR_CHECK(esp_event_loop_create_default());/* 创建默认wifi-sta网络接口,如果初始化错误,此api终止 */esp_netif_create_default_wifi_sta();/* 获取默认wifi配置参数结构体变量 */wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT();/* 根据cfg参数,初始化wifi连接所需要的资源 */ESP_ERROR_CHECK(esp_wifi_init(&cfg));/* 注册事件到系统默认事件循环 */ESP_ERROR_CHECK(esp_event_handler_register(WIFI_EVENT, ESP_EVENT_ANY_ID, &event_handler, NULL));ESP_ERROR_CHECK(esp_event_handler_register(IP_EVENT, IP_EVENT_STA_GOT_IP, &event_handler, NULL));/* 启动wifi驱动(配置硬件) */esp_wifi_start();
}
  1. esp_netif_init函数

    • 创建一个 LwIP 核心任务,并初始化 LwIP 相关工作。
    • 该函数主要是初始化网络基础设施,网络基础设施是指TCP/IP协议栈运行、网络通信和wifi功能基础组件。
    • wifi驱动需要依赖esp_netif来管理IP地址、DNS、路由等网络功能。
    • TCP/IP协议栈(lwip)
      作用:提供TCP/IP协议支持,如(DHCP、DNS、TCP/IP)
      关键组件:
      • LwIP(Lightweight IP):ESP-IDF 使用的轻量级 TCP/IP 协议栈。
      • IP 层:管理 IP 地址分配(静态/DHCP)。
      • Socket API:提供标准的 BSD Socket 接口(socket(), bind(), connect() 等)。
      • 如果没有TCP/IP协议栈,wifi只能进行底层数据收发,无法实现HTTP、MQTT等高级网络通信。
  2. esp_event_loop_create_default

    • 创建默认的事件循环(Event Loop),用于处理系统中各种事件(如 WiFi 事件、IP 事件、自定义事件等)。
    • 该回调函数唯一的动作就是将事件中继到应用程序任务中。
  3. esp_netif_create_default_wifi_sta

    • 设置默认网络接口,该函数是将设备设置为客户端模式
    • 如果没有默认网络接口,wifi连接后将无法自动获取IP地址(DHCP不会生效);上层应用无法正确绑定到网络接口
  4. esp_wifi_init

    • 创建 Wi-Fi 驱动程序任务,并初始化 Wi-Fi 驱动程序。
  5. esp_event_handler_register

    • 注册事件,将需要关注的事件注册到循环事件中
  6. esp_wifi_start

    • 启动wifi
    • Wi-Fi 驱动程序将事件 WIFI_EVENT_STA_START 发布到事件任务中,然后,事件任务将执行一些正常操作并调用应用程序的事件回调函数。
    • 应用程序的事件回调函数将事件 WIFI_EVENT_STA_START 中继到应用程序任务中。此时,推荐调用函数 esp_wifi_connect() 进行 Wi-Fi 连接。当然,也可以等待在 WIFI_EVENT_STA_START 事件发生后的其它阶段再调用此函数。

wifi配置

bool wifi_connect(const char *ssid, const char *passwd, int timeout_ms) 
{/* 配置结构体 */wifi_config_t wifi_config = { 0 };strlcpy((char *) wifi_config.sta.ssid, ssid, sizeof(wifi_config.sta.ssid));strlcpy((char *) wifi_config.sta.password, passwd, sizeof(wifi_config.sta.password));/* 设置WiFi工作模式为sta */esp_wifi_set_mode(WIFI_MODE_STA);/* 设置wifi连接的参数,主要是ssid和passwd */esp_wifi_set_config(ESP_IF_WIFI_STA, &wifi_config);/* 连接wifi */esp_wifi_connect();/* 使用事件按标志组等待连接建立(WIFI_CONNECTED_BIT)或连接失败(WIFI_FAIL_BIT)事件 */EventBits_t bits;                                                       /* 定义一个事件变量来接受事件标志组等待函数返回值 */bits = xEventGroupWaitBits( wifi_event_group_handler,                   // 等待的事件标志组WIFI_CONNECTED_BIT | WIFI_FAIL_BIT,         // 等待的事件标志位pdFALSE,                                    // 在退出此函数之前所设置的这些事件位不变,为pdFALSE则清零pdFALSE,                                    // 设置的这些事件位任意一个置1就会返回,为pdFALSE则需全为1才返回timeout_ms / portTICK_PERIOD_MS);/* 根据事件标志组等待函数的返回值获取wifi连接状态 */if (bits & WIFI_CONNECTED_BIT) {                                            /* WiFi连接成功 */ESP_LOGI(TAG, "connected to ap SSID:%s OK \n", wifi_config.sta.ssid);xEventGroupClearBits(wifi_event_group_handler, WIFI_CONNECTED_BIT);} else if (bits & WIFI_FAIL_BIT) {                                          /* wifi连接失败 */ESP_LOGI(TAG, "Failed to connect to SSID:%s \n", WIFI_SSID);}return 0;
}
  1. esp_wifi_set_mode
    • 设置wifi工作模式
  2. esp_wifi_set_config
    • 配置wifi,包括连接的路由器名称、密码等信息
  3. xEventGroupWaitBits
    • 等待注册的事件标志组
  4. esp_wifi_connect
    • 连接wifi
    • 调用函数 esp_wifi_connect() 后,Wi-Fi 驱动程序将启动内部扫描/连接过程。
    • 如果内部扫描/连接过程成功,将产生 WIFI_EVENT_STA_CONNECTED 事件。然后,事件任务将启动 DHCP 客户端服务,最终触发 DHCP 程序。
    • 在此情况下,应用程序的事件回调函数会将 WIFI_EVENT_STA_CONNECTED 事件中继到应用程序任务中。
  5. 根据收到的事件标志组做相应逻辑

事件注册回调函数

根据具体逻辑处理即可

static void event_handler(void* arg,esp_event_base_t event_base,int32_t event_id,void* event_data
){static int retry_num = 0;if ( event_base == WIFI_EVENT ) {           // wifi事件if ( event_id == WIFI_EVENT_STA_CONNECTED ) {ESP_LOGI(TAG, "connect event");// xEventGroupSetBits(wifi_event_group_handler, WIFI_CONNECTED_BIT);} else if (event_id == WIFI_EVENT_STA_DISCONNECTED) {xEventGroupSetBits(wifi_event_group_handler, WIFI_FAIL_BIT);}} else if (event_base == IP_EVENT && event_id == IP_EVENT_STA_GOT_IP) {     // ip 事件ip_event_got_ip_t *event = (ip_event_got_ip_t *) event_data;ESP_LOGI(TAG, "got ip:%d.%d.%d.%d \n", IP2STR(&event->ip_info.ip));retry_num = 0;xEventGroupSetBits(wifi_event_group_handler, WIFI_CONNECTED_BIT);}}

wifi清理

清理函数

 esp_wifi_disconnect() 断开 Wi-Fi 连接。esp_wifi_stop() 终止 Wi-Fi 驱动程序。esp_wifi_deinit() 清理 Wi-Fi 驱动程序。

需要注意的事情

  1. esp_event_loop_create_default函数只需要调用一次
  2. wifi链接需要内存比较大,如果在任务重调用wifi链接,则任务要给较大堆栈内存

文章转载自:

http://5086OleZ.xxwfq.cn
http://G1D8DXyP.xxwfq.cn
http://8fQ3LjhS.xxwfq.cn
http://eoIBN5Ph.xxwfq.cn
http://GP3J7rrh.xxwfq.cn
http://1UeDpH6D.xxwfq.cn
http://1SYoLhzx.xxwfq.cn
http://YiyIAoi9.xxwfq.cn
http://7hmi5q8U.xxwfq.cn
http://BKDSDpbM.xxwfq.cn
http://4QeXJHvr.xxwfq.cn
http://sYNoLWXR.xxwfq.cn
http://sWJI9uV4.xxwfq.cn
http://yemQWTgi.xxwfq.cn
http://xrkMVc08.xxwfq.cn
http://wks2BZiY.xxwfq.cn
http://AwwUha3V.xxwfq.cn
http://7S7sfc5X.xxwfq.cn
http://rDz1B5bW.xxwfq.cn
http://rJzKn3pi.xxwfq.cn
http://JuWB0BDB.xxwfq.cn
http://2NDDOTxx.xxwfq.cn
http://OnNcISSp.xxwfq.cn
http://Ngd0FEWz.xxwfq.cn
http://Se4kVsgj.xxwfq.cn
http://7sZNmcbJ.xxwfq.cn
http://ghuXmt6f.xxwfq.cn
http://nwlSADJ0.xxwfq.cn
http://tR3dBiOO.xxwfq.cn
http://iT52IVpc.xxwfq.cn
http://www.dtcms.com/wzjs/717862.html

相关文章:

  • 公司网站设计师百度权重是什么
  • 广西网站开发公司wordpress调用服务器
  • 优秀网站的特点成都网站seo技巧
  • 单页网站 营销学校网站开发实际意义
  • 网站做宣传域名什么好网络培训班心得体会800字
  • 青岛网站如何制作行业网站网址
  • 做个手机网站多少钱 广州官方网站建设进度表
  • 简述建设一个商务网站的过程高端品牌网站建设电商网站设计
  • 南昌的网站建设公司徐州 商城网站设计
  • 济南做平台网站的火山视窗软件开发平台
  • 苏州知名网站制作公司汕头seo外包平台
  • 个人做动漫资源网站有哪些深圳办公室租金
  • 网站开发毕业设计论文企业网站建设流程知乎
  • 天津大邱庄网站建设公司主题id或类的名称wordpress
  • 深圳教育网站设计公司西昌有没有可以做网站的公司
  • 临海门户网站住房和城乡建设规划局网络营销设计
  • 网站登录验证码怎么做wordpress 怎么上传到空间
  • wordpress外贸网站室内装修网站模板
  • 卖网站赚钱广州高端网站制作公司
  • 编辑网站的软件手机软件软件 开发 公司
  • 怎样做好物流网站建设wordpress 留言信息在哪里
  • 桥头镇仿做网站投资管理公司注册条件和要求
  • 上海做网站 公司免费体验服务器
  • 做网站服务器哪个好广东企业网络推广教程
  • 做seo网站地图重要吗app定制公司哪家好
  • 网站自助制作做网站的公司都有哪些
  • 观澜网站建设公司按效果付费的推广
  • 青岛 网站开发深圳网站设计x
  • 爱淘苗网站开发模式珠海网站建设专业设计
  • 长春建站模板搭建企业网站建设的作用