一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

STM32F407板子上搭建TCP Server及TFTP Server

STM32單片機 ? 來源:互聯(lián)網(wǎng) ? 作者:佚名 ? 2017-09-25 17:03 ? 次閱讀
開發(fā)平臺

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

實現(xiàn)功能

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

步驟

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

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接口的時候軟件會自動配置對應(yīng)的引腳,但是一定要仔細對比軟件配置的引腳是否為板子上硬件所連接的。

原子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)

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

大致流程:先新建一個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ù)器測試用網(wǎng)絡(luò)調(diào)試助手連接TCP服務(wù)器(兩者必須在一個網(wǎng)關(guān)里面,192.168.000.XXX),網(wǎng)絡(luò)調(diào)試助手里選擇TCP客戶端,遠程主機IP為 192.168.0.120 , 端口號為7

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

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

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

因為是要通過TFTP 來實現(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)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 服務(wù)器
    +關(guān)注

    關(guān)注

    12

    文章

    9596

    瀏覽量

    86986
  • STM32
    +關(guān)注

    關(guān)注

    2283

    文章

    10986

    瀏覽量

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

    關(guān)注

    10

    文章

    387

    瀏覽量

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

    關(guān)注

    8

    文章

    1395

    瀏覽量

    80140
  • STM32F4
    +關(guān)注

    關(guān)注

    3

    文章

    194

    瀏覽量

    28731

原文標題:基于STM32F407搭建TCP服務(wù)器及TFTP服務(wù)器

文章出處:【微信號:STM32_STM8_MCU,微信公眾號:STM32單片機】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    stm32f407這個STM32_RCC_PERIPHCLK_SDMMC是哪里定義的?

    stm32f407這個STM32_RCC_PERIPHCLK_SDMMC 是哪里定義的 函數(shù)調(diào)用這個會報錯 Error[Pe020]: identifier \"
    發(fā)表于 03-07 07:34

    Modbus TCP Server程序開發(fā)與Yocto系統(tǒng)構(gòu)建

    解壓后,源碼為“modbus_server_tcp.c”,它模擬一個Modbus TCP傳感器。源碼的講解請參考《11.7 Modbus TCP編程與實驗》。
    的頭像 發(fā)表于 02-14 13:38 ?847次閱讀
    Modbus <b class='flag-5'>TCP</b> <b class='flag-5'>Server</b>程序開發(fā)與Yocto系統(tǒng)構(gòu)建

    STM32F407輸出的2片ADC的轉(zhuǎn)換值與輸入ADC的電壓值相同了,不知道是何原因?

    采用STM32F407 控制2片ADS125550sps速率進行ADC采樣,使用外部基準,單元電后偶然會出現(xiàn)STM32F407 輸出的2片ADC的轉(zhuǎn)換值,較輸入ADC的電壓值大20%的現(xiàn)象,測量
    發(fā)表于 01-22 08:15

    STM32F407和ADS8684進行SPI通信,寄存器怎么配置?

    通過STM32F407和ADS8684進行SPI通信,閱讀了ADS8684的手冊,配置STM32F407為主,CPOL為0,CPHA為1,這樣對嗎? 配置好后應(yīng)該先設(shè)置ADS8684的程序寄存器還是發(fā)送命令寄存器后再設(shè)置程序寄存器呢?
    發(fā)表于 12-20 06:25

    STM32F407 MCU使用SD NAND?不斷電初始化失效解決方案

    STM32F407微控制器單元(MCU)與SD NAND的結(jié)合提供了強大的存儲解決方案。然而,不斷電初始化失效問題可能會導(dǎo)致系統(tǒng)穩(wěn)定性和數(shù)據(jù)完整性受損。我們將STM32F407與SD NAND集成時可能遇到的初始化問題,并提供專業(yè)的解決方案。
    的頭像 發(fā)表于 12-11 10:51 ?752次閱讀
    <b class='flag-5'>STM32F407</b> MCU使用SD NAND?不斷電初始化失效解決方案

    Nat server技術(shù)原理和配置過程

    Nat server:指定公有地址:端口和私有地址:端口形成一對一映射關(guān)系——映射表。這也是Nat server與其他nat的區(qū)別之一,Nat server可以指定端口進行映射。
    的頭像 發(fā)表于 10-10 14:38 ?1196次閱讀
    Nat <b class='flag-5'>server</b>技術(shù)原理和配置過程

    RTOS V1.4版本SDK作為TCP Server沒有調(diào)用斷開連接的回調(diào)函數(shù),為什么?

    硬件環(huán)境是:ESP-12F, 軟件環(huán)境是:RTOS V1.4版本 問題描述: 模塊作為STA,socket為TCP Server,當(dāng)TCP Client連接到模塊的
    發(fā)表于 07-18 08:31

    請問TCP server如何做到在AP偵聽?

    我現(xiàn)在的ESP8266是AP和STA共存模式,我按照sdk及sample中的示例建了一個TCP server,我的原意是這個TCP serer要在AP偵聽的,但是我發(fā)現(xiàn)它卻是STA接
    發(fā)表于 07-12 12:51

    請問esp8266 rtos sdk能否同時啟動tcp socke clent和udp server?

    我在用的是V1.5的rtos 的sdk,想在esp8266同時啟動tcp的socket client和udp的socket server。 但是我發(fā)現(xiàn),只要我一啟動upd server
    發(fā)表于 07-12 07:07

    STM32F407作USB host驅(qū)動聲卡,USB就會出錯的原因?

    我用STM32F407 作USB host,配置為FS。用它接聲卡。如果STM32F407 單向給 聲卡傳送音頻,輸出聲音正常。或者 407單向接收聲卡的音頻,工作也正常。但是同時發(fā)送和接收聲音(即
    發(fā)表于 07-04 06:56

    怎樣從STM32F407的UID碼中提取生產(chǎn)年份和月份信息?

    請問怎樣從STM32F407的UID碼中提取生產(chǎn)年份和月份信息?
    發(fā)表于 06-03 06:28

    STM32F407外擴外部RAM,能把stack設(shè)置在外部RAM嗎?

    STM32F407外擴外部RAM,能把stack設(shè)置在外部RAM嗎?
    發(fā)表于 05-17 11:05

    stm32f407是否可以采用別的I/O口,與TFT液晶實現(xiàn)連接啊?

    新手求助:stm32f407與TFT液晶接口時,TFT液晶為并口(D0~D15等),stm32f407芯片必須使用FSMC—D0~FSMC—D15等接口與其連接嗎?看了一些開發(fā)板的原理圖,好像
    發(fā)表于 05-17 07:39

    請問stm32f407不帶外圍高速usb芯片是否可以實現(xiàn)高速usb?

    我看到一般的都帶一個usb3300 利用ulpi來實現(xiàn)高速usb~~~ 但是stm32f407的pb14 和pb15都是OTG_HS_DP OTG_HS_DM~~~ 請問stm32f407 不帶外圍高速usb芯片是否可以實現(xiàn)高速usb??
    發(fā)表于 05-15 07:58

    STM32F407怎么去接收、發(fā)送數(shù)據(jù)?

    USB設(shè)備是這樣的,請問我用STM32F407怎么去接收、發(fā)送數(shù)據(jù),這個設(shè)備是一個3G模塊,謝謝。
    發(fā)表于 05-09 06:41