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