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

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

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

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

STM32F407板子上搭建TCP Server及TFTP Server

STM32單片機(jī) ? 來(lái)源:互聯(lián)網(wǎng) ? 作者:佚名 ? 2017-09-25 17:03 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

實(shí)現(xiàn)功能

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

步驟

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

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

工程搭建

外設(shè)配置

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

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

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

大致流程:先新建一個(gè)TCB_PCB、開(kāi)始監(jiān)聽(tīng)、掛載客戶端連接請(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)擊閱讀原文下載。

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

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

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

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

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

    關(guān)注

    13

    文章

    9793

    瀏覽量

    87945
  • STM32
    +關(guān)注

    關(guān)注

    2293

    文章

    11032

    瀏覽量

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

    關(guān)注

    10

    文章

    399

    瀏覽量

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

    關(guān)注

    8

    文章

    1402

    瀏覽量

    81023
  • STM32F4
    +關(guān)注

    關(guān)注

    3

    文章

    203

    瀏覽量

    29040

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

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    stm32F407平臺(tái)使用freertos,使用pvPortMalloc申請(qǐng)內(nèi)存,發(fā)現(xiàn)內(nèi)存中的數(shù)據(jù)總被修改,怎么解決?

    如題,我現(xiàn)在在stm32F407平臺(tái)打開(kāi)FREERTOS,然后使用pvPortMalloc動(dòng)態(tài)申請(qǐng)內(nèi)存的時(shí)候,發(fā)現(xiàn)這塊內(nèi)存中的數(shù)據(jù)總是變化,后面改為malloc申請(qǐng),內(nèi)存中的數(shù)據(jù)就符合預(yù)期了,我已經(jīng)按照網(wǎng)上的流程配置了freertos,不知道是什么原因?qū)е逻@種現(xiàn)象?
    發(fā)表于 03-07 09:03

    stm32f407這個(gè)STM32_RCC_PERIPHCLK_SDMMC是哪里定義的?

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

    STM32F407的高速USB,采用的是虛擬串口方式,VCP驅(qū)動(dòng)有l(wèi)inux系統(tǒng)的嗎?

    STM32F407使用高速USB的Device模式,使用的是虛擬串口VCP方式,網(wǎng)站上有Window7和Window8的驅(qū)動(dòng),是否也有l(wèi)inux系統(tǒng)下的驅(qū)動(dòng)?
    發(fā)表于 03-07 06:42

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

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

    求一份在STM32F407的CS1239的驅(qū)動(dòng)程序

    求一份STM32F407的CS1239的驅(qū)動(dòng)程序,目前沒(méi)有調(diào)試通,讀不到數(shù)據(jù),郵箱:298487317@qq.com謝謝?
    發(fā)表于 02-10 16:52

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

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

    dbForge Studio For SQL Server:用于有效開(kāi)發(fā)的最佳SQL Server集成開(kāi)發(fā)環(huán)境

    dbForge Studio For SQL Server:用于有效開(kāi)發(fā)的最佳SQL Server集成開(kāi)發(fā)環(huán)境 SQL編碼助手 SQL代碼分析 查詢分析器 可視化查詢生成器 數(shù)據(jù)和模式比較 源代碼
    的頭像 發(fā)表于 01-16 10:36 ?733次閱讀

    STM32F405xx和STM32F407xx微控制器數(shù)據(jù)手冊(cè)

    電子發(fā)燒友網(wǎng)站提供《STM32F405xx和STM32F407xx微控制器數(shù)據(jù)手冊(cè).pdf》資料免費(fèi)下載
    發(fā)表于 01-03 14:49 ?2次下載

    使用STM32F407的硬件SPI接口去讀取ADS8694的18位ad數(shù)據(jù)怎樣才能讀取出來(lái)?

    使用STM32F407的硬件SPI接口去讀取ADS8694的18位ad數(shù)據(jù)怎樣才能讀取出來(lái),因?yàn)?b class='flag-5'>STM32F407的硬件SPI接口只能設(shè)置每次讀取的數(shù)據(jù)位是8位或者16位,看了TI的ADS8694芯片手冊(cè)的SPI時(shí)序圖發(fā)現(xiàn)
    發(fā)表于 12-27 06:23

    STM32F407和ADS8684進(jìn)行SPI通信,寄存器怎么配置?

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

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

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

    如何基于STM32F407通過(guò)SPI控制ADS8361?

    如何基于STM32F407通過(guò)SPI控制ADS8361?
    發(fā)表于 11-19 08:23

    w5500 作為tcp server,客戶端異常發(fā)送【RST,ACK】斷開(kāi)連接問(wèn)題

    測(cè)試1 w5500 作為tcp server,上位機(jī)labveiw程序作為clinet,正常第二次交互結(jié)束后,客戶端發(fā)送一個(gè)【RST,ACK】報(bào)文斷開(kāi)了連接; (1)使用wireshark抓取
    發(fā)表于 10-14 14:01

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

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

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

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