色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

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

開發板試用精選 ? 來源:開發板試用 ? 作者:電子發燒友論壇 ? 2022-11-01 17:20 ? 次閱讀
本文來源電子發燒友社區,作者:cszzlsw, 帖子地址:https://bbs.elecfans.com/jishu_2030601_1_1.html

1,首先要獲得hisi3861芯片的wifi開發的相關接口和文檔:https://bbs.elecfans.com/jishu_2028821_1_1.html
這里就有相關的資料
2.liteos_m文檔庫里面也有好多資料,在doc文件夾里
3.首先需要連接wifi,可以參考文檔:Hi3861V100/Hi3861LV100 Wi-Fi軟件 開發指南.pdf
4.找到sta模式,里面講的很清楚,基于實際需求,把流程進行簡化:
STA功能開發的典型流程:
步驟1 調用hi_wifi_sta_start,啟動STA。
步驟2 調用hi_wifi_sta_scan,hi_wifi_sta_scan_results,獲取掃描結果。
步驟3 根據接入網絡需求,自定義篩選掃描結果,調用hi_wifi_sta_connect,進行連接。
步驟4 調用hi_wifi_sta_get_connect_info,查詢Wi-Fi連接狀態。
步驟5 連接成功后,調用netifapi_dhcp_start,啟動DHCP客戶端,獲取IP地址。
步驟6 調用hi_wifi_sta_disconnect ,離開當前連接的網絡。
步驟7 調用netifapi_dhcps_stop,停止DHCP客戶端。
步驟8 調用hi_wifi_sta_stop ,關閉STA。
----結束,注意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;
復制代碼
  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、網關、子網掩碼信息
  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. }
復制代碼
拿到ip地址之后我們的wifi才能段真正連接成功
6.之后就開啟tcp客戶端,相關代碼 在demo_app里有,在文檔:Hi3861V100/Hi3861LV100 lwIP 開發指南.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. }
復制代碼
7.在電腦上用一個tcp工具,開啟一個tcp的服務器,如圖:
142423jccz25p2goiozoi0.png
8.把開發板上電,程序下載進去,經過調試之后,正常就應該會連到電腦上的tcp服務器,然后并自動發送14個字節的數據,如圖:
142608bjg3g730vn86z0z0.png
9.在電腦tcp服務器回復對應數據,可以在開發板終端上看到對應的數據,到此,本階段實驗結束,為后面的實驗做鋪墊.
142814okmq6v6oqtztmk35.png
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • wi-fi
    +關注

    關注

    14

    文章

    2147

    瀏覽量

    124612
  • HarmonyOS
    +關注

    關注

    79

    文章

    1979

    瀏覽量

    30274
  • HiSpark
    +關注

    關注

    1

    文章

    156

    瀏覽量

    6938
收藏 人收藏

    評論

    相關推薦

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

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

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

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

    Wi-Fi 7與Wi-Fi 6E有什么區別

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

    AT 0.60.0.0看不到我的Wi-Fi網絡,為什么?

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

    為什么ESP8266沒有檢測到Wi-Fi的SSID?

    你好,我的ESP8266沒有檢測到我家Wi-Fi的SSID。我嘗試打開我的 iPhone 熱點,我可以正常查看和連接(我也成功連接到 MQTT)。相反,沒有辦法看到我家的Wi-Fi。
    發表于 07-09 06:44

    使用的是esp32官方的Wi-Fi例程,一直連接不上Wi-Fi怎么解決?

    使用的是esp32官方的Wi-Fi例程 一直連接不上Wi-Fi 日志: ESP-ROM:esp8684-api2-20220127 Build:Jan 27 2022 rst:0x1
    發表于 07-02 07:21

    esp32c3為什么無法連接WiFi?

    Wi-Fi的頻段是2.4g,密碼正確,使用開發可以正常連接,使用設計的PCB燒錄固件后無法連接,問題出在硬件設計上。但是掃描WiFi信號是
    發表于 07-01 06:42

    為什么啟用Wi-Fi后,選擇EXT0作為喚醒源功耗會增加1mA?

    1、當不啟用Wi-Fi,選擇EXT0為喚醒源,系統進入deep_sleep,功耗10uA左右; 2、當啟用Wi-Fi,選擇EXT0為喚醒源,系統關閉Wi-Fi后再進入deep_sleep,功耗在
    發表于 06-24 07:48

    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 HaLow用例而設計。該
    的頭像 發表于 04-11 12:01 ?1759次閱讀
    驗證物聯網<b class='flag-5'>Wi-Fi</b> HaLow用例的MM6108-EKH08開發<b class='flag-5'>套件</b>來啦

    WI-FI基礎知識及飛易通SOC模塊

    WiFi”或“Wifi”,但是這些寫法并沒有被Wi-Fi聯盟認可。 一、通常說的WI-FI幾: 第一代:以IEEE 802.11為準,工作頻段為2.4GHz, 最高速率半雙工2Mbi
    的頭像 發表于 03-01 15:01 ?729次閱讀
    <b class='flag-5'>WI-FI</b>基礎知識及飛易通SOC模塊

    Wi-Fi HaLow和傳統Wi-Fi的區別

    Wi-Fi HaLow和傳統Wi-Fi的區別? Wi-Fi是一種無線網絡技術,可以連接到互聯網或局域網,為用戶提供無線上網的便利。隨著科技的發展和互聯網的普及,
    的頭像 發表于 02-02 15:28 ?1318次閱讀

    全志R128基礎組件開發指南-WiFi Manager②

    _STATION);wifi_sta_connect(&cn_para);wifi_sta_disconnect();1.以station模式打開Wi-Fi Manager2.連接
    發表于 01-25 14:28

    全志R128基礎組件開發指南-WiFi Manager

    [ ] shttpd [ ] mqttWi-Fi Manager 簡介Wi-Fi Manager 用于wifi連接管理,通信以及wifi
    發表于 01-24 10:11

    BT Wi-Fi模式是否可以通過ModustoolBox對套件進行編程來實現

    想配置用于分析 CYW43439 的 CY8CPROTO-062S2-43439 原型開發套件。 瀏覽文檔我無法弄清楚如何在不同的 Wi-Fi 和藍牙模式(電源模式、連接模式等)下配置套件
    發表于 01-22 06:19
    主站蜘蛛池模板: 媚药调教被撑到合不拢h| 亚洲视频欧美视频| 99久久久无码国产精品AAA| 母乳女神春日もな| 不戴套挺进人妻怀孕| 午夜精品久久久久久影视riav| 国产曰批试看免费视频播放免费| 伊人色综合久久天天网| 欧美精品99久久久啪啪| 国产精品视频一区二区猎奇| 亚洲欧美日韩中字视频三区 | 国产 有码 无码 电影| 亚洲国产三级在线观看| 麻豆国产成人AV在线| 大胸美女脱内衣黄网站| 亚洲第一免费播放区| 免费一级特黄欧美大片久久网| 国产AV精品无码免费看| 伊人热人久久中文字幕| 日韩久久影院| 久久精品国产96精品亚洲| 成人欧美一区二区三区白人| 亚洲三级在线视频| 日日干夜夜爽| 看80后操| 国产午夜AV无码无片久久96| 99久久做夜夜爱天天做精品| 亚洲国产亚综合在线区尤物| 牛牛超碰 国产| 教室眠催白丝美女校花| 风流少妇BBWBBW69视频| 中文字幕高清在线观看| 午夜勾魂曲| 欧美日韩一二区旡码高清在线| 国内精品久久久久影院老司| 潮 喷女王cytherea| 一个人看的WWW高清电影| 熟妇无码乱子成人精品| 牛牛免费视频| 久久99综合国产精品亚洲首页| 国产高清美女一级毛片久久 |