開發(fā)環(huán)境:
RT-Thread Studio
開發(fā)板:
Art-Pi
OS版本:
4.0.3
筆記內(nèi)容
參考官方例程的配置,軟件包依賴于fal和easyflash
硬件勾選AP6212
保存配置退出,編譯通過,下載即可,打開終端查看調(diào)試信息
通過終端調(diào)試WIFI
網(wǎng)卡設備已經(jīng)注冊成功。這時候就可以通過wifi提供的調(diào)試工具來試試網(wǎng)絡是否已經(jīng)聯(lián)通。首先是查詢當前可用熱點信息wifi scan
然后是連接熱點wifi join 熱點名稱 密碼
然后可以試試ping一下百度
還可以看看當前wifi狀態(tài)wifi status
遇到不清楚的可以wifi help查詢一下指令
到此,意味著AP6212已經(jīng)成功驅(qū)動起來了。但是這樣只是第一步,因為板卡重啟之后是不會自動重新連接的。
要實現(xiàn)保存配置信息,并且開機自動連接,需要參考官方例程art_pi_wifi
學習art_pi_wifi例程
通過rtt-studio新建一個art_pi_wifi的項目,然后編譯下載到板卡上,先運行一下效果。
燒錄固件之后第一次啟動,wifi沒有連接,因為此時并沒有保存熱點配置信息,不過“Auto Connect status”的狀態(tài)是“Enable”。
通過wifi join指令連接熱點,ping通baidu之后,使用reboot指令重啟板卡。
板卡第二次啟動之后,在wifi注冊完畢之后,自動連接上了之前配置好的熱點,不需要在用wifi join指令,直接ping就可以通baidu。
下面就來看看這個過程是如何實現(xiàn)的。
對比一下自建項目和官方項目的文件差異,主要的差別在于port目錄下多了一個wifi_config.c的文件。雖然官方例程中還有一個ef_fal_port.c的文件,不過我是放在EasyFlash的包中了。下次還是要學習官方的做法,放在port目錄下,這樣可以有效防止更新工具包的時候把ef_fal_port.c文件給搞丟了。
學習wifi_config.c文件
在文件的最底下,有一個wlan_autoconnect_init的函數(shù),先看看這個函數(shù)會在哪里被調(diào)用。查找一下原來是在main.c中被調(diào)用。也就是說在主線程上先配置了wifi自動重連的一些信息,然后又使能了自動重連。以此來實現(xiàn)重啟之后wifi自動重新的功能。
下面來看看這個wlan_autoconnect_init函數(shù)到底做了什么配置
一開始是兩個初始化函數(shù)
接下來的rt_wlan_cfg_set_ops函數(shù)位于wlan_cfg.c文件中,主要是調(diào)用了rt_wlan_cfg_init函數(shù)。這里應該是申請一段內(nèi)存來保存配置信息吧。
那到底這些配置信息是保存在什么地方呢?注意rt_wlan_cfg_set_ops函數(shù)傳入的參數(shù)是指針,指向哪里呢?
這三個是什么呢?
這三個函數(shù)的具體實現(xiàn)用到了兩個函數(shù)ef_get_env_blob和ef_set_env_blob,這兩個函數(shù)位于ef_env.c文件中
就清楚了,這里就是調(diào)用了easyflash的api來保存和獲取環(huán)境變量。
移植到自己的項目中實驗
既然清楚了整個處理流程,那就是將文件復制到自己的工程中,驗證一下
編譯通過,下載到板卡上驗證,可以,自動重連了。
-
WLAN
+關(guān)注
關(guān)注
2文章
657瀏覽量
73098 -
wifi模塊
+關(guān)注
關(guān)注
60文章
380瀏覽量
73495 -
RT-Thread
+關(guān)注
關(guān)注
31文章
1289瀏覽量
40124 -
ART-Pi
+關(guān)注
關(guān)注
0文章
23瀏覽量
1302
發(fā)布評論請先 登錄
相關(guān)推薦
評論