參考 (十九)零基础开发小安派-Eyes-S1【进阶篇】——通过屏幕输入连接WiFi - 小安派&M61零基础开发教程(官方)
在wifi库中可以看到wifi_start_firmware_task,该任务已经配置好了wifi,而wifi_event_handler对应了wifi的各种状态,这里对应着底层的wifi状态机。有扫描、断连、获取IP等等状态,大家可以自行查阅。而我们需要在wifi_connect函数中,这里面也有一些wifi的连接状态,都是基于这个sta_ConnectStatus来判断。在连接失败时修改我们的“LED”灯状态,对应 lv_led_set_color,这里的ui我定义了临时变量并将全局的guider_ui的地址赋予它。同样的,在成功连接后,也就是获取IP时,也修改LED的颜色,同时将wifi的ssid和passwd写入FLASH中,通过字段保存。我的字段定义在easy_flash的user_esflash.h中。在其它文件中使用flash注意将头文件也添加。


最后也是在WiFi_Connect/components/UI/generated/setup_scr_screen_2.c中,也就是对应我们的界面2初始化内容来修改,通过flash判断上一次成功输入wifi且被储存的内容是否存在,来显示我们上一次连接的wifi名称和密码,就不用重复输入。

三、最终效果展示
上电的初始界面,如果是第一次烧录应该是SSID和星号隐藏的PASSWORD。这里我连接过了,显示的是我的wifi名称和密码。
未连接时左上角的灯为红色。滑动显示下一个日历界面。


输入正确的WiFi的名称和密码后,点击连接按钮,成功连接WiFi后,左上角的灯变为绿色,可以通过LOG口查看连接的过程。正确连接一次WiFi后,以后每次复位或者烧录显示的都是上一次连接的WiFi名称和密码。

