WIFI技术
直播中

宜家

8年用户 1098经验值
私信 关注
[问答]

如何通过WHD或WCM功能检测AP的断电?

请告知如何通过 WHD 或 WCM 功能检测 AP 的断电(或链路中断)?
我一直使用带有村田 2AE(CYW4373)的 STM32H747I-DISCO 板作为 STA,软件是英飞凌 AIROC-Wi-Fi-Bluetooth-STM32 扩展包 V1.5.1 中的"wifi_join_wpa3" 或"wifi_netxduo" 。

回帖(1)

张静

2024-5-28 16:04:48
要通过WHD(Broadcom的Wi-Fi Host Driver)或WCM(Windows Connect Now)功能检测接入点(AP)的断电或链路中断,您可以按照以下步骤操作:

1. 首先,确保您的STM32H747I-DISCO板已正确连接到AP,并且AP已开启WCM功能。

2. 在您的代码中,您需要使用WHD库提供的API来处理Wi-Fi连接和事件。以下是一些关键的API函数:

   - whd_wifi_on()
   - whd_wifi_off()
   - whd_wifi_scan()
   - whd_wifi_connect()
   - whd_wifi_disconnect()
   - whd_wifi_get_mac_address()

3. 在您的代码中,创建一个事件处理函数,用于处理Wi-Fi连接事件。例如:

   ```c
   void wifi_event_handler(whd_interface_t ifp, whd_event_t event, whd_event_info_t *info)
   {
       switch (event)
       {
           case WHD_CONNECTION_STATUS_EVENT:
               if (info->status)
               {
                   // 连接成功
               }
               else
               {
                   // 连接失败或链路中断
                   whd_wifi_disconnect(ifp);
               }
               break;

           // 处理其他事件
       }
   }
   ```

4. 在您的主函数中,初始化WHD库并注册事件处理函数:

   ```c
   int main(void)
   {
       // 初始化WHD库
       whd_init();

       // 注册事件处理函数
       whd_wifi_register_event_handler(wifi_event_handler, WHD_CONNECTION_STATUS_EVENT);

       // 启动Wi-Fi并连接到AP
       whd_wifi_on();
       whd_wifi_connect();

       // 主循环
       while (1)
       {
           // 处理其他任务
       }
   }
   ```

5. 当AP断电或链路中断时,事件处理函数将被调用,您可以在该函数中添加相应的逻辑来处理这种情况。例如,您可以尝试重新连接到AP或通知用户。

请注意,这里提供的代码示例仅供参考,您需要根据您的具体需求和项目结构进行调整。同时,确保您已经熟悉WHD库和相关API函数,以便正确实现此功能。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分