Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
ART-Pi
easyflash
AP6212
Art_Pi学习笔记3:学习驱动wifi模块AP6212
发布于 2020-12-22 11:47:33 浏览:8245
订阅该版
开发环境: RT-Thread Studio 开发板: Art-Pi OS版本: 4.0.3 承接前面的学习笔记,继续研究Art_Pi开发板的板载资源。今天来试试驱动板上的WIFI模块AP6212。 首先要感谢大佬的贴子,以及官方例程文档的说明。 [大佬的参考贴子] (https://blog.csdn.net/sinat_31039061/article/details/109763903) [EasyFlash开发文档] (https://www.bookstack.cn/read/EasyFlash-v4.0/docs-zh-design.md) **笔记内容** 参考官方例程的配置,软件包依赖于fal和easyflash ![image.png](/uploads/20201222/7f99c792ae23fda32db73ef267071a64.png) 硬件勾选AP6212 ![image.png](/uploads/20201222/397911011d25d0e24cda8eaa7bcaca80.png) 保存配置退出,编译通过,下载即可,打开终端查看调试信息 通过终端调试WIFI ![image.png](/uploads/20201222/a87c3184b83dc74e383859bc53551904.png) 网卡设备已经注册成功。这时候就可以通过wifi提供的调试工具来试试网络是否已经联通。首先是查询当前可用热点信息wifi scan ![image.png](/uploads/20201222/4c6218b7673d5334fb5d0c868b8f3931.png) 然后是连接热点wifi join 热点名称 密码 ![image.png](/uploads/20201222/0d7d7e561e0144fd184940bc8859b933.png) 然后可以试试ping一下百度 ![image.png](/uploads/20201222/6c637332cc43df83dd95d16c1f517c63.png) 还可以看看当前wifi状态wifi status ![image.png](/uploads/20201222/2aed4ca124ffd971bd13e5da1b976a29.png) 遇到不清楚的可以wifi help查询一下指令 ![image.png](/uploads/20201222/6e385159fe8eae8fa21b1d14cb11df59.png) 到此,意味着AP6212已经成功驱动起来了。但是这样只是第一步,因为板卡重启之后是不会自动重新连接的。 ![image.png](/uploads/20201222/99970d0d1b52b22bd78998f22adfa6dc.png) 要实现保存配置信息,并且开机自动连接,需要参考官方例程art_pi_wifi **学习art_pi_wifi例程** 通过rtt-studio新建一个art_pi_wifi的项目,然后编译下载到板卡上,先运行一下效果。 烧录固件之后第一次启动,wifi没有连接,因为此时并没有保存热点配置信息,不过“Auto Connect status”的状态是“Enable”。 通过wifi join指令连接热点,ping通baidu之后,使用reboot指令重启板卡。 板卡第二次启动之后,在wifi注册完毕之后,自动连接上了之前配置好的热点,不需要在用wifi join指令,直接ping就可以通baidu。 下面就来看看这个过程是如何实现的。 ![image.png](/uploads/20201222/7ecf8248681eb65fc97571c689441e82.png) 对比一下自建项目和官方项目的文件差异,主要的差别在于port目录下多了一个wifi_config.c的文件。虽然官方例程中还有一个ef_fal_port.c的文件,不过我是放在EasyFlash的包中了。下次还是要学习官方的做法,放在port目录下,这样可以有效防止更新工具包的时候把ef_fal_port.c文件给搞丢了。 ![image.png](/uploads/20201222/672621ddf5a1df0b47486dc3ebde4ff1.png) **学习wifi_config.c文件** 在文件的最底下,有一个wlan_autoconnect_init的函数,先看看这个函数会在哪里被调用。查找一下原来是在main.c中被调用。也就是说在主线程上先配置了wifi自动重连的一些信息,然后又使能了自动重连。以此来实现重启之后wifi自动重新的功能。 ![image.png](/uploads/20201222/615d57200c7a8c1679316d68e241aefb.png) ![image.png](/uploads/20201222/b04cc7f2d88382c90601f6f65b229c44.png) 下面来看看这个wlan_autoconnect_init函数到底做了什么配置 一开始是两个初始化函数 ![image.png](/uploads/20201222/c9a09d1108f8341e26186daa1e497f9e.png) 接下来的rt_wlan_cfg_set_ops函数位于wlan_cfg.c文件中,主要是调用了rt_wlan_cfg_init函数。这里应该是申请一段内存来保存配置信息吧。 ![image.png](/uploads/20201222/49fc2a448ea39ce5a0034bcdec48e476.png) 那到底这些配置信息是保存在什么地方呢?注意rt_wlan_cfg_set_ops函数传入的参数是指针,指向哪里呢? ![image.png](/uploads/20201222/bbc4b767d2a62806035defdc5ab602b7.png) 这三个是什么呢? ![image.png](/uploads/20201222/a4c969cce73d29a33266618c0a3a267d.png) 这三个函数的具体实现用到了两个函数ef_get_env_blob和ef_set_env_blob,这两个函数位于ef_env.c文件中 ![image.png](/uploads/20201222/7de6b4315dc0c9e2477ff0c868c0446b.png) ![image.png](/uploads/20201222/27b03c1b986a782dfdaebac4a7220e32.png) 再结合easyflash的开发文档说明 https://www.bookstack.cn/read/EasyFlash-v4.0/docs-zh-api.md 就清楚了,这里就是调用了easyflash的api来保存和获取环境变量。 **移植到自己的项目中实验** 既然清楚了整个处理流程,那就是将文件复制到自己的工程中,验证一下 ![image.png](/uploads/20201222/a0f500edad196713208ccc05dcf39434.png) 编译通过,下载到板卡上验证,可以,自动重连了。 ![image.png](/uploads/20201222/12bad0d8d2665dbcb438016f80fb5f01.png) **相关文章:** [Art-Pi学习笔记10:优化多媒体扩展板的音频驱动添加录音功能](https://club.rt-thread.org/ask/article/2872.html) [Art-Pi学习笔记9:如何使用art-pi的多媒体扩展板播放TF卡中的音乐文件](https://club.rt-thread.org/ask/article/2849.html) [Art-Pi学习笔记9:如何为Art-pi的内部flash设置读保护](https://club.rt-thread.org/ask/article/2568.html) [Art_Pi学习笔记8:使用AHT10温湿度模块](https://club.rt-thread.org/ask/article/2543.html) [Art_Pi学习笔记7:自己添加硬件定时器设备HWTIMER](https://club.rt-thread.org/ask/article/2492.html) [Art_Pi学习笔记6:驱动PWM输出](https://club.rt-thread.org/ask/article/2483.html) [Art-Pi学习笔记5_4:在littlevgl中显示二维码](https://club.rt-thread.org/ask/article/2698.html) [Art-Pi学习笔记5_3:在littlevgl软件包中显示中文字体](https://club.rt-thread.org/ask/article/2695.html) [Art_Pi学习笔记5.2:LVGL模拟器安装在VS2019上的避坑指南](https://club.rt-thread.org/ask/article/2470.html) [Art_Pi学习笔记5.1:优化LVGL软件包提高刷屏的速度](https://club.rt-thread.org/ask/article/2464.html) [Art_Pi学习笔记5:移植LittleVGL2RTT软件包驱动多媒体扩展屏](https://club.rt-thread.org/ask/article/2434.html) [Art_Pi学习笔记4:驱动多媒体扩展版的LCD和触摸功能](https://club.rt-thread.org/ask/article/2436.html) [Art_Pi学习笔记3:学习驱动wifi模块AP6212](https://club.rt-thread.org/ask/article/2429.html) [Art_Pi学习笔记2:驱动片外SPI_FLASH_W25Q128](https://club.rt-thread.org/ask/article/2423.html) [Art-Pi学习笔记1:驱动SDIO和USB设备做TF读卡器](https://club.rt-thread.org/ask/article/2417.html)
7
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
adaphoto
这家伙很懒,什么也没写!
文章
25
回答
44
被采纳
5
关注TA
发私信
相关文章
1
easyflash 用来存储 传感器定时采样的数据适不适合?
2
easyflash存放于fat文件系统中,但是会擦除文件系统
3
EasyFlash移植失败,硬件发生错误?
4
easyflash demo擦写完数据后再上电就挂了?
5
easyflash初始化env无法自动写入默认环境变量?
6
有在STM32L4上用easyflash的么?请教个问题
7
[已解决] easyflash 使用内部 flash 无法保存参数
8
FAL 上的FlashDB、EasyFlash、EasyLogger调试经历
9
easyflash存储问题
10
easyflash可以用来存储300个小文件且能够按照日期分类检索吗?
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
ART-Pi
FinSH
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
rt-smart
FAL
ESP8266
I2C_IIC
WIZnet_W5500
ota在线升级
UART
flash
packages_软件包
cubemx
PWM
freemodbus
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
socket
flashDB
中断
Debug
编译报错
msh
rt_mq_消息队列_msg_queue
keil_MDK
C++_cpp
ulog
at_device
SFUD
本月问答贡献
出出啊
1515
个答案
342
次被采纳
小小李sunny
1438
个答案
289
次被采纳
张世争
786
个答案
168
次被采纳
crystal266
546
个答案
161
次被采纳
whj467467222
1222
个答案
148
次被采纳
本月文章贡献
出出啊
1
篇文章
6
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
1
篇文章
2
次点赞
crystal266
2
篇文章
1
次点赞
whj467467222
2
篇文章
1
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部