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

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

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

利用小凌派開發(fā)板自帶的wifi功能來進(jìn)行tcp通信的教程

海闊天空的專欄 ? 來源:凌智電子 ? 作者:凌智電子 ? 2022-05-13 15:05 ? 次閱讀

基于小凌派RK2206開發(fā)板wifi-tcp通信實(shí)驗(yàn)

在開發(fā)過程中想要與開發(fā)板進(jìn)行通信一般使用串口通信,當(dāng)開發(fā)板使用串口與pc通信還需要專門的串口轉(zhuǎn)換工具才行。而小凌派開發(fā)板自帶wifi功能。因此與pc通信時可以使用wifi功能進(jìn)行tcp通信這樣就不需要專門的轉(zhuǎn)換工具非常方便。

一、在使用小凌派開發(fā)板wifi進(jìn)行tcp通信的步驟

1、要確定pc機(jī)所連接路由的wifi名稱和密碼。通過修改代碼使小凌派連接到與pc同一網(wǎng)絡(luò)。

修改文件device/rockchip/rk2206/sdk_liteos/board/src/config_network.c 中的SSID 即wifi名稱,和PASSWORD 即wifi密碼。

#define SSID “凌智電子

#define PASSWORD “********”

2、確認(rèn)小凌派wifi功能是否開啟

查看device/rockchip/rk2206/sdk_liteos/board/main.c 文件

是否調(diào)用ExternalTaskConfigNetwork();

3、確認(rèn)小凌派開發(fā)板與開發(fā)板在同一網(wǎng)段。

在修改以上配置后先編譯燒錄程序然后查看log確認(rèn)小凌派開發(fā)板獲取到的ip地址。

poYBAGJ-AC2AVvskAAB-CdqsLfA976.png

在確認(rèn)pc的ip地址,在控制臺輸入ipconfig

pYYBAGJ-ADSAACqCAAAQn4220GI097.png

可以看到兩個ip地址都是點(diǎn)2網(wǎng)段,說明已經(jīng)在同一局域網(wǎng)。

4、 修改wifi_tcp 例程中服務(wù)地址及端口

#define OC_SERVER_IP “192.168.2.49”

#define SERVER_PORT 6666

這個ip地址即PC的ip地址,修改后重新編譯燒錄程序。

5、 pc上打開兩個網(wǎng)絡(luò)調(diào)試工具,一個客戶端和一個服務(wù)端,并設(shè)置ip地址和端口號

服務(wù)端 ip地址:0.0.0.0

端口號:6666

客戶端ip地址:192.168.2.50 (之前查看到小凌派的ip地址)

端口號:6666

pYYBAGJ-AGqAM0D6AACIo8Hz0Z0834.png

6 、查看log等待小凌派的tcp客戶端和服務(wù)端任務(wù)啟動

poYBAGJ-AHCAHxi2AAJc1wBLRCk146.png

可以看到客戶端連接地址192.168.2.49:6666 即pc的ip地址

服務(wù)端監(jiān)聽端口為6666

這表示小凌派tcp客戶端和服務(wù)端任務(wù)都已經(jīng)啟動。

7、 在pc網(wǎng)絡(luò)調(diào)試助手點(diǎn)擊啟動客戶端和服務(wù)端

pYYBAGJ-AN6AbcuaAACXnY4vQlU001.png

可以觀察到網(wǎng)絡(luò)調(diào)試助手服務(wù)端有設(shè)備連接成功并且接收到了調(diào)試數(shù)據(jù)。

網(wǎng)絡(luò)調(diào)試助手的客戶端也顯示連接成功。

8、 使用網(wǎng)絡(luò)調(diào)試助手發(fā)送數(shù)據(jù)

pYYBAGJ-AO2AXpUgAADycjCYJ5A369.png

可以查看log發(fā)現(xiàn)小凌派開發(fā)板已經(jīng)可以正常收發(fā)數(shù)據(jù)了。

這樣就可以通過使用wifi與pc進(jìn)行通信。

二、接下來分析一下代碼的工作流程。

首先包含必要的頭文件

poYBAGJ-AS2AAsi4AAA_KnkXthA711.png

這些定義主要是 ip地址和端口號以及緩存大小

poYBAGJ-ATSAUoOHAAAcLJiJPbY713.png

這部分是獲取wifi連接信息,通過查詢wifi連接信息確認(rèn)wifi是否連接成功。只有wifi連接成功了才能進(jìn)行tcp通信

poYBAGJ-AZ6AedMsAAESgPAL4eY547.png

這部分是tcp服務(wù)端接收消息處理

先進(jìn)入accept()會處于阻塞狀態(tài),即沒有客戶端連接時一直阻塞。

單客戶端連接后又進(jìn)入接收數(shù)據(jù)狀態(tài),此狀態(tài)也是阻塞狀態(tài)。

沒有數(shù)據(jù)時一直阻塞,不過需要注意的是在此狀態(tài)下當(dāng)客戶端斷開連接時recv會返回-1

接收到pc客戶端的消息后通過send()發(fā)響應(yīng)消息給PC客戶端。

pYYBAGJ-Ah-AM_SGAAEvTASLWAs297.png

這部分是tcp服務(wù)端任務(wù)代碼

服務(wù)端處理流程

socket--》bind--》listen--》accept--》recv--》send--》lwip_close

先通過socket()接口打開一個服務(wù)端socket文件

然后設(shè)置需要綁定的服務(wù)端ip地址及端口號。

在進(jìn)行監(jiān)聽,需要注意的是此處監(jiān)聽不會處于阻塞態(tài)。

pYYBAGJ-AkWACPzbAAF2OYC2b_g126.png

這部分是tcp客戶端的接收消息處理函數(shù)

先進(jìn)行嘗試連接pc機(jī)的服務(wù)端,如果失敗則延遲5秒后重新連接直到連接成功。

連接成功后先發(fā)消息給PC的服務(wù)端,然后進(jìn)入接收狀態(tài),此狀態(tài)是阻塞態(tài)。

當(dāng)接收到pc的消息后進(jìn)入循環(huán)發(fā)送狀態(tài)。

poYBAGJ-AnCATWpVAAEJr-dl5GU193.png

這部分代碼是tcp客戶端代碼

客戶端處理流程

socket--》connect--》send--》recv--》lwip_close

先通過socket()接口創(chuàng)建客戶端的socket文件。

然后設(shè)置客戶端連接PC服務(wù)端的ip地址及端口號。

在進(jìn)行connect連接。

poYBAGJ-ApOAfG0wAADoo_Q-tDs688.png

這部分是tcp創(chuàng)建客戶端和服務(wù)端任務(wù)

可以看到在創(chuàng)建客戶端和服務(wù)端任務(wù)前先阻塞判斷wifi的連接狀態(tài)。

只有wifi連接成功后才創(chuàng)建客戶端和服務(wù)端任務(wù)。

poYBAGJ-ArKAf_OuAABZRJFVVr4124.png

這部分是創(chuàng)建wifi tcp 通信任務(wù)主要是為了使用APP_FEATURE_INIT(wifi_tcp_example);

這樣當(dāng)OpenHarmony初始化完成后會自動執(zhí)行此任務(wù)。

pYYBAGJ-AreAcTivAACEGyU__jQ006.png

來源: 凌智電子

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • WIFI
    +關(guān)注

    關(guān)注

    81

    文章

    5297

    瀏覽量

    203741
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    5050

    瀏覽量

    97483
  • TCP通信
    +關(guān)注

    關(guān)注

    0

    文章

    146

    瀏覽量

    4223
  • 小凌派
    +關(guān)注

    關(guān)注

    0

    文章

    27

    瀏覽量

    1205
收藏 人收藏

    評論

    相關(guān)推薦

    如何使用Vitis自帶的LWIP模板進(jìn)行PS端千兆以太網(wǎng)TCP通信?

    開發(fā)板有兩路千兆以太網(wǎng),通過RGMII接口連接,本實(shí)驗(yàn)演示如何使用Vitis自帶的LWIP模板進(jìn)行PS端千兆以太網(wǎng)TCP通信。
    的頭像 發(fā)表于 04-28 10:44 ?3434次閱讀
    如何使用Vitis<b class='flag-5'>自帶</b>的LWIP模板<b class='flag-5'>進(jìn)行</b>PS端千兆以太網(wǎng)<b class='flag-5'>TCP</b><b class='flag-5'>通信</b>?

    如何利用XR806開發(fā)板TCP通信進(jìn)行測試呢

    如何利用XR806開發(fā)板TCP通信進(jìn)行測試呢?其測試代碼該怎樣去是實(shí)現(xiàn)呢?
    發(fā)表于 12-28 07:48

    基于小RK2206開發(fā)板wifi-tcp通信實(shí)驗(yàn)

    開發(fā)過程中想要與開發(fā)板進(jìn)行通信一般使用串口通信,當(dāng)開發(fā)板使用串口與pc
    發(fā)表于 05-13 09:20

    每周精選 | 小RK2206開發(fā)板wifi-tcp通信實(shí)驗(yàn),Markdown編輯器有獎體驗(yàn)活動

    開發(fā)板進(jìn)行通信一般使用串口通信,當(dāng)開發(fā)板使用串口與pc通信還需要專門的串口轉(zhuǎn)換工具才行。而小
    發(fā)表于 05-13 10:25

    【小RK2206開發(fā)板試用體驗(yàn)】小手勢應(yīng)用之原力控制星球大戰(zhàn)BB-8機(jī)器人

    在上一篇文章中,我分享了 小隔空操作迪文COF智能屏 ,這次再給大家分享一個更有趣的智能手勢應(yīng)用----小RK2206開發(fā)板賦予你原
    發(fā)表于 05-24 10:56

    【小RK2206開發(fā)板試用體驗(yàn)】第5章 使用WiFi聯(lián)網(wǎng)

    開發(fā)環(huán)境:開發(fā)系統(tǒng):Ubuntu 20.04開發(fā)板:小-RK2206開發(fā)板OpenHarmo
    發(fā)表于 05-27 23:00

    基于小RK2206開發(fā)板wifi-udp通信實(shí)驗(yàn)

    顯示,這些消息是不斷被覆蓋的,使用udp就高效的多。一、在使用小開發(fā)板wifi進(jìn)行udp通信
    發(fā)表于 05-31 10:12

    如何在小RK2206開發(fā)板上使用wifi進(jìn)行tcp通信

    文件,指定 b7_wifi_tcp 參與編譯。"b7_wifi_tcp",在主目錄下輸入編譯命令。hb build -f運(yùn)行結(jié)果示例代碼編譯燒錄代碼后,按下開發(fā)板的RESET按鍵
    發(fā)表于 08-12 16:50

    基于小RK2206開發(fā)板所制作的簡易示波器

    基于OpenHarmony + 小RK2206開發(fā)板制作的簡易示波器,實(shí)時采集波形,實(shí)時計(jì)算并實(shí)時顯示對應(yīng)的波形。OpenHarmony實(shí)時性較高,穩(wěn)定性好,瑞芯微RK2206芯片接口豐富
    的頭像 發(fā)表于 05-06 17:09 ?1816次閱讀
    基于小<b class='flag-5'>凌</b><b class='flag-5'>派</b>RK2206<b class='flag-5'>開發(fā)板</b>所制作的簡易示波器

    使用小開發(fā)板wifi進(jìn)行tcp通信的步驟

    開發(fā)過程中想要與開發(fā)板進(jìn)行通信一般使用串口通信,當(dāng)開發(fā)板使用串口與pc
    的頭像 發(fā)表于 05-16 09:35 ?2256次閱讀

    用小開發(fā)板wifi進(jìn)行udp通信的教程

    顯示,這些消息是不斷被覆蓋的,使用udp就高效的多。 ? 一、在使用小開發(fā)板wifi進(jìn)行udp通信
    的頭像 發(fā)表于 05-31 16:43 ?3432次閱讀
    用小<b class='flag-5'>凌</b><b class='flag-5'>派</b><b class='flag-5'>開發(fā)板</b><b class='flag-5'>wifi</b><b class='flag-5'>進(jìn)行</b>udp<b class='flag-5'>通信</b>的教程

    基于小RK2206開發(fā)板wifi-udp通信實(shí)驗(yàn)

    顯示,這些消息是不斷被覆蓋的,使用udp就高效的多。一、在使用小開發(fā)板wifi進(jìn)行udp通信
    的頭像 發(fā)表于 06-01 10:33 ?875次閱讀
    基于小<b class='flag-5'>凌</b><b class='flag-5'>派</b>RK2206<b class='flag-5'>開發(fā)板</b><b class='flag-5'>wifi</b>-udp<b class='flag-5'>通信</b>實(shí)驗(yàn)

    基于小RK2206開發(fā)板wifi-tcp通信實(shí)驗(yàn)

    基于小RK2206開發(fā)板wifi-tcp通信實(shí)驗(yàn)在開發(fā)過程中想要與
    的頭像 發(fā)表于 06-14 11:10 ?1321次閱讀
    基于小<b class='flag-5'>凌</b><b class='flag-5'>派</b>RK2206<b class='flag-5'>開發(fā)板</b><b class='flag-5'>wifi-tcp</b><b class='flag-5'>通信</b>實(shí)驗(yàn)

    基于OpenHarmony輕量級操作系統(tǒng)實(shí)現(xiàn)RK2206 WiFi-AP模式通信開發(fā)案例

    實(shí)驗(yàn)內(nèi)容本示例將演示如何在小-RK2206開發(fā)板上使用WiFi-AP模式(即將RK2206作為WiFi路由器),實(shí)現(xiàn)與PC端
    的頭像 發(fā)表于 08-08 08:23 ?432次閱讀
    基于OpenHarmony輕量級操作系統(tǒng)實(shí)現(xiàn)RK2206 <b class='flag-5'>WiFi</b>-AP模式<b class='flag-5'>通信</b><b class='flag-5'>開發(fā)</b>案例

    基于ALINX開發(fā)板Z19-P實(shí)現(xiàn)WIFI無線通信功能

    本教程基于 ALINX 開發(fā)板 Z19-P , 實(shí)現(xiàn) WIFI 無線通信功能,WIFI 模塊使用 USB WIFIrtl8188cu。
    的頭像 發(fā)表于 11-11 10:44 ?245次閱讀
    基于ALINX<b class='flag-5'>開發(fā)板</b>Z19-P實(shí)現(xiàn)<b class='flag-5'>WIFI</b>無線<b class='flag-5'>通信</b><b class='flag-5'>功能</b>