STM32 基础系列教程 39 - Lwip_tftp
前言
文件傳輸協議(英文:File?Transfer?Protocol,縮寫:FTP)是用于在網絡上進行文件傳輸的一套標準協議,使用客戶/服務器模式。它屬于網絡傳輸協議的應用層。文件傳送(file transfer)和文件訪問(file access)之間的區別在于:前者由FTP提供,后者由如NFS等應用系統提供。
FTP是一個8位的客戶端-服務器協議,能操作任何類型的文件而不需要進一步處理,就像MIME或Unicode一樣。但是,FTP有著極高的延時,這意味著,從開始請求到第一次接收需求數據之間的時間,會非常長;并且不時的必須執行一些冗長的登錄進程。
????? TCP/IP協議中,FTP標準命令TCP端口號為21或2121,FTP的任務是從一臺計算機將文件傳送到另一臺計算機,不受操作系統的限制。本節我們將學習stm32 + LWIP構建一下TFTP(簡單文件傳輸協議)服務器,使用UDP通信,其對應的端口為69。
?
示例詳解
基于硬件平臺: 正點源子的stm32f4 探索者開發板,主要使用了SDIO文件系統以及以太網接口, MCU 的型號是?STM32F4ZET6, 使用stm32cubemx 工具自動產生的配置工程,使用KEIL5編譯代碼。本示例所用的開發板及部分原理圖:
?
?
?
?
高級參數項默認是LAN8742,開發板使用的是LAN8720,它兩寄存器基本一樣,所以本實驗對高級參數不作修改。
?
?
?
開DMA,不是必需但建議開!
DMA及SDIO中斷設置,原則是全局中斷優先級高于DMA中斷:
文件系統,我們直接先用SD Card:
高級設置中使用DMA開啟,當然也可以不開:
?
IO腳按原理圖來配置即可,但這時要注意一點是網口芯片有個復位引腳PD3在程序運行時要配邁高,可參考如下:
?
?
在Fatfs.c文件的MX_FATFS_Init函數中加入文件掛載操作:
(注:在使用探索者F4調試時,下載或仿真調試時先不要PC串口工具連接上開發板的USB_232接口,有可能導致程序運行不了--boot0引腳電平不對,可以先跑起來再在PC串口工具上連接相應端口!!)
安裝并打開tftp工具(該工具在WIN10兼容性不是很好,可以試試修改兼容模式運行),進行如下操作:
往開發板上傳桌面上的文件456.txt,文件名保存為Stm32cube.txt:
上傳完成,刪除桌面上已有的789.txt文件,從開發板下載Stm32cube.txt,保存本地名字為789.txt
查看789.txt文件內容發現與456.txt文件內容一致:
到此stm32+lwip的tftp服務構建實驗就完成了。
OK,本期實驗完成!下期見!同時如果大家有什么疑問或是有想了解的其它內容,也歡迎大家留言!!最后喜歡這個公眾號的同學們記得加關注了,會有不定期技術干貨推出!!
?
文中源碼資料下載,在公眾號里給十三發消息:
下載|STM32基礎系列教程39
?
關注十三公眾號
?
總結
以上是生活随笔為你收集整理的STM32 基础系列教程 39 - Lwip_tftp的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: STM32 基础系列教程 38 - Lw
- 下一篇: STM32 基础系列教程 40 - Lw