BearPi-HM_Nano开发板WiFi编程开发——Wifi连接热点 原创
小熊派开源社区
发布于 2021-7-9 11:06
1.5w浏览
1收藏
BearPi-HM_Nano开发板WiFi编程开发——Wifi连接热点
本示例将演示如何在BearPi-HM_Nano开发板上编写一个Wifi连接热点业务程序
Wifi API分析
本案例主要使用了以下几个API完成Wifi联网
RegisterWifiEvent()
描述:
为指定的Wi-Fi事件注册回调函数。当WifiEvent中定义的Wi-Fi事件发生时,将调用已注册的回调函数
参数:
名字 | 描述 |
---|---|
event | 表示要注册回调的事件. |
EnableWifi()
描述:
启用STA模式
AddDeviceConfig()
描述:
添加用于配置连接到热点信息,此函数生成一个networkId
参数:
名字 | 描述 |
---|---|
config | 表示要连接的热点信息. |
result | 表示生成的networkId。每个networkId匹配一个热点配置 |
ConnectTo()
描述:
连接到指定networkId的热点
参数:
名字 | 描述 |
---|---|
networkId | 表示与目标热点匹配的网络id. |
netifapi_netif_find()
描述:
获取netif用于IP操作
dhcp_start()
描述:
启动DHCP, 获取IP
软件设计
主要代码分析
完成Wifi热点的连接需要以下几步
- 通过
RegisterWifiEvent
接口向系统注册扫描状态监听函数,用于接收扫描状态通知,如扫描动作是否完成等
-
OnWifiConnectionChangedHandler
用于绑定连接状态监听函数,该回调函数有两个参数state
和info
;-
state表示扫描状态,取值为0和1,1表示热点连接成功;
-
info表示Wi-Fi连接信息,包含以下参数;
名字 描述 ssid [WIFI_MAX_SSID_LEN] 连接的热点名称. bssid [WIFI_MAC_LEN] MAC地址. rssi 接收信号强度(RSSI). connState Wifi连接状态. disconnectedReason Wi-Fi断开的原因.
-
- 调用
EnableWifi
接口,使能 Wifi。 - 调用
AddDeviceConfig
接口,配置连接的热点信息。 - 调用
ConnectTo
接口,连接到指定networkId的热点。 - 调用
WaitConnectResult
接口等待,该函数中会有15s的时间去轮询连接成功标志位g_ConnectSuccess
,当g_ConnectSuccess
为 1 时退出等待。 - 调用
netifapi_netif_find
接口,获取 netif 用于 IP 操作 - 调用
dhcp_start
接口,启动 DHCP, 获取 IP
编译调试
修改对接热点的账号密码
修改wifi_sta_connect.c
第51行和52行的热点账号密码
修改 BUILD.gn 文件
修改 applications\BearPi\BearPi-HM_Nano\sample
路径下 BUILD.gn 文件,指定 wifi_sta_connect
参与编译。
运行结果<a name=“section18115713118”></a>
示例代码编译烧录代码后,按下开发板的RESET按键,通过串口助手查看日志,会打印连接到的Wifi热点信息。
©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
赞
2
收藏 1
回复
2
5
1
相关推荐
开发板工作是组播还是广播?还是点对点?
很详细的教程,支持!
兄弟,这是小熊派官方文档
点对点的
学习了