99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

【HarmonyOS HiSpark Wi-Fi IoT 套件試用連載】wifi-iot板連接家庭wifi并實現(xiàn)tcp通訊

開發(fā)板試用精選 ? 來源:開發(fā)板試用 ? 作者:電子發(fā)燒友論壇 ? 2022-11-01 17:20 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本文來源電子發(fā)燒友社區(qū),作者:cszzlsw, 帖子地址:https://bbs.elecfans.com/jishu_2030601_1_1.html

1,首先要獲得hisi3861芯片的wifi開發(fā)的相關(guān)接口和文檔:https://bbs.elecfans.com/jishu_2028821_1_1.html
這里就有相關(guān)的資料
2.liteos_m文檔庫里面也有好多資料,在doc文件夾里
3.首先需要連接wifi,可以參考文檔:Hi3861V100/Hi3861LV100 Wi-Fi軟件 開發(fā)指南.pdf
4.找到sta模式,里面講的很清楚,基于實際需求,把流程進行簡化:
STA功能開發(fā)的典型流程:
步驟1 調(diào)用hi_wifi_sta_start,啟動STA。
步驟2 調(diào)用hi_wifi_sta_scan,hi_wifi_sta_scan_results,獲取掃描結(jié)果。
步驟3 根據(jù)接入網(wǎng)絡(luò)需求,自定義篩選掃描結(jié)果,調(diào)用hi_wifi_sta_connect,進行連接。
步驟4 調(diào)用hi_wifi_sta_get_connect_info,查詢Wi-Fi連接狀態(tài)。
步驟5 連接成功后,調(diào)用netifapi_dhcp_start,啟動DHCP客戶端,獲取IP地址。
步驟6 調(diào)用hi_wifi_sta_disconnect ,離開當(dāng)前連接的網(wǎng)絡(luò)。
步驟7 調(diào)用netifapi_dhcps_stop,停止DHCP客戶端。
步驟8 調(diào)用hi_wifi_sta_stop ,關(guān)閉STA。
----結(jié)束,注意5,6,7步驟不是必須的
5.在連接成功的毀掉開啟dhcp獲取ip地址之后并不會立馬得到ip地址,所以我們開啟一個線程不停得在等待拿到ip地址:
  1. case HI_WIFI_EVT_CONNECTED:
  2. printf("WiFi: Connectedn");
  3. printf("connected info: %s %sn", hisi_event->info.wifi_connected.ssid, hisi_event->info.wifi_connected.ifname);
  4. netifapi_dhcp_start(g_lwip_netif);
  5. {
  6. osThreadAttr_t attr;
  7. attr.name = "netTask";
  8. attr.attr_bits = 0U;
  9. attr.cb_mem = NULL;
  10. attr.cb_size = 0U;
  11. attr.stack_mem = NULL;
  12. attr.stack_size = 2048;
  13. attr.priority = 24;
  14. if (osThreadNew((osThreadFunc_t)netTask, NULL, &attr) == NULL)
  15. {
  16. printf("[LedExample] Falied to create LedTask!n");
  17. }
  18. }
  19. break;
復(fù)制代碼
  1. static void *netTask(const char *arg)
  2. {
  3. printf("netTask:%pn", arg);
  4. u8_t ip_arr[4] = {0};
  5. u8_t ip_zero[4] = {0};
  6. // 下面這種方式也可以打印 IP、網(wǎng)關(guān)、子網(wǎng)掩碼信息
  7. ip4_addr_t ip = {0};
  8. ip4_addr_t netmask = {0};
  9. ip4_addr_t gw = {0};
  10. int ret = 0;
  11. do
  12. {
  13. sleep(1);
  14. ret = netifapi_netif_get_addr(g_lwip_netif, &ip, &netmask, &gw);
  15. printf("netifapi_netif_get_addr: %drn", ret);
  16. if (ret == ERR_OK)
  17. {
  18. printf("ip = %srn", ip4addr_ntoa(&ip));
  19. printf("netmask = %srn", ip4addr_ntoa(&netmask));
  20. printf("gw = %srn", ip4addr_ntoa(&gw));
  21. memcpy(ip_arr, &ip.addr, sizeof(ip_arr));
  22. }
  23. } while (memcmp(ip_arr, ip_zero, sizeof(ip_arr)) == 0 || (ip_arr[0] != 192));
  24. printf("got ip :%d.%d.%d.%dn", ip_arr[0], ip_arr[1], ip_arr[2], ip_arr[3]);
  25. sample_tcp_client();
  26. return NULL;
  27. }
復(fù)制代碼
拿到ip地址之后我們的wifi才能段真正連接成功
6.之后就開啟tcp客戶端,相關(guān)代碼 在demo_app里有,在文檔:Hi3861V100/Hi3861LV100 lwIP 開發(fā)指南.pdf 里面也有,直接拷貝使用:
  1. int sample_tcp_client(void)
  2. {
  3. s32_t sfd = -1;
  4. struct sockaddr_in srv_addr = {0};
  5. // struct sockaddr_in cln_addr = {0};
  6. // socklen_t cln_addr_len = sizeof(cln_addr);
  7. s32_t ret = 0, i = 0;
  8. /* tcp client connection */
  9. printf("going to call socketn");
  10. sfd = socket(AF_INET, SOCK_STREAM, 0);
  11. if (sfd == -1)
  12. {
  13. printf("socket failed, return is %dn", sfd);
  14. goto FAILURE;
  15. }
  16. printf("socket succeeded, sfd %dn", sfd);
  17. srv_addr.sin_family = AF_INET;
  18. srv_addr.sin_addr.s_addr = inet_addr(PEER_IP);
  19. srv_addr.sin_port = htons(PEER_PORT);
  20. printf("going to call connectn");
  21. ret = connect(sfd, (struct sockaddr *)&srv_addr, sizeof(srv_addr));
  22. if (ret != 0)
  23. {
  24. printf("connect failed, return is %dn", ret);
  25. goto FAILURE;
  26. }
  27. printf("connec succeeded, return is %dn", ret);
  28. /* tcp client connection */
  29. /* send */
  30. memset(g_buf, 0, BUF_SIZE);
  31. strcpy((char *)g_buf, MSG);
  32. printf("calling send...n");
  33. ret = send(sfd, g_buf, sizeof(MSG), 0);
  34. if (ret <= 0)
  35. {
  36. printf("send failed, return is %d,i is %dn", ret, i);
  37. goto FAILURE;
  38. }
  39. printf("send finished ret is %dn", ret);
  40. /* send */
  41. /* recv */
  42. memset(g_buf, 0, BUF_SIZE);
  43. printf("going to call recvn");
  44. ret = recv(sfd, g_buf, sizeof(g_buf), 0);
  45. if (ret <= 0)
  46. {
  47. printf("recv failed, return is %dn", ret);
  48. goto FAILURE;
  49. }
  50. printf("recv succeeded, return is %dn", ret);
  51. printf("received msg is : %sn", g_buf);
  52. /* recv */
  53. lwip_close(sfd);
  54. return 0;
  55. FAILURE:
  56. lwip_close(sfd);
  57. // printf("errno is %dn", errno);
  58. return -1;
  59. }
復(fù)制代碼
7.在電腦上用一個tcp工具,開啟一個tcp的服務(wù)器,如圖:
142423jccz25p2goiozoi0.png
8.把開發(fā)板上電,程序下載進去,經(jīng)過調(diào)試之后,正常就應(yīng)該會連到電腦上的tcp服務(wù)器,然后并自動發(fā)送14個字節(jié)的數(shù)據(jù),如圖:
142608bjg3g730vn86z0z0.png
9.在電腦tcp服務(wù)器回復(fù)對應(yīng)數(shù)據(jù),可以在開發(fā)板終端上看到對應(yīng)的數(shù)據(jù),到此,本階段實驗結(jié)束,為后面的實驗做鋪墊.
142814okmq6v6oqtztmk35.png
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • wi-fi
    +關(guān)注

    關(guān)注

    14

    文章

    2259

    瀏覽量

    126961
  • HarmonyOS
    +關(guān)注

    關(guān)注

    80

    文章

    2126

    瀏覽量

    32972
  • HiSpark
    +關(guān)注

    關(guān)注

    1

    文章

    156

    瀏覽量

    7408
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    Wi-Fi 8要來了!未來Wi-Fi技術(shù)演進方向揭秘

    產(chǎn)品銷售中,雖然Wi-Fi 7產(chǎn)品的銷量份額快速從年初的個位數(shù)百分比增長至14%,但Wi-Fi 6產(chǎn)品的銷量份額依然穩(wěn)定在60%左右。如果從存量設(shè)備來看,那么Wi-Fi 7路由器的占比將遠遠小于這個數(shù)。 ? 智能手機等終端設(shè)備已
    的頭像 發(fā)表于 11-24 03:14 ?3820次閱讀
    <b class='flag-5'>Wi-Fi</b> 8要來了!未來<b class='flag-5'>Wi-Fi</b>技術(shù)演進方向揭秘

    如何選擇合適的芯科科技Wi-Fi開發(fā)

    您正在尋找適用于超低功耗物聯(lián)網(wǎng)應(yīng)用項目的Wi-Fi 開發(fā)嗎?本文將介紹Silicon Labs(芯科科技)推出的所有SiWx917 Wi-Fi 6和低功耗藍牙5.4解決方案的Wi-Fi
    的頭像 發(fā)表于 07-09 09:15 ?635次閱讀

    BLE代碼示例中Wi-Fi連接重試失敗的原因?

    您好,我正在使用 BLE 代碼示例進行 Wi-Fi 接入。我從 modus 工具箱下載了代碼示例。 代碼示例包含所有最新的庫。 當(dāng)在提供 SSID 和密碼后從手機發(fā)送連接命令時,微控制器會嘗試
    發(fā)表于 07-08 07:42

    連接到 WPA3_WPA2_PSK 或 WPA3_SAE Wi-Fi 網(wǎng)絡(luò)時系統(tǒng)掛起,為什么?

    Wi-Fi 網(wǎng)絡(luò)時,我的系統(tǒng)掛起了。 它與所有其他安全類型連接良好。 我正在使用最新的 WHD 庫。 誰能解釋為什么會發(fā)生此問題以及我該如何解決它? 您可以參考 WiFi Onboarding 示例
    發(fā)表于 06-05 07:23

    國產(chǎn)Wi-Fi 6新一代通信技術(shù)的推廣,WIFI模塊行業(yè)將迎來更多發(fā)展機遇.

    聯(lián)網(wǎng)設(shè)備對高速、低延遲連接的需求。隨著技術(shù)的不斷進步,WIFI 6模塊的功能和性能也在不斷提升,如低功耗、高集成度、高安全性等特性的研發(fā)和應(yīng)用,進一步加快了WIFI模塊更新迭代。 希微科技 是國內(nèi)高性能
    的頭像 發(fā)表于 05-08 17:07 ?517次閱讀
    國產(chǎn)<b class='flag-5'>Wi-Fi</b> 6新一代通信技術(shù)的推廣,<b class='flag-5'>WIFI</b>模塊行業(yè)將迎來更多發(fā)展機遇.

    基于 Wi-Fi 的定位服務(wù)

    以下捕獲使用 location_wifi_get 函數(shù)請求 Wi-Fi 定位服務(wù)。該事件的總功耗為 125.85mC,日志顯示精確度為 30.0m。 Got location: method
    發(fā)表于 04-17 15:16

    Wi-Fi 定位服務(wù)流程

    變化。 Cellular: Location 示例中最初的 location_wifi_get() 函數(shù)可用于請求 Wi-Fi 定位服務(wù)。啟用附加日志配置有助于了解請求過程。 Add
    發(fā)表于 04-17 15:09

    nRF Cloud Wi-Fi 定位服務(wù)

    實現(xiàn)高性能和超低功耗。對于 Wi-Fi 定位請求,nRF Cloud 可借助 Wi-Fi 數(shù)據(jù)庫計算設(shè)備位置,該數(shù)據(jù)庫包含不同 Wi-Fi 網(wǎng)絡(luò)的坐標(biāo)。然后,設(shè)備位置將從 nRF C
    發(fā)表于 04-17 15:07

    Wi-Fi 定位服務(wù)

    Wi-Fi 是一種著名的無線網(wǎng)絡(luò)技術(shù),用于設(shè)備的局域網(wǎng)和互聯(lián)網(wǎng)接入。Wi-Fi 通過 Wi-Fi 網(wǎng)絡(luò)為家庭、辦公室和學(xué)校等環(huán)境提供便捷的無線互聯(lián)網(wǎng)接入服務(wù)。
    發(fā)表于 04-17 15:01

    如何為驅(qū)動添加Wi-Fi功能

    為驅(qū)動添加Wi-Fi功能,可以通過硬件和軟件兩種途徑實現(xiàn)
    的頭像 發(fā)表于 04-16 14:22 ?415次閱讀

    華為海思正式進入Wi-Fi FEM賽道?

    大家都知道了,2018年11 月離開銳迪科(RDA),前往福建晉江創(chuàng)立三伍微,專注于Wi-Fi射頻前端芯片,從路由器Wi-Fi FEM,到手機Wi-Fi FEM,再到IoT FEM全覆
    發(fā)表于 12-11 17:42

    Wi-Fi 4到Wi-Fi 7:網(wǎng)速飆升40倍的無線革命

    1 Wi-Fi技術(shù)的快速發(fā)展 每一代新的Wi-Fi協(xié)議發(fā)布,都會帶來更高的無線速率。 ? 從Wi-Fi 4到Wi-Fi 7:無線網(wǎng)絡(luò)技術(shù)顯著提升,
    的頭像 發(fā)表于 12-09 10:10 ?1046次閱讀
    從<b class='flag-5'>Wi-Fi</b> 4到<b class='flag-5'>Wi-Fi</b> 7:網(wǎng)速飆升40倍的無線革命

    Wi-Fi 7與Wi-Fi 6E有什么區(qū)別

    也許很多人還在考慮是否要將使用的Wi-Fi設(shè)備升級到Wi-Fi 6或Wi-Fi 6E,而這些標(biāo)準(zhǔn)的繼任者卻已經(jīng)開始“登堂入室”了。Wi-Fi 7是新一代
    的頭像 發(fā)表于 11-07 11:38 ?3433次閱讀

    移遠通信Wi-Fi HaLow 模組FGH100M榮獲IoT Evolution World 2024年度IoT產(chǎn)品獎

    Wi-FiHaLow模組FGH100M憑借其在連接性、創(chuàng)新性等方面的優(yōu)異表現(xiàn),獲此殊榮。與其他Wi-Fi技術(shù)相比,Wi-FiHaLow不僅引入了一種低功耗
    的頭像 發(fā)表于 07-31 08:29 ?621次閱讀
    移遠通信<b class='flag-5'>Wi-Fi</b> HaLow 模組FGH100M榮獲<b class='flag-5'>IoT</b> Evolution World 2024年度<b class='flag-5'>IoT</b>產(chǎn)品獎

    AT 0.60.0.0看不到我的Wi-Fi網(wǎng)絡(luò),為什么?

    Wi-Fi 網(wǎng)絡(luò)連接到它。當(dāng)然,我的路由器AP SSID已啟用,我可以在其他設(shè)備上看到此網(wǎng)絡(luò)。這不是什么大問題,但我認為它仍然是一個錯誤。 在GMR 在GMR AT版本:0.60.0.0(Jan
    發(fā)表于 07-18 08:31