最近刚刚开始ESP-IDF架构的学习,为了了解其架构,我首先选择尝试编写一个扫描AP信息的功能程序。
一、 由于我接下来准备测试tcp client功能,因此我选择的是tcp client测试用例 作为基本环境。位置为/esp/ESP8266_RTOS_SDK/examples/protocols/sockets/tcp_client, 将这个文件拷贝到~/esp/下面。
二、先看看这个源码内容,大致如下:
1. 启动入口函数app_main
2. app_main里面有nvs_flash_init初始化flash相关, 然后就是initialise_wifi()初始化wifi相关功能,wait_for_ip等待wifi连接,如果连接上AP则进入接下来的工作,创建任务线程tcp_client_task。
3. 从2中看出我们现在只需要扫描AP信息,与tcp没有什么 关系,因此wait_for_ip和tcp_client_task线程就没必要了,可以先屏蔽掉它。接下来我们看看initialise_wifi做了什么。
这个初始化函数,首先用 xEventGroupCreate创建了一个事件组来监听一系列的事件,事件的处理函数为event_handler。然后就是初始化wifi基本信息esp_wifi_init,通过esp_wifi_set_mode设置wifi 模式(一共有:AP 、STA、AP+STA模式可选),esp_wifi_set_con