ESP32配置AP模式

本文介绍了在ESP32中使用回调函数处理WiFiAP功能时,如何捕获STA(station)的IP分配和断开事件。展示了`WIFI_CallBack`函数以及相关配置和事件处理的过程。
摘要由CSDN通过智能技术生成

代码:

#include <stdio.h>
#include "nvs_flash.h"
#include "esp_event.h"
#include "esp_netif.h"
#include "esp_wifi.h"
#include <string.h>
#include "esp_mac.h"

void WIFI_CallBack(void* event_handler_arg,esp_event_base_t event_base,int32_t event_id,void* event_data)//回调函数
{
    if(event_base == IP_EVENT && event_id == IP_EVENT_AP_STAIPASSIGNED)
    {
        ip_event_ap_staipassigned_t* info = (ip_event_ap_staipassigned_t*)event_data;
        printf("\nSTA的IP:"IPSTR"\n",IP2STR(&info->ip));
        printf("新接入的STA的MAC的地址是:"MACSTR"\n",MAC2STR(info->mac));
    }
    if(event_base == WIFI_EVENT && event_id == WIFI_EVENT_AP_STADISCONNECTED)
    {
        wifi_event_ap_stadisconnected_t* info = (wifi_event_ap_stadisconnected_t*)event_data;
        printf("断开的STA的MAC地址是:"MACSTR"\n",MAC2STR(info->mac));
    }

}                                   

void app_main(void)
{
    nvs_flash_init();//esp32 flash-nvs键值对

    esp_event_loop_create_default();//创建默认事件循环

    esp_event_handler_instance_register(IP_EVENT,IP_EVENT_AP_STAIPASSIGNED,WIFI_CallBack,NULL,NULL);
    esp_event_handler_instance_register(WIFI_EVENT,WIFI_EVENT_AP_STADISCONNECTED,WIFI_CallBack,NULL,NULL);
    //esp_event_handler_t

    //AP
    esp_netif_init();  

    //AP网卡初始化    以默认方式创建一个AP类型的网卡
    esp_netif_create_default_wifi_ap();

    //初始化WiFi底层配置
    wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT();
    esp_wifi_init(&cfg);

    //设置WiFi的模式
    esp_wifi_set_mode(WIFI_MODE_AP);

    //配置AP的参数
    wifi_config_t  cfg2 = {
        .ap = {
                .ssid ="ESP32",
                .ssid_len = strlen("ESP32"),
                .channel = 1,
                .password = "123456789",
                .max_connection = 4,
                .authmode = WIFI_AUTH_WPA_WPA2_PSK

        }
    };
    esp_wifi_set_config(ESP_IF_WIFI_AP,&cfg2);

    //启动wifi
    esp_wifi_start();

}

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值