Hi3861 WiFi操作,热点连接 精华

发布于 2020-10-12 15:22
浏览
6收藏

Hi3861 WiFi操作,热点连接

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

  Hi3861 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",

    ]

}

 

 

编译烧录,查看串口数据:

  Hi3861 WiFi操作,热点连接-开源基础软件社区

可以看到有打印扫描到的热点名称:

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 结构的定义如下:

  

Hi3861 WiFi操作,热点连接-开源基础软件社区

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

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

  Hi3861 WiFi操作,热点连接-开源基础软件社区

 

 

标签
4
收藏 6
回复
举报
回复
添加资源
添加资源将有机会获得更多曝光,你也可以直接关联已上传资源 去关联
    相关推荐