学习目的及目标
· 掌握WIFI的状态机结构
· 掌握乐鑫新建热点(AP)的程序
ESP32的WiFi特点
· WiFi可作为AP、STA、AP+STA三种模式
· 作为AP时,可以被4个STA连接
· AP 是 (Wireless) AccessPoint 的缩写,即 (无线) 访问接入点。简单来讲就像是无线路由器一样,设备打开后进入 AP 模式,在手机的网络列表里面,可以搜索到类似 TPLINK_XXX 的名字(SSID)
· STA是每一个连接到无线网络中的终端(如笔记本电脑、手机、PAD及其它可以联网的用户设备)都可称为一个站点,STA本身并不接受无线的接入,它可以连接到AP。
软件设计
代码逻辑(来自网络)
![90a5a62f9d363fca444f69e31ccd5cb3.png](https://i-blog.csdnimg.cn/blog_migrate/03bea8d5061d4d30bbffae8bcb162be7.jpeg)
ESP32的I2C master接口介绍(来自网络)
esp32wifi底层驱动是不开源的,以下是esp32 wifi状态机工作原理的流程图
![625d75ad79ddab488df55d8f56f2d07b.png](https://i-blog.csdnimg.cn/blog_migrate/1078a0741e48b41da99c6f5d8ac55602.jpeg)
ESP32的WIFI状态机总结
初始化wifi配置后,程序会根据WIFI的实时状态,在回调函数中给出状态返回,所以只需要在回调中进行相关操作,接下来讲解状态机的解析。
状态机解析
WiFi初始化API介绍
· 设置WiFi回调函数esp_event_loop_init();
· 初始化WiFi设置函数WIFI_INIT_CONFIG_DEFAULT();
· 设置WiFi工作模式函数esp_err_t esp_wifi_set_mode();
· 启动WiFi函数:esp_err_t esp_wifi_start(void);
更多更详细接口请参考官方指南。
WiFi初始化编写
作为AP的回调函数解析
效果展示
![2b0e83dc3297455bb6ba3b730c7648e5.png](https://i-blog.csdnimg.cn/blog_migrate/e16effee84a9065bda0a2f508fa42811.jpeg)
WiFi总结
· 乐鑫采用了大众的,初始化+回调的状态机结构,逻辑清晰简单,方便学习和使用。
· 源码地址:https://github.com/xiaolongba/wireless-tech
开源地址:https://github.com/HX-IoT/