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

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

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

在STM32F407板子上搭建TCP服務器及TFTP服務器

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

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

開發(fā)平臺

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

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

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

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

工程搭建

外設(shè)配置

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

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

  1. 配置時鐘外部高速晶振選擇為8M,PLL SORCE MUX 選擇為HSE,在HCLK處輸入168點回車,軟件會自動配置好

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

  3. 生成工程代碼

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

工程代碼

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

看起來代碼很多,其實真的不復雜。

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

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

詳細測試步驟請點擊閱讀原文下載。

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

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

因為是要通過TFTP 來實現(xiàn) IAP 功能 ,所有一定有FLASH 的操作,這里我們COPY官方例子里面的flash_if.c和flash_if.h

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

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

    關(guān)注

    2270

    文章

    10908

    瀏覽量

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

    關(guān)注

    10

    文章

    385

    瀏覽量

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

    關(guān)注

    8

    文章

    1372

    瀏覽量

    79142
  • STM32F4
    +關(guān)注

    關(guān)注

    3

    文章

    194

    瀏覽量

    28090
收藏 人收藏

    評論

    相關(guān)推薦

    采用 Flexus 云服務器 X 實例搭建 RTSP 直播服務器

    一、前言 這篇文章講解:? 采用華為云最新推出的 Flexus 云服務器 X 實例搭建 RTSP 服務器,完成視頻直播需求。 隨著實時視頻流傳輸需求的增長,RTSP(實時流協(xié)議)服務器
    的頭像 發(fā)表于 12-24 17:36 ?184次閱讀
    采用 Flexus 云<b class='flag-5'>服務器</b> X 實例<b class='flag-5'>搭建</b> RTSP 直播<b class='flag-5'>服務器</b>

    企業(yè)云服務器平臺設(shè)計與搭建

    企業(yè)云服務器平臺的設(shè)計與搭建是一個復雜但系統(tǒng)的過程,涉及多個環(huán)節(jié)和因素。主機推薦小編為您整理發(fā)布企業(yè)云服務器平臺設(shè)計與搭建這一過程的詳細闡述。
    的頭像 發(fā)表于 12-04 09:51 ?112次閱讀

    服務器搭建步驟

    服務器不僅提供了靈活的資源配置和強大的計算能力,還降低了IT基礎(chǔ)設(shè)施的維護成本。下面,rak小編帶您詳細了解云服務器搭建的步驟。
    的頭像 發(fā)表于 10-09 10:58 ?227次閱讀

    服務器搭建詳細過程

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

    如果ESPTCP客戶端與服務器斷開連接,如何啟用自動重連?

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

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

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

    ESP826如何運行AP TCP服務器?

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

    分享 | PTP、NTP時間同步服務器的部署與搭建過程

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

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

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

    通過STM32+ESP8266 Wifi模塊 +云服務器,做一個數(shù)據(jù)收發(fā)控制的板子服務器方面該如何選擇?

    通過STM32+ESP8266 Wifi模塊 +云服務器 做一個數(shù)據(jù)收發(fā)控制的板子服務器方面該如何選擇?
    發(fā)表于 04-25 08:16

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

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

    服務器遠程不服務器怎么辦?服務器無法遠程的原因是什么?

    解封。 2.遠程端口沒有添加到防火墻策略中 很多人可能對這個不是很理解,在這解釋一下:端口沒有防火墻策略中允許所有人鏈接,那么這個端口就無法被訪問, 同理,遠程端口沒有加入防火墻策略,就無法訪問這臺服務器
    發(fā)表于 02-27 16:21

    linux服務器和windows服務器

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

     海外云服務器搭建pi節(jié)點詳細步驟

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

    獨立服務器和云服務器的區(qū)別

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