Hi3861 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

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

 

 

已标记关键词 清除标记
相关推荐
实付 9.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值