3.3. Wi-Fi AP/STA/MONITOR模式示例说明

本工程展示了wifi模块ap/sta/monitor三种模式切换的使用示例:

  • wifi启动STA模式的使用

  • wifi启动AP模式的使用

  • wifi启动MONITOR模式的使用

3.3.1. 工程示例及配置说明

  • STA模式example:

    • 进入 apps/demo/demo_DevKitBoard/include/demo_config.h ,开启宏 USE_DEMO_WIFI_TEST

    • wifi_demo_task.c 中打开宏

    • 定义 #define STA_MODE_TEST 配置WIFI工作在STA模式,并且配置好 STA_SSIDSTA_PWD

  • AP模式example:

    • 进入 apps/demo/demo_DevKitBoard/include/demo_config.h ,开启宏 USE_DEMO_WIFI_TEST

    • wifi_demo_task.c 中打开宏定义 #define AP_MODE_TEST 配置WIFI工作在AP模式,并且配置好 AP_SSIDAP_PWD

  • MONITOR模式example:

    • 进入 apps/demo/demo_DevKitBoard/include/demo_config.h ,开启宏 USE_DEMO_WIFI_TEST

    • wifi_demo_task.c 中打开宏定义 #define MONITOR_MODE_TEST 配置WIFI工作在混杂/监听/配网模式

Note

若需要循环模式切换测试同时打开宏WIFI_MODE_CYCLE_TEST

3.3.2. 代码流程

  • STA_MODE_TEST配置WIFI工作在STA模式:

    • c_main()入口:

      A)创建任务wifi_demo_task

    • wifi_demo_task():

      A)启动WIFI

      B)打印WIFI信号质量信息和吞吐率信息

    • wifi_event_callback():

      A)case WIFI_EVENT_MODULE_INIT: 配置WIFI启动为STA模式和连接路由器的SSID和密码

      B)case WIFI_EVENT_STA_NETWORK_STACK_DHCP_SUCC:连接路由器成功,并且DHCP获取到IP地址

  • AP_MODE_TEST配置WIFI工作在AP模式:

    • c_main()入口:

      A)创建任务wifi_demo_task

    • wifi_demo_task():

      A)启动WIFI

      B)打印WIFI信号质量信息和吞吐率信息

    • wifi_event_callback():

    A)case WIFI_EVENT_MODULE_INIT: 调用wifi_set_lan_setting_info();配置AP模式的IP地址信息和DHCP池起始分配地址, 配置WIFI启动为AP模式和热点SSID和密码

    B)case WIFI_EVENT_AP_START:AP模式启动成功,此时手机端可以搜索到对应SSID的热点

    C)case WIFI_EVENT_AP_ON_ASSOC:当有手机成功连接到WIFI,引发事件

    D)case WIFI_EVENT_AP_ON_DISCONNECTED:当有手机断开WIFI,引发事件

  • MONITOR_MODE_TEST配置WIFI工作在混杂/监听/配网模式:

    • c_main()入口:

    A)创建任务wifi_demo_task

    • wifi_demo_task():

    A)启动WIFI

    B)打印WIFI信号质量信息和吞吐率信息

    • wifi_event_callback():

    A)case WIFI_EVENT_MODULE_INIT: 配置WIFI启动为MONITOR模式

    B)case WIFI_EVENT_SMP_CFG_START:注册接收802.11数据帧回调wifi_rx_cb

    C)case WIFI_EVENT_SMP_CFG_STOP:关闭接收802.11数据帧回调

    • wifi_rx_cb():

    A)打印接收到的802.11数据帧