鴻蒙 WiFi操作,熱點連接
Hi3861 WiFi操作,熱點連接
之前我們使用Hi3861的時候,是使用AT指令連接到WiFi熱點的。例如:

但是很多時候,我們需要實現開機后自動連接到某個熱點,光靠AT指令不行。
Hi3861 為我們提供了WiFi操作的相關API,方便我們編寫代碼,實現熱點連接。
1.代碼實現
先直接上代碼和操作演示。
跟我們最早的hello world代碼一樣,在app下新增業務wifi_demo,其中hello_world.c為業務代碼,BUILD.gn為編譯腳本,具體規劃目錄結構如下:
- └── applications
- └── sample
- └── wifi-iot
- └── app
- │── wifi_demo
- │ │── wifi_demo.c
- │ └── BUILD.gn
- └── BUILD.gn
Wifi_demo.c 代碼如下:
見附件doc\05 WiFi操作\sta_demo\sta_demo.c
Wifi_demo目錄下的BUILD.gn文件內容如下:
- static_library("wifi_demo") {
- sources = [
- "wifi_demo.c"
- ]
- include_dirs = [
- "//utils/native/lite/include",
- "//kernel/liteos_m/components/cmsis/2.0",
- "//base/iot_hardware/interfaces/kits/wifiiot_lite",
- "//vendor/hisi/hi3861/hi3861/third_party/lwip_sack/include",
- "//foundation/communication/interfaces/kits/wifi_lite/wifiservice",
- ]
- }
app目錄下的BUILD.gn文件內容修改如下:
- import("//build/lite/config/component/lite_component.gni")
- lite_component("app") {
- features = [
- "wifi_demo:wifi_demo",
- ]
- }
編譯燒錄,查看串口數據:

可以看到有打印掃描到的熱點名稱:
SSID: 15919500
SSID: Netcore_FD55A7
同時最后打印:WiFi: Connected 成功連接上熱點。
2.wifi api接口說明
Hi3861 提供了非常多的wifi相關API,主要文件是 hi_wifi_api.h
我們這里只列舉最重要的幾個API
(1)開啟STA
int hi_wifi_sta_start(char *ifname, int *len);
(2)停止STA
int hi_wifi_sta_stop(void);
(1)掃描附件的熱點
int hi_wifi_sta_scan(void);
(4)連接熱點
int hi_wifi_sta_connect(hi_wifi_assoc_request *req);
其中hi_wifi_assoc_request *req 結構的定義如下:

這里需要注意的是,通常加密方式是:HI_WIFI_SECURITY_WPA2PSK
例如我家的熱點的連接方式的代碼實現如下:

https://harmonyos.51cto.com/#zz