最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

鸿蒙系统怎么连wifi,鸿蒙入门:Hi3861 WiFi操作,热点连接

业界 admin 5浏览 0评论

本文为连志安老师鸿蒙系统系列入门教程之《Hi3861 WiFi 操作,热点连接》。

图片来自包图网之前我们使用 Hi3861 的时候,是使用 AT 指令连接到 WiFi 热点的。例如:

但是很多时候,我们需要实现开机后自动连接到某个热点,光靠 AT 指令不行。

Hi3861 为我们提供了 WiFi 操作的相关 API,方便我们编写代码,实现热点连接。

代码实现

先直接上代码和操作演示。

跟我们最早的 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 成功连接上热点。

WiFi API 接口说明

Hi3861 提供了非常多的 WiFi 相关 API,主要文件是 hi_wifi_api.h,我们这里只列举最重要的几个 API:

01

开启 STA

int hi_wifi_sta_start(char *ifname, int *len);

02

停止 STA

int hi_wifi_sta_stop(void);

03

扫描附件的热点

int hi_wifi_sta_scan(void);

04

连接热点

int hi_wifi_sta_connect(hi_wifi_assoc_request *req);

其中 hi_wifi_assoc_request *req 结构的定义如下:

这里需要注意的是,通常加密方式是:HI_WIFI_SECURITY_WPA2PSK。

例如我家的热点的连接方式的代码实现如下:

本文为连志安老师鸿蒙系统系列入门教程之《Hi3861 WiFi 操作,热点连接》。

图片来自包图网之前我们使用 Hi3861 的时候,是使用 AT 指令连接到 WiFi 热点的。例如:

但是很多时候,我们需要实现开机后自动连接到某个热点,光靠 AT 指令不行。

Hi3861 为我们提供了 WiFi 操作的相关 API,方便我们编写代码,实现热点连接。

代码实现

先直接上代码和操作演示。

跟我们最早的 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 成功连接上热点。

WiFi API 接口说明

Hi3861 提供了非常多的 WiFi 相关 API,主要文件是 hi_wifi_api.h,我们这里只列举最重要的几个 API:

01

开启 STA

int hi_wifi_sta_start(char *ifname, int *len);

02

停止 STA

int hi_wifi_sta_stop(void);

03

扫描附件的热点

int hi_wifi_sta_scan(void);

04

连接热点

int hi_wifi_sta_connect(hi_wifi_assoc_request *req);

其中 hi_wifi_assoc_request *req 结构的定义如下:

这里需要注意的是,通常加密方式是:HI_WIFI_SECURITY_WPA2PSK。

例如我家的热点的连接方式的代码实现如下:

发布评论

评论列表 (0)

  1. 暂无评论