3.5. Wi-Fi 扫描示例工程说明

本工程展示了使用STA/AP模式下启动扫描空中SSID并获取扫描结果的使用示例:

  • STA模式下启动扫描空中SSID并获取扫描结果

  • AP模式下启动扫描空中SSID并获取扫描结果

3.5.1. 工程示例及配置说明

  • STA模式扫描example:

    • 进入 apps/demo/demo_DevKitBoard/include/demo_config.h ,开启宏 USE_DEMO_WIFI_TESTUSE_WIFI_SCAN_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_TESTUSE_WIFI_SCAN_TEST

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

    • wifi_conf.c 中打开AP扫描开关 const char wifi_ap_scan_support = 1;

3.5.2. 代码流程

  • demo_wifi()入口:

    A)创建任务wifi_demo_task

  • wifi_demo_task():

    A)启动WIFI

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

    C)循环调用扫描函数 wifi_scan_test()

  • wifi_scan_test():

    A)STA模式或者AP模式下启动一次扫描空中SSID

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

    C)启动一次扫描空中SSID后,获取扫描结果

    D)打印扫描到的空中SSID结果

3.5.3. 常见问题

  • 若使用连接最优WIFI(connect_best_network)的情况下,如果不使用等待WIFI_STA_SCAN_COMPLETED事件的方式, 在WIFI还未连接成功的情况下,有概率会造成wifi内部获取的结果被这里清空导致当次获取不到空中准备WIFI列表,需要等到下次扫描结果,因此如果使用connect_best_network的情况下,推荐使用等待事件 WIFI_STA_SCAN_COMPLETED 扫描完成之后才去获取结果。