关注分享主机优惠活动
国内外VPS云服务器

ESP32-C3 入门教程网络第一章—WiFi Scan 快速扫描附近AP无线热点

摘要:初始化底层堆栈并创建默认事件循环。 ,创建一个具有默认设置的对象并连接并注册默认处理程序。 为驱动程序初始化分配资源,例如控制结构缓冲区结构。 这也将启动任务。 必须在其他所有操作之前调用它,将操作模式设置为 或 ,并将默认模式设置为 mode 。

文章目录 1. 快速操作 2. 执行效果 3. 程序流程 4. 主要功能 4.1 扫描所有有效 AP 4.2 列出上次扫描中找到的 AP 获取 4.3 获取上次编号扫描期间发现的 AP 数量

1. 快速运行示例项目并选择 WiFi—>scanmenuconfig 并选择 ESP32C3-Specific—>Rec 0 配置芯片并选择 ESP32-C3 (Built- ])。 (USB JTAG 中) ESP-IDF 快速运行 build、flash 和监控(左下角)

2. 运行效果

3. 程序流程 nvs_flash_init,默认 初始化NVS分区。 esp_netif_init,初始化底层 TCP/IP 堆栈。 esp_event_loop_create_default,创建默认事件循环。 esp_netif_create_default_wifi_sta 使用默认 WiFi 站配置创建 esp_netif 对象,将 netif 连接到 WiFi,并注册默认 WiFi 处理程序。 esp_wifi_init 初始化 WiFi 驱动程序的 WiFi 分配资源,包括 WiFi 控制结构、RX/TX 缓冲区和 WiFi NVS 结构。 此 WiFi 还会启动 WiFi 任务。 该API必须先调用可以调用所有其他 WiFi API esp_wifi_set_mode 将 WiFi 工作模式设置为 Station、Soft-AP 或 Station+Soft-AP。 默认模式为soft-AP 模式。 该程序设置为stationesp_wifi_start。 根据您的配置,启动WiFiesp_wifi_scan_start,扫描所有有效的APesp_wifi_scan_get_ap_records,并获取上次扫描中找到的AP列表。 esp_wifi_scan_get_ap_num, 获取上次扫描发现的 AP 数量。 4. 主要特点 4.1 扫描所有有效的AP 配置并扫描配置块。 阻止程序运行/** * @brief 扫描所有可用的 AP。 * * @attention 调用此 API 时,找到的 AP 会保存在动态分配给 WiFi 驱动程序的内存中,并通过 * esp_wifi_scan_get_ap_records 释放。 因此,扫描完成后,通常通过调用 esp_wifi_scan_get_ap_records * 来释放内存 * @ 注意 每个通道的最大主动扫描时间和被动扫描时间值限制为 1500 ms。 * 值大于1500ms可能会导致静止我们不建议打开它来断开与 AP 的连接。 * * @param config 扫描配置 * @param block 如果 block 为 true,则此 API 会阻止调用者,直到扫描完成。 否则, * 立即返回 * * @return * - ESP_OK:成功 * - ESP_ERR_WIFI_NOT_INIT:WiFi 尚未由 esp_wifi_init 初始化 * - ESP_ERR_WIFI_NOT_STARTED:WiFi 尚未由 esp_wifi_start 启动 * - ESP_ERR_WIFI_TIMEOUT:阻塞扫描timed out * - ESP_ERR_WIFI_STATE: 调用 esp_wifi_scan_start 时 Wi-Fi 仍然连接 * - 其他:参见 esp_err.h */esp_err_t esp_wifi_scan_start (const wifi_scan_config_t *config, bool block); 4.2 获取最后找到的 AP 列表编号扫描,返回最大AP数 ap_records,返回应用程序记录数组 /** * @brief.获取上次扫描中找到的 AP 列表 * * @param[inout] number 存储 ap_records 可以保存的最大 AP 编号作为输入参数。 * 接收该API返回的实际AP号作为输出参数。 * @param ap_records wifi_ap_record_t 保存找到的 AP 的数组 * * @return * - ESP_OK: 成功 * - ESP_ERR_WIFI_NOT_INIT: WiFi 未由 esp_wifi_init 初始化 * - ESP_ERR_WIFI_NOT_STARTED: WiFi 由 esp_wifi_start 启动 * - ESP_ERR_INVALID_ARG: 无效参数 * [k4 ] ESP_ERR_NO_MEM: Out of memory */esp_err_t esp_wifi_scan_get_ap_records(uint16_t *number, wifi_ap_record_t *ap_records); 4.3 获取上次扫描中发现的 AP 数量并存储扫描中发现的 API 数量/** * @brief Gets上次扫描中找到的 AP 数量 * * @param[out] number 存储找到的 AP 数量上次扫描中 * * @attention 该接口只能在扫描完成后调用。 否则,您可能会得到错误的值。 * * @return * - ESP_OK: 成功 * - ESP_ERR_WIFI_NOT_INIT: WiFi 未由 esp_wifi_init 初始化 * - ESP_ERR_WIFI_NOT_STARTED: WiFi 未由 esp_wifi_start 启动 * - ESP_ERR_INVALID_ARG: 参数无效 */esp_wifi_scan_get_ap_ * 数量) ;

如果您喜欢,请连续点击三下(点赞+收藏+关注)。

未经允许不得转载:主机频道 » ESP32-C3 入门教程网络第一章—WiFi Scan 快速扫描附近AP无线热点

评论 抢沙发

评论前必须登录!