掉落的楓葉像老工程師的筆記經(jīng)驗(yàn)我打開夜燈照亮歲末的秋天晚霞掠過天邊北風(fēng)掠過工作臺(tái)的桌面我把努力融進(jìn)了落葉想換來熟悉的那些肯定的笑顏
開發(fā)平臺(tái)
STM32F407開發(fā)板(帶以太網(wǎng)),板子上的PHY為L(zhǎng)AN8720A,沒有用到顯示屏全為串口輸出調(diào)試信息。實(shí)現(xiàn)功能
通過STM32CubeMX在原子STM32F407板子上搭建TCP Server 及 TFTP Server ,實(shí)現(xiàn)這些功能非常簡(jiǎn)單。步驟
功能介紹、工程搭建、工程代碼、TFTP 服務(wù)器測(cè)試
1、TCP Server 實(shí)現(xiàn)顯示連接上的客戶端IP及對(duì)客戶端發(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)配置對(duì)應(yīng)的引腳,但是一定要仔細(xì)對(duì)比軟件配置的引腳是否為板子上硬件所連接的。
原子F407板子上的LAN8720A的RMII接口引腳如下圖,

-
配置時(shí)鐘外部高速晶振選擇為8M,PLL SORCE MUX 選擇為HSE,在HCLK處輸入168點(diǎn)回車,軟件會(huì)自動(dòng)配置好
-
中間件配置這里主要配置,ETH、LWIP、串口1、GPIO
-
生成工程代碼
點(diǎn)左上角的Project,選擇Settings...(不建議直接點(diǎn)黃色的齒輪),點(diǎn)擊OK。再點(diǎn)右上方的黃色齒輪即可生成工程代碼。
1、TCP Server 的實(shí)現(xiàn)
看起來代碼很多,其實(shí)真的不復(fù)雜。
大致流程:先新建一個(gè)TCB_PCB、開始監(jiān)聽、掛載客戶端連接請(qǐng)求回調(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)被申請(qǐng)了內(nèi)存,所有在處理完這個(gè)數(shù)據(jù)后一定要釋放。
2、TCP服務(wù)器測(cè)試用網(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ì)測(cè)試步驟請(qǐng)點(diǎn)擊閱讀原文下載。
通過測(cè)試,則表示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ù)器測(cè)試步驟來測(cè)試TCP服務(wù)器功能,正常測(cè)試,工作正常,ping也能通
-
STM32
+關(guān)注
關(guān)注
2310文章
11162瀏覽量
373515 -
TFT
+關(guān)注
關(guān)注
10文章
410瀏覽量
114670 -
TCP
+關(guān)注
關(guān)注
8文章
1425瀏覽量
83531 -
STM32F4
+關(guān)注
關(guān)注
3文章
204瀏覽量
30152
發(fā)布評(píng)論請(qǐng)先 登錄
網(wǎng)絡(luò)授時(shí)服務(wù)器 ntp時(shí)間服務(wù)器品牌 校時(shí)服務(wù)器廠家#電工
時(shí)鐘服務(wù)器廠商 gps網(wǎng)絡(luò)校時(shí)服務(wù)器 衛(wèi)星時(shí)鐘服務(wù)器#電工
普通服務(wù)器電源與AI服務(wù)器電源的區(qū)別(上)
飛凌嵌入式ElfBoard-常用的網(wǎng)絡(luò)服務(wù)的搭建之TFTP服務(wù)搭建
服務(wù)器數(shù)據(jù)恢復(fù)—服務(wù)器上的卷被誤刪數(shù)據(jù)如何恢復(fù)?
怎樣在阿里ECS服務(wù)器上架設(shè)自己的OpenVPN服務(wù)器?
恒訊科技分析:云儲(chǔ)存服務(wù)器搭建教程
歐洲服務(wù)器免費(fèi)ip地址怎么獲取?#歐洲服務(wù)器 #免費(fèi)IP地址 #服務(wù)器
國(guó)外服務(wù)器地址怎么填寫才正確?#國(guó)外服務(wù)器 #國(guó)外服務(wù)器地址 #服務(wù)器
歐洲VS美國(guó)服務(wù)器怎么選?1分鐘解析核心差異 #歐洲服務(wù)器 #美國(guó)服務(wù)器 #服務(wù)器
存儲(chǔ)服務(wù)器怎么搭建?RAKsmart實(shí)戰(zhàn)指南
在STM32F407板子上搭建TCP服務(wù)器及TFTP服務(wù)器
評(píng)論