【FFH】OpenHarmony 设备开发(一)-WIFI连接 原创 精华
WIFI
wifi在我们的日常开发中必不可少,想要开发鸿蒙小车联网操作,想要使开发板不再局限于终端串口操作,更离不开wifi,本篇文章将详细介绍hi3861的wifi开发步骤及介绍.
本文主要介绍如何令hi3861开机自动连接wifi
代码介绍
第一步先在applications\sample\wifi-iot\
下路径创建WIFI_demo业务代码文件夹,在文件夹内创建业务代码和BUILD.gn编译脚本.
业务代码中的头文件引用
hi_wifi_api.h和netifapi.h
保存了一些wifi的API接口,ip_addr.h
则是存放了wifi需使用到的一些宏定义.
ohos_init.h和cmsis_os2.h
是应用初始化和线程创建必不可少的头文件,当我们使用到线程和SYS_RUN()
都要包括这两个头文件.
编译脚本代码
编译脚本将目标名为Xu_WIFI.c
打包成名为Xu_WIFI_demo
的静态库,随后在app路径下的BUILD.gn调用该库,调用格式为"业务代码文件夹名:静态库名"
.
include_dirs
为头文件的存放地址,我们在使用ubuntu开发时,遇到不知道存放路径的头文件或者宏定义时,可以使用指令grep 头文件名 -* nR
find . -name 头文件名
进行搜索
业务代码文件夹内的BUILD.gn代码:
app路径下的BUILD.gn代码:
业务代码
在业务代码中主要由主函数、连接函数、线程函数三大函数构成,在主函数中编写WIFI初始化、WIFI扫描等操作,连接函数中可以确认需要连接的WIFI的账号密钥以及加密方式。
主函数代码:
WIFI开启的流程:
- WIFI初始化
- 使能注册回调函数
- 获取网络接口进行IP的操作
- 扫描WIFI
- 获取WIFI扫描结果
- 连接WiFi
注册回调函数:
连接函数:
连接的步骤:
- 创建
hi_wifi_assoc_request
结构体变量 hi_wifi_assoc_request
结构体成员初始化:ssid,加密方式,密钥- 使用
hi_wifi_sta_connect
连接WiFi,其中的实参为hi_wifi_assoc_request
变量的地址
线程任务创建:
我们需要创建线程时,首先需要创建osThreadAttr_t
结构体变量,下一步便是初始化该结构体变量,在此步初始化中的关键是线程名称、任务栈大小和线程优先级,再下一步便使用osThreadNew()
将该结构体变量注册,最后SYS_RUN()
运行该线程.
效果图:
非hi3861可以使用这个吗?
轻量系统都可以移植使用。不同厂商的板子提供的api可能会有略微改变,移植时可以关注一下api接口
好的,感谢回复