Hi3861 WiFi操作,景点连接 之前我们使用Hi3861的时候,是使用AT指令连接到WiFi景点的。例如: 但是很多时候,我们需要实现开机后自动连接到某个热点,光靠AT指令不行。 Hi3861为我们提供了WiFi操作的相关API,方便我们编写代码,实现景点连接。 1.代码实现 先直接上代码和操作演示。 跟我们最初的hello world代码相同,在app下添加业务wifi_demo,其中hello_world.c为业务代码,BUILD.gn为编译脚本,具体规划目录结构如下: 。 └──应用 └──样本 └──wifi-iot └──应用程式 │──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 例如我家的景点的连接方式的代码实现如下:
|