登录
【HarmonyOS HiSpark Wi-Fi IoT 套件试用连载】用代码和AT命令连接Wifi
开发板试用精选
2022-10-31
920
分享海报
开发板试用精选
807 文章
87.3w阅读
143粉丝
+关注
描述
本文来源电子发烧友社区,作者:jf_53933321, 帖子地址:
https://bbs.elecfans.com/jishu_2289291_1_1.html
1. 代码连接wifi
1.1 相关API
(1)WifiErrorCode EnableWifi(void)打开Wi-Fi设备的STA 模式,可以理解为开启设备的Wi-Fi功能,使其可以扫描,并且连接到某个接入点。
(2)WifiErrorCode DisableWifi(void)该函数禁用设备的STA模式。在调用该函数之后,设备不能进行扫描、联网等操作。
(3)int IsWifiAc
ti
ve(void)该函数用于判断Wi-Fi设备的STA模式是否已经打开。
(4)WifiErrorCode AddDeviceConfig(constWifiDeviceConfig*config,int*result)该函数用于增加设备的 Wi-Fi 配置。
(5)WifiErrorCode GetDeviceConfigs(WifiDeviceConfig*result,unsignedint*size)该函数用于获取所有有效的Wi-Fi 配置,结果保存在result 中。size 指定可获取的最大的配置数,为result 的长度。
(6)WifiErrorCode RemoveDevice(int networkId)该函数用于根据net id 删除一个Wi-Fi 配置。
(7)WifiErrorCode Disconnect(void)该函数用于断开Wi-Fi连接。
(8)WifiErrorCode GetLinkedInfo(WifiLinkedInfo*result)该函数用于获取 Wi-Fi 设备客户端当前连接的接入点的信息。
(9)WifiErrorCode RegisterWifiEvent(WifiEvent*event)该函数用于注册Wi-Fi事件的回调函数,可用于开发者在自己开发的应用中注册相应的回调函数,监听Wi-Fi状态的变化,根据不同的状态,做相应的处理。
(10)WifiErrorCode UnRegisterWifiEvent(const WifiEvent*event)该函数用于注销Wi-Fi事件。
(11)WifiErrorCode GetDeviceMacAddress(unsigned char*result)该函数用于获取设置的 MAC 地址。
1.2 具体代码
int ConnectToHotspot(void)
{
WifiDeviceConfig config = {0};
// 准备AP的配置参数
strcpy_s(config.ssid, SSID_LEN, PARAM_HOTSPOT_SSID);
strcpy_s(config.preSharedKey, PSK_LEN, PARAM_HOTSPOT_PSK);
config.securityType = PARAM_HOTSPOT_TYPE;
osDelay(10); /* 延时10ms */
WifiErrorCode errCode;
int netId = -1;
errCode = RegisterWifiEvent(&g_defaultWifiEventListener);
printf
("RegisterWifiEvent: %drn", errCode);
errCode = EnableWifi();
printf("EnableWifi: %drn", errCode);
errCode = AddDeviceConfig(&config, &netId);
printf("AddDeviceConfig: %drn", errCode);
g_connected = 0;
errCode = ConnectTo(netId);
printf("ConnectTo(%d): %drn", netId, errCode);
while (!g_connected) { // wait until connect to AP
osDelay(10); /* 持续10ms去连接AP */
printf("continue connecting");
}
printf("g_connected: %drn", g_connected);
g_iface = netifapi_netif_find("wlan0");
if (g_iface) {
char* hostname = "hispark";
err_t ret = netifapi_set_hostname(g_iface, hostname, strlen(hostname));
printf("netifapi_set_hostname: %drn", ret);
ret = netifapi_dhcp_start(g_iface);
printf("netifapi_dhcp_start: %drn", ret);
osDelay(100); // wait DHCP server give me IP 100
#if 1
ret = netifapi_netif_common(g_iface, dhcp_clients_info_show, NULL);
printf("netifapi_netif_common: %drn", ret);
#else
#endif
}
return netId;
}
复制代码
1.3 实物演示
用串口助手连上去,发现到connect那一步就返回错误了,我在代码里加了尝试连接输出信息,依然还是连不上,需要进一步排查问题原因,如果有大佬能知道下就更好了。
2. AT
命令
连接wifi
AT命令也可以连接wifi,跟api调用顺序是一样的。
WPA2_PSK。
AT+PING这一步后面的是我的PC机器IP地址,可以
测试
能否能ping通。
AT+RST
AT+STARTSTA
AT+SCAN
AT+SCANRESULT
AT+CONN="360JDCWiFi-701",,2,"XXXXX"
AT+DHCP=wlan0,1
AT+IFCFG
AT+PING=192.168.0.14 //我的PC机器IP地址
AT+DISCONN
复制代码
3. 总结
这次实验有个遗憾就是用代码没能成功连接我的wifi,需要进一步排查问题原因,如果有大佬能指
点迷津不吝赐教就好了。
用代码操作灵活性更好,因为可以用
RegisterWifiEvent进行设置自定义事件。
打开APP阅读更多精彩内容
点击阅读全文
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
相关推荐
wi-fi
HarmonyOS
HiSpark
【
HarmonyOS
HiSpark
Wi-Fi
IoT
HarmonyOS
智能家居
套件
试用
】智能门禁系统
2020-09-25
0
【
HarmonyOS
HiSpark
Wi-Fi
IoT
套件
试用
连
连载
】开箱报告
2020-09-29
0
【
HarmonyOS
HiSpark
Wi-Fi
IoT
套件
】群英荟萃,Hi3861开发板开箱大盘点
2020-10-27
0
【
HarmonyOS
HiSpark
Wi-Fi
IoT
HarmonyOS
智能家居
套件
试用
】基于
HiSpark
Wi-Fi
IoT
HarmonyOS
智能家居
套件
的温控面板
2020-10-29
0
【
HarmonyOS
HiSpark
Wi-Fi
IoT
套件
试用
连载
】2-从DEMO中学习
代码
与控制
2020-11-07
0
[
HarmonyOS
HiSpark
Wi-Fi
IoT
HarmonyOS
智能家居
套件
]
试用
报告
2020-11-16
0
【
HarmonyOS
HiSpark
Wi-Fi
IoT
套件
试用
连载
】开发
套件
初探
2020-11-22
0
【
HarmonyOS
HiSpark
Wi-Fi
IoT
套件
试用
连载
】CHAPTER 1 ---- 开箱报告
2020-12-31
0
【
HarmonyOS
HiSpark
Wi-Fi
IoT
套件
试用
连载
】
用
代码
和AT
命令
连接
Wifi
2022-06-25
0
【
HarmonyOS
HiSpark
Wi-Fi
IoT
套件
试用
连载
】播放音乐
2022-10-31
991
【
HarmonyOS
HiSpark
Wi-Fi
IoT
套件
试用
连载
】
wifi
连上不网
2022-10-31
939
【
HarmonyOS
HiSpark
Wi-Fi
IoT
套件
试用
连载
】-LiteOS万物互联
2022-11-09
1093
全部
0
条评论
快来发表一下你的评论吧 !
发送
登录/注册
×
20
完善资料,
赚取积分