簡(jiǎn)介
本文將使用 HMI Board 完成 TCP ECHO 服務(wù)器的搭建。得益于 RT - Thread 完善的設(shè)備驅(qū)動(dòng)與其強(qiáng)大的軟件包生態(tài),此次開發(fā)完全做到0代碼,并且可以在極短的時(shí)間內(nèi)完成。
開發(fā)環(huán)境
RT - Thread Studio
RT - Thread 5.0.0
HMI - Board SDK 1.0.3
PyOCD 0.2.0
準(zhǔn)備工作
在開始開發(fā)前請(qǐng)確保開發(fā)環(huán)境中的資源已經(jīng)安裝好,并且能夠?qū)?HMI - Board 的模板工程進(jìn)行編譯下載與運(yùn)行。若編譯出現(xiàn)問題請(qǐng)確保各環(huán)境版本與上文一致,或向 RT - Thread 社區(qū)尋求幫助。
使用到的軟件包
RW007 V2.1.0
net_server V1.0.2
開始
創(chuàng)建工程
使用 RT-Thread Studio 新建 RT-Thread 項(xiàng)目
選擇基于開發(fā)板,并且選擇 HMI-Board 創(chuàng)建一個(gè)模板工程,具體參數(shù)如下:
點(diǎn)擊完成,此時(shí)我們可以獲得一個(gè)可以編譯下載的基礎(chǔ)工程,嘗試編譯工程,成功后即可進(jìn)行下一步。
軟件包配置
基礎(chǔ)工程創(chuàng)建成功后,我們需要添加WIFI功能(RW007)及TCP服務(wù)器(NET_SERVER)功能。首先進(jìn)入 RT-Thread Settings 界面:
添加 RW007
點(diǎn)擊 RT-Thread Settings 界面右側(cè)的 “詳細(xì)” 按鈕進(jìn)入 “硬件” 選項(xiàng)卡:
點(diǎn)開 Board extended module Drivers 一欄,勾選 Enable RW007,保持默認(rèn)設(shè)置:
點(diǎn)擊左側(cè)返回按鈕返回主界面:
此時(shí)我們看到主界面已加入 RW007 軟件包:
點(diǎn)擊 rw007 卡片的 配置項(xiàng):
選擇版本號(hào)為v2.1.0,并且在 example driver port 一欄中選擇 not use example driver, porting by myself (此處BSP已為我們移植好,無(wú)需再自己移植):
至此,RW007所有功能配置完畢,點(diǎn)擊 返回 退回到主界面,準(zhǔn)備下一個(gè)軟件包的添加。
添加 NET_SERVER
點(diǎn)擊 RT-Thread Settings 主界面的添加軟件包,在彈出的頁(yè)面中搜索 net_server 并點(diǎn)擊軟件包卡片上的 添加 按鈕:
返回主界面進(jìn)入 net_server 配置項(xiàng)界面(方法同RW007),勾選 Use TCP Server example :
此時(shí)該軟件包配置完成。按下 CTRL+S 保存軟件包設(shè)置。此時(shí) RT-Thread Studio 會(huì)自動(dòng)下載剛才選擇的軟件包并且配置到我們的工程中:
編譯下載及運(yùn)行
配置完軟件包后點(diǎn)擊編譯
編譯完成后連接開發(fā)板,點(diǎn)擊下載。(注意下載可能有點(diǎn)慢,請(qǐng)耐心等待)
效果演示
下載完成后打開串口終端,輸入 wifi join [SSID] [password] 連接上WIFI:
輸入 ifconfig 查看當(dāng)前網(wǎng)絡(luò)信息:
圖中 w0 的 ip 地址就是我們一會(huì)需要連接的IP。
輸入 tcp_server_init 打開 net_server 的 echo server 例程:
此時(shí)我們的服務(wù)器就在 3333 端口上啟動(dòng)了。
打開網(wǎng)絡(luò)調(diào)試助手,選擇 TCP Client 連接 HMI-Board。在本例中即 192.168.8.199:3333(注意需要確保電腦與開發(fā)板連接的是同一個(gè)WIFI):
點(diǎn)擊連接后可以看到終端輸出了連接信息:
此時(shí)說(shuō)明連接已經(jīng)建立。
此時(shí)點(diǎn)擊發(fā)送,可以看到接收框中會(huì)返回我們發(fā)送的信息,并且下方的發(fā)送計(jì)數(shù)與接收計(jì)數(shù)相同,說(shuō)明 TCP Echo Server 運(yùn)行正常 :
echo server 默認(rèn)的心跳超時(shí)時(shí)間為1分鐘,一分鐘后不發(fā)送任何信息我們可以看到終端提示斷開連接:
至此所有功能演示完畢。
-
計(jì)數(shù)器
+關(guān)注
關(guān)注
32文章
2253瀏覽量
94283 -
RT-Thread
+關(guān)注
關(guān)注
31文章
1261瀏覽量
39838 -
TCP通信
+關(guān)注
關(guān)注
0文章
146瀏覽量
4200 -
串口終端
+關(guān)注
關(guān)注
0文章
8瀏覽量
2380
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論