数码小叶 发表于 2021-7-18 21:32

【ART-Pi测评】四:联网同步时间、实现自动连接WiFi

本帖最后由 数码小叶 于 2021-7-18 21:18 编辑

<p><span style="font-size:20px;">ART-Pi板载了一个AP6212模块,AP6212是正基AMPAK推出的一款低功耗高性能的WiFi+BT4.2模块,该模块符合802.11b/g/n,其中WiFi功能采用SDIO接口,蓝牙采用UART/I2S/PCM接口,具有StationMode,SoftAP,P2P功能等。</span></p>

<p><br />
</p>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p><span style="font-size:20px;">惯例从一个空白模板工程开始</span></p>

<p></p>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p><span style="font-size:20px;">在RT-Thread Setting里打开板载外设AP6212</span></p>

<p></p>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p><span style="font-size:20px;">因为是板级支持包的缘故,到这rt-thread就已经完成初始化AP6212以及网卡了</span></p>

<p></p>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p><span style="font-size:20px;">对比加入AP6212前后,finish组件支持的命令,可以发现增加了很多</span></p>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p><span style="font-size:20px;">利用wifi命令,可以实现一些常用操作,比如扫描附件无线信号&nbsp;,比如使用join命令来连接WiFi等等</span></p>

<p></p>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p><span style="font-size:20px;">成功分配地址,尝试ping rt-thread的官网,ping通过。</span></p>

<p><span style="font-size:20px;">网络连接ok后,就是获取时间的问题了,rt-thread软件包里有一个netutils的网络工具集</span></p>

<p>&nbsp;</p>

<p></p>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p><span style="font-size:20px;">在这个软件包里就提供了NTP工具来实现获取NTP服务器的时间</span></p>

<p></p>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p><span style="font-size:20px;">编译下载后,运行却报错了,才想起了,这个包要打开RTC</span></p>

<p></p>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p><span style="font-size:20px;">为了省事,直接打开软件模拟RTC,因为硬件RTC的话,还需要在board_init里添加RTC的初始化部分代码后,才能完成调用,直接打开软件模拟就省了硬件初始化</span><br />
</p>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p><span style="font-size:20px;">成功获取服务器时间,但是这个还存在一个问题,每次上电后想要查询时间,都要手动连接WiFi,不能自动连接。想到了在体验ART-Pi的一些demo时,WiFi是可以上电自动连接的,那就来移植一下这个功能。</span></p>

<p>&nbsp;</p>

<p><span style="font-size:20px;">在main文件里,没有多余的内容,比较显眼的就是这两个函数了</span></p>

<pre>
<code>    /* init Wi-Fi auto connect feature */
    wlan_autoconnect_init();
    /* enable auto reconnect on WLAN device */
    rt_wlan_config_autoreconnect(RT_TRUE);</code></pre>

<p><span style="font-size:20px;">不论是注释还是函数名,很明显就是自动连接功能</span></p>

<p>&nbsp;</p>

<p><span style="font-size:20px;">复制到刚新建的模板工程里,因为只复制了这两个函数的调用,所以肯定会报一堆错,那就根据错误来一点点添加,首先找到这两个函数的实体所在,wifi_config.c、wlan_mgnt.c,复制到模板工程</span></p>

<p></p>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p><span style="font-size:20px;">一步步根据错误,来添加组件,这里是EasyFlash的缺失</span></p>

<p>&nbsp;</p>

<p><span style="font-size:20px;">一直修改到无报错和警告后,下载到板子上,可以看到Auto Connect功能已经使能了</span></p>

<p></p>

<p>&nbsp;</p>

<p><span style="font-size:20px;">断电,再上电,已经可以实现自动连接,然后获取时间的效果了<img height="48" src="https://bbs.eeworld.com.cn/static/editor/plugins/hkemoji/sticker/facebook/wanwan58.gif" width="54" /></span></p>

<p></p>

<p>&nbsp;</p>

w494143467 发表于 2021-7-19 14:42

<p>不错不错,最近也在玩RTThread</p>

freebsder 发表于 2021-7-19 17:49

<p>這些工具是不是太特定了,不夠通用。</p>
页: [1]
查看完整版本: 【ART-Pi测评】四:联网同步时间、实现自动连接WiFi