0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

【HarmonyOS HiSpark Wi-Fi IoT 套件试用连载】用代码和AT命令连接Wifi

开发板试用精选 来源:开发板试用 作者:电子发烧友论坛 2022-10-31 14:48 次阅读
本文来源电子发烧友社区,作者: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 IsWifiActive(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 具体代码
  1. int ConnectToHotspot(void)
  2. {
  3. WifiDeviceConfig config = {0};
  4. // 准备AP的配置参数
  5. strcpy_s(config.ssid, SSID_LEN, PARAM_HOTSPOT_SSID);
  6. strcpy_s(config.preSharedKey, PSK_LEN, PARAM_HOTSPOT_PSK);
  7. config.securityType = PARAM_HOTSPOT_TYPE;
  8. osDelay(10); /* 延时10ms */
  9. WifiErrorCode errCode;
  10. int netId = -1;
  11. errCode = RegisterWifiEvent(&g_defaultWifiEventListener);
  12. printf("RegisterWifiEvent: %drn", errCode);
  13. errCode = EnableWifi();
  14. printf("EnableWifi: %drn", errCode);
  15. errCode = AddDeviceConfig(&config, &netId);
  16. printf("AddDeviceConfig: %drn", errCode);
  17. g_connected = 0;
  18. errCode = ConnectTo(netId);
  19. printf("ConnectTo(%d): %drn", netId, errCode);
  20. while (!g_connected) { // wait until connect to AP
  21. osDelay(10); /* 持续10ms去连接AP */
  22. printf("continue connecting");
  23. }
  24. printf("g_connected: %drn", g_connected);
  25. g_iface = netifapi_netif_find("wlan0");
  26. if (g_iface) {
  27. char* hostname = "hispark";
  28. err_t ret = netifapi_set_hostname(g_iface, hostname, strlen(hostname));
  29. printf("netifapi_set_hostname: %drn", ret);
  30. ret = netifapi_dhcp_start(g_iface);
  31. printf("netifapi_dhcp_start: %drn", ret);
  32. osDelay(100); // wait DHCP server give me IP 100
  33. #if 1
  34. ret = netifapi_netif_common(g_iface, dhcp_clients_info_show, NULL);
  35. printf("netifapi_netif_common: %drn", ret);
  36. #else
  37. #endif
  38. }
  39. return netId;
  40. }
复制代码
1.3 实物演示
用串口助手连上去,发现到connect那一步就返回错误了,我在代码里加了尝试连接输出信息,依然还是连不上,需要进一步排查问题原因,如果有大佬能知道下就更好了。
pYYBAGK22yyATDkBAACNthPpBB4388.png
2. AT命令连接wifi
AT命令也可以连接wifi,跟api调用顺序是一样的。
WPA2_PSK。
AT+PING这一步后面的是我的PC机器IP地址,可以测试能否能ping通。
  1. AT+RST
  2. AT+STARTSTA
  3. AT+SCAN
  4. AT+SCANRESULT
  5. AT+CONN="360JDCWiFi-701",,2,"XXXXX"
  6. AT+DHCP=wlan0,1
  7. AT+IFCFG
  8. AT+PING=192.168.0.14 //我的PC机器IP地址
  9. AT+DISCONN
复制代码
3. 总结
这次实验有个遗憾就是用代码没能成功连接我的wifi,需要进一步排查问题原因,如果有大佬能指点迷津不吝赐教就好了。
用代码操作灵活性更好,因为可以用RegisterWifiEvent进行设置自定义事件。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • wi-fi
    +关注

    关注

    14

    文章

    2098

    浏览量

    124260
  • HarmonyOS
    +关注

    关注

    79

    文章

    1966

    浏览量

    29972
  • HiSpark
    +关注

    关注

    1

    文章

    156

    浏览量

    6897
收藏 人收藏

    评论

    相关推荐

    Wi-Fi 7与Wi-Fi 6E有什么区别

    也许很多人还在考虑是否要将使用的Wi-Fi设备升级到Wi-Fi 6或Wi-Fi 6E,而这些标准的继任者却已经开始“登堂入室”了。Wi-Fi 7是新一代
    的头像 发表于 11-07 11:38 358次阅读

    AT 0.60.0.0看不到我的Wi-Fi网络,为什么?

    我对 AT 0.60.0.0 有一点问题。当我通过 AT CWLAP 显示所有网络时,我看不到我的路由器 AP 网络,但我可以连接到它。当我在智能手机中打开 Wi-Fi 热点时,我可以看到我的热点
    发表于 07-18 08:31

    如何记住ESP8266中的Wi-Fi凭据?

    如果使用 AT 命令 AT CWSMARTSTART=1 并在执行电源重启后,将记住 Wi-Fi 凭据。我从旧公司项目中看到了那个命令。实际的AT用户手册中没有提到。 如果使用 AT
    发表于 07-15 07:07

    AIROC™ Wi-Fi和蓝牙组合连接掉线的原因?怎么解决?

    我最近购买了一台配备 AIROC™ Wi-Fi 和蓝牙组合模块的笔记本电脑。 大多数时候,Wi-Fi 连接都能正常使用图书馆创世纪网站ePUB 转换工具、在线书店和学术出版物,但我注意到蓝牙
    发表于 05-24 07:48

    验证物联网Wi-Fi HaLow例的MM6108-EKH08开发套件来啦

    验证物联网Wi-Fi HaLow例的MM6108-EKH08开发套件来啦 MM6108-EKH08开发套件专为验证物联网Wi-Fi HaL
    的头像 发表于 04-11 12:01 1629次阅读
    验证物联网<b class='flag-5'>Wi-Fi</b> HaLow<b class='flag-5'>用</b>例的MM6108-EKH08开发<b class='flag-5'>套件</b>来啦

    Wi-Fi 7与Wi-Fi 6的相关知识科普

    科普:Wi-Fi 7 vs. Wi-Fi 6,青出于蓝
    的头像 发表于 03-12 10:59 675次阅读
    <b class='flag-5'>Wi-Fi</b> 7与<b class='flag-5'>Wi-Fi</b> 6的相关知识科普

    Wi-Fi的诞生与发展

    短距离无线通信技术有Wi-Fi、ZigBee、蓝牙以及Z-Wave,今天我们先揭开Wi-Fi的神秘面纱。Chrent短距离无线通信技术——Wi-Fi过去的20多年,Wi-Fi靠着仅有的
    的头像 发表于 03-07 08:26 1106次阅读
    <b class='flag-5'>Wi-Fi</b>的诞生与发展

    WI-FI基础知识及飞易通SOC模块

    WiFi”或“Wifi”,但是这些写法并没有被Wi-Fi联盟认可。 一、通常说的WI-FI几: 第一代:以IEEE 802.11为准,工作频段为2.4GHz, 最高速率半双工2Mbi
    的头像 发表于 03-01 15:01 669次阅读
    <b class='flag-5'>WI-FI</b>基础知识及飞易通SOC模块

    Wi-Fi HaLow和传统Wi-Fi的区别

    Wi-Fi HaLow和传统Wi-Fi的区别  Wi-Fi是一种无线网络技术,可以连接到互联网或局域网,为用户提供无线上网的便利。随着科技的发展和互联网的普及,
    的头像 发表于 02-02 15:28 1072次阅读

    康普携手Wi-Fi联盟,RUCKUS Wi-Fi 7系列接入点成Wi-Fi

     康普高级副总裁兼网络、智能蜂窝和安全解决方案总裁Bart Giordano对此表示: “我们非常荣幸能与Wi-Fi Alliance形成长期合作伙伴关系,将我们的RUCKUS Wi-Fi 7 接入点平台作为Wi-Fi CERT
    的头像 发表于 01-23 14:10 683次阅读

    PSoC6 Wi-Fi示例无法调试FreeRTOS任务级代码怎么解决?

    你好, 我在 Ubuntu 18.04.6 中运行 MTB 3.1 GUI LTS 并为原型开发套件 (CY8CPROTO-062-4343W) 构建 PSoC6 示例。 在调试最新的 Wi-Fi
    发表于 01-22 07:50

    BT Wi-Fi模式是否可以通过ModustoolBox对套件进行编程来实现?

    想配置用于分析 CYW43439 的 CY8CPROTO-062S2-43439 原型开发套件。 浏览文档我无法弄清楚如何在不同的 Wi-Fi 和蓝牙模式(电源模式、连接模式等)下配置套件
    发表于 01-22 06:19

    Wi-Fi 6和Wi-Fi 5之间有哪些区别呢?

    可提供的速度为10 Gbps,而Wi-Fi 5最高只能提供3.5 Gbps的速度。这意味着Wi-Fi 6可以更快地下载和上传文件,同时更好地支持多个设备同时连接。 2.带宽管理: Wi-Fi
    的头像 发表于 12-09 16:09 2095次阅读

    Wi-Fi 7终端认证加速,高通Wi-Fi 7端到端解决方案持续引领先进连接体验变革

    强大,能更从容地应对用户和企业在不同场景中的连接需求,并助力打造更多的创新用例。基于Wi-Fi 7带来的更快连接速率、多连接以及自适应连接
    的头像 发表于 11-28 15:40 589次阅读
    <b class='flag-5'>Wi-Fi</b> 7终端认证加速,高通<b class='flag-5'>Wi-Fi</b> 7端到端解决方案持续引领先进<b class='flag-5'>连接</b>体验变革

    什么是2.4 GHz Wi-Fi? 如何提升2.4 GHz Wi-Fi的性能?

    的无线网络连接。 2.4 GHz Wi-Fi的优势包括覆盖范围广、适用于大多数智能设备、信号穿透能力强以及设备成本低廉等。由于2.4 GHz频段的通信波长较长,它能够更好地穿越障碍物,
    的头像 发表于 11-27 17:09 2259次阅读