【ART-Pi测评】四:联网同步时间、实现自动连接WiFi
[复制链接]
本帖最后由 数码小叶 于 2021-7-18 21:18 编辑
ART-Pi板载了一个AP6212模块,AP6212是正基AMPAK推出的一款低功耗高性能的WiFi+BT4.2模块,该模块符合802.11b/g/n,其中WiFi功能采用SDIO接口,蓝牙采用UART/I2S/PCM接口,具有StationMode,SoftAP,P2P功能等。
惯例从一个空白模板工程开始
在RT-Thread Setting里打开板载外设AP6212
因为是板级支持包的缘故,到这rt-thread就已经完成初始化AP6212以及网卡了
对比加入AP6212前后,finish组件支持的命令,可以发现增加了很多
利用wifi命令,可以实现一些常用操作,比如扫描附件无线信号 ,比如使用join命令来连接WiFi等等
成功分配地址,尝试ping rt-thread的官网,ping通过。
网络连接ok后,就是获取时间的问题了,rt-thread软件包里有一个netutils的网络工具集
在这个软件包里就提供了NTP工具来实现获取NTP服务器的时间
编译下载后,运行却报错了,才想起了,这个包要打开RTC
为了省事,直接打开软件模拟RTC,因为硬件RTC的话,还需要在board_init里添加RTC的初始化部分代码后,才能完成调用,直接打开软件模拟就省了硬件初始化
成功获取服务器时间,但是这个还存在一个问题,每次上电后想要查询时间,都要手动连接WiFi,不能自动连接。想到了在体验ART-Pi的一些demo时,WiFi是可以上电自动连接的,那就来移植一下这个功能。
在main文件里,没有多余的内容,比较显眼的就是这两个函数了
/* init Wi-Fi auto connect feature */
wlan_autoconnect_init();
/* enable auto reconnect on WLAN device */
rt_wlan_config_autoreconnect(RT_TRUE);
不论是注释还是函数名,很明显就是自动连接功能
复制到刚新建的模板工程里,因为只复制了这两个函数的调用,所以肯定会报一堆错,那就根据错误来一点点添加,首先找到这两个函数的实体所在,wifi_config.c、wlan_mgnt.c,复制到模板工程
一步步根据错误,来添加组件,这里是EasyFlash的缺失
一直修改到无报错和警告后,下载到板子上,可以看到Auto Connect功能已经使能了
断电,再上电,已经可以实现自动连接,然后获取时间的效果了![](https://bbs.eeworld.com.cn/static/editor/plugins/hkemoji/sticker/facebook/wanwan58.gif)
|