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

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

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

在STM32F407板子上搭建TCP服務(wù)器及TFTP服務(wù)器

STM32單片機(jī) ? 來源:互聯(lián)網(wǎng) ? 作者:佚名 ? 2017-09-25 18:05 ? 次閱讀

掉落的楓葉像老工程師的筆記經(jīng)驗(yàn)我打開夜燈照亮歲末的秋天晚霞掠過天邊北風(fēng)掠過工作臺(tái)的桌面我把努力融進(jìn)了落葉想換來熟悉的那些肯定的笑顏

開發(fā)平臺(tái)

STM32F407開發(fā)板(帶以太網(wǎng)),板子上的PHY為LAN8720A,沒有用到顯示屏全為串口輸出調(diào)試信息。實(shí)現(xiàn)功能

通過STM32CubeMX在原子STM32F407板子上搭建TCP Server 及 TFTP Server ,實(shí)現(xiàn)這些功能非常簡單。步驟

功能介紹、工程搭建、工程代碼、TFTP 服務(wù)器測試

1、TCP Server 實(shí)現(xiàn)顯示連接上的客戶端IP及對客戶端發(fā)來的數(shù)據(jù)回傳2、TFTP Server 實(shí)現(xiàn)IAP功能及讀取MCU內(nèi)部FLASH數(shù)據(jù)。這里用到的是文件傳輸協(xié)議,主要是參考官方文檔UM1709,及官方STM324xG_EVAL的LWIP IAP例子。

工程搭建

外設(shè)配置

打開STM32CubeMX,點(diǎn)NEW PROJECT,在左側(cè)的輸入框中輸入407ZG,在右側(cè)會(huì)顯示STM32F407ZGT6的MCU列表,選擇此列表,雙擊。設(shè)置時(shí)鐘源為外部時(shí)鐘開啟SWD調(diào)試接口,開啟ETH外設(shè),選擇RMII接口(LAN8720A為RMII接口),中間件里時(shí)能LWIP。使用RMII接口的時(shí)候軟件會(huì)自動(dòng)配置對應(yīng)的引腳,但是一定要仔細(xì)對比軟件配置的引腳是否為板子上硬件所連接的。

原子F407板子上的LAN8720A的RMII接口引腳如下圖,

  1. 配置時(shí)鐘外部高速晶振選擇為8M,PLL SORCE MUX 選擇為HSE,在HCLK處輸入168點(diǎn)回車,軟件會(huì)自動(dòng)配置好

  2. 中間件配置這里主要配置,ETH、LWIP、串口1、GPIO

  3. 生成工程代碼

    點(diǎn)左上角的Project,選擇Settings...(不建議直接點(diǎn)黃色的齒輪),點(diǎn)擊OK。再點(diǎn)右上方的黃色齒輪即可生成工程代碼。

工程代碼

1、TCP Server 的實(shí)現(xiàn)

看起來代碼很多,其實(shí)真的不復(fù)雜。

大致流程:先新建一個(gè)TCB_PCB、開始監(jiān)聽、掛載客戶端連接請求回調(diào)函數(shù)、掛載接收數(shù)據(jù)回調(diào)函數(shù)、掛載發(fā)送完成回調(diào)函數(shù)、掛載出錯(cuò)回調(diào)函數(shù)、掛載心跳包回調(diào)函數(shù)、關(guān)閉連接等,最重要的是釋放內(nèi)存!每收到一個(gè)數(shù)據(jù)鏈,它已經(jīng)被申請了內(nèi)存,所有在處理完這個(gè)數(shù)據(jù)后一定要釋放。

2、TCP服務(wù)器測試網(wǎng)絡(luò)調(diào)試助手連接TCP服務(wù)器(兩者必須在一個(gè)網(wǎng)關(guān)里面,192.168.000.XXX),網(wǎng)絡(luò)調(diào)試助手里選擇TCP客戶端,遠(yuǎn)程主機(jī)IP為 192.168.0.120 , 端口號(hào)為7

詳細(xì)測試步驟請點(diǎn)擊閱讀原文下載。

通過測試,則表示TCP服務(wù)器已經(jīng)完成。您也可以通過手機(jī)連接這個(gè)路由器的WIFI,通過 網(wǎng)絡(luò)調(diào)試助手APP來連接這個(gè)開發(fā)板的服務(wù)器,電腦可以通過 TCP客戶端與開發(fā)板的TCP服務(wù)器連接同時(shí)也可以用手機(jī)做TCP客戶端連接開發(fā)板的TCP服務(wù)器。

3、TFTP Server 的實(shí)現(xiàn)還是在上面的代碼上來實(shí)現(xiàn)此功能,即在TCP 服務(wù)器的代碼上實(shí)現(xiàn)TFTP 服務(wù)器。打開剛才STM32CubeMX工程,在原來的基礎(chǔ)上來配置LWIP。

因?yàn)槭且ㄟ^TFTP 來實(shí)現(xiàn) IAP 功能 ,所有一定有FLASH 的操作,這里我們COPY官方例子里面的flash_if.c和flash_if.h

至此,TFTP服務(wù)器搭建完成,下載到開發(fā)板,串口顯示如下信息:Start 開始監(jiān)聽 掛載客戶端連接回調(diào)函數(shù) TFTP初始化成功 Static IP address: 192.168.0.120可以通過上面的TCP服務(wù)器測試步驟來測試TCP服務(wù)器功能,正常測試,工作正常,ping也能

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

    關(guān)注

    2258

    文章

    10828

    瀏覽量

    352514
  • TFT
    TFT
    +關(guān)注

    關(guān)注

    10

    文章

    381

    瀏覽量

    110598
  • TCP
    TCP
    +關(guān)注

    關(guān)注

    8

    文章

    1324

    瀏覽量

    78759
  • STM32F4
    +關(guān)注

    關(guān)注

    3

    文章

    194

    瀏覽量

    27890
收藏 人收藏

    評論

    相關(guān)推薦

    服務(wù)器搭建詳細(xì)過程

    隨著云計(jì)算技術(shù)的發(fā)展,越來越多的企業(yè)和個(gè)人開始選擇使用云服務(wù)器來部署自己的應(yīng)用和服務(wù)。相比于傳統(tǒng)的物理服務(wù)器,云服務(wù)器提供了更高的靈活性、可擴(kuò)展性和安全性。下面將詳細(xì)介紹如何
    的頭像 發(fā)表于 09-12 10:00 ?139次閱讀

    如果ESPTCP客戶端與服務(wù)器斷開連接,如何啟用自動(dòng)重連?

    ESP - TCP 客戶端 嵌入式 Linux 服務(wù)器 - TCP 服務(wù)器 如果ESPTCP
    發(fā)表于 07-17 06:25

    tcp方式連接不了服務(wù)器了,服務(wù)器代碼還能開源嗎?

    維護(hù)服務(wù)器嗎?已經(jīng)兩天了。http方式還可以連接上,就tcp的方式不行了.服務(wù)器代碼能開源嗎?讓我們自己搭建
    發(fā)表于 07-15 06:53

    ESP826如何運(yùn)行AP TCP服務(wù)器?

    我正在開發(fā)一個(gè)室外遠(yuǎn)程控制系統(tǒng),帶有來自ESP8266 AP的專用WLAN。帶有 TCP 客戶端的平板電腦應(yīng)連接到它,以便在 ESP 設(shè)置一些 GPIO。根據(jù)我的理解,ESP TCP
    發(fā)表于 07-09 06:27

    分享 | PTP、NTP時(shí)間同步服務(wù)器的部署與搭建過程

    分享 | PTP、NTP時(shí)間同步服務(wù)器的部署與搭建過程
    的頭像 發(fā)表于 05-15 10:01 ?709次閱讀
    分享 | PTP、NTP時(shí)間同步<b class='flag-5'>服務(wù)器</b>的部署與<b class='flag-5'>搭建</b>過程

    使用STM32F407正點(diǎn)原子的開發(fā)板作為客戶端,電腦作為服務(wù)器端時(shí)程序總是死接收函數(shù)上是為什么?

    生成的工程可以ping通,使用STM32F407正點(diǎn)原子的開發(fā)板作為客戶端,電腦作為服務(wù)器端時(shí)程序總是死接收函數(shù)上,把接收函數(shù)屏蔽后程序正常也能于服務(wù)器連接上。請大神指教,是否是哪里
    發(fā)表于 04-29 06:54

    服務(wù)器linux搭建ftp服務(wù)訪問不了怎么解決?

    如果你服務(wù)器linux搭建了FTP服務(wù)但無法訪問,這可能是由于幾種原因引起的。以下是一些常見問題和解決方法: 1、防火墻配置:確保防火
    的頭像 發(fā)表于 04-18 17:23 ?897次閱讀

    linux服務(wù)器和windows服務(wù)器

    ,這在滿足個(gè)性化需求和增強(qiáng)服務(wù)器安全 性具有優(yōu)勢。 Linux服務(wù)器還具有出色的性能和穩(wěn)定性。相比之下,Windows服務(wù)器性能和穩(wěn)定性
    發(fā)表于 02-22 15:46

     海外云服務(wù)器搭建pi節(jié)點(diǎn)詳細(xì)步驟

     海外云服務(wù)器搭建pi節(jié)點(diǎn)簡單嗎?海外云服務(wù)器搭建pi節(jié)點(diǎn)步驟有哪些?小編為您整理發(fā)布海外云服務(wù)器搭建
    的頭像 發(fā)表于 02-21 10:16 ?874次閱讀

    獨(dú)立服務(wù)器和云服務(wù)器的區(qū)別

    獨(dú)立服務(wù)器和云服務(wù)器的區(qū)別是很多用戶選擇服務(wù)器時(shí)要做的課程,那么獨(dú)立服務(wù)器和云服務(wù)器的區(qū)別有哪
    的頭像 發(fā)表于 01-17 10:58 ?669次閱讀

    如何利用AWFlow搭建HTTP服務(wù)器

    本文將基于EsDA開發(fā)套件快速開發(fā)板搭建HTTP服務(wù)器,為HTTP客戶端提供了訪問板子的外設(shè)資源,數(shù)據(jù)以及文件讀寫等接口,實(shí)現(xiàn)設(shè)備與網(wǎng)絡(luò)
    的頭像 發(fā)表于 12-14 08:24 ?491次閱讀
    如何利用AWFlow<b class='flag-5'>搭建</b>HTTP<b class='flag-5'>服務(wù)器</b>

    如何自己搭建一個(gè)服務(wù)器

    如何自己搭建一個(gè)服務(wù)器?自己搭建一個(gè)服務(wù)器涉及到硬件和軟件兩個(gè)方面。下面是一個(gè)簡單的指南,涵蓋了基本的步驟。請注意,這是一個(gè)概述,實(shí)際步驟可能因你的需求和硬件選擇而有所不同。
    的頭像 發(fā)表于 12-12 16:52 ?3540次閱讀

    TFTP服務(wù)器是什么如何下載文件

    TFTP服務(wù)器是什么如何下載文件 想必許多人知道FTP是什么,但他們?nèi)辈⒉皇煜?b class='flag-5'>TFTP。TFTPTCP/IP協(xié)議族中的一種協(xié)議,用于客戶端
    發(fā)表于 12-12 16:06

    搭建ftp服務(wù)器的步驟

    的操作系統(tǒng)。常用的操作系統(tǒng)包括Windows、Linux和Mac OS。每個(gè)操作系統(tǒng)都有不同的搭建FTP服務(wù)器的方法和工具。 繼續(xù)之前,請確保您已經(jīng)為您的服務(wù)器選擇了一個(gè)可靠的操作系
    的頭像 發(fā)表于 12-07 16:32 ?1035次閱讀

    存儲(chǔ)服務(wù)器怎么搭建?

      搭建存儲(chǔ)服務(wù)器需要根據(jù)我們的需求和環(huán)境選擇合適的硬件和軟件,并進(jìn)行相應(yīng)的配置。那么存儲(chǔ)服務(wù)器怎么搭建?
    的頭像 發(fā)表于 10-31 16:51 ?2585次閱讀