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

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

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

RT-Thread中Lan8720和lwip協(xié)議棧的使用

冬至配餃子 ? 來源:YZRD ? 作者:YZRD ? 2023-10-13 10:19 ? 次閱讀

開發(fā)環(huán)境:野火的stm32f407,rt-thread studio版本是版本: 2.2.6,stm32f4的資源包為0.2.2,Agile Modbus軟件包版本為v1.1.2。新建選擇芯片工程。

修改工程使用外部晶振,可參考第一篇文章 rt-thread studio新建stm32f407工程 。

查看野火工程的資料,可知道芯片的使用引腳為:

PG11 : RMII_TX_EN;
PG13 : RMII_TXD0;
PG14 : RMII_TXD1;
PC5 : RMII_RXD1;
PC4 : RMII_RXD0;
PA7 : RMII_CRSDV;
PA1 : RMII_REF_CLK;
PC1 : RMII_MDC
PA2 : RMII_MDIO;
復(fù)位腳 :NRST腳。

接線方式: 筆記本連接路由器,野火開發(fā)板也連接路由器。
根據(jù)文檔需要做的步驟如下:

/*if you want to use eth you can use the following instructions.
*

  • STEP 1, define macro related to the eth
  • such as    BSP_USING_ETH
    
  • STEP 2, copy your eth init function from stm32xxxx_hal_msp.c generated by stm32cubemx to the end if board.c file
  • such as     void HAL_ETH_MspInit(ETH_HandleTypeDef* heth)
    
  • STEP 3, modify your stm32xxxx_hal_config.h file to support eth peripherals. define macro related to the peripherals
  • such as     #define HAL_ETH_MODULE_ENABLED
    
  • STEP 4, config your phy type
  • such as     #define PHY_USING_LAN8720A
    
  • #define PHY_USING_DM9161CEP
    
  • #define PHY_USING_DP83848C
    
  • STEP 5, implement your phy reset function in the end of board.c file
  • void phy_reset(void)
    

STEP 6, config your lwip or other network stack
*/
按照要求修改即可,主要講STEP2和STEP6的修改。STEP2 中的代碼使用cubmx生成,生成的代碼如下:

void HAL_ETH_MspInit(ETH_HandleTypeDef* ethHandle)
{
GPIO_InitTypeDef GPIO_InitStruct = {0};
if(ethHandle->Instance==ETH)
{
/* USER CODE BEGIN ETH_MspInit 0 /
/
USER CODE END ETH_MspInit 0 /
/
ETH clock enable */
__HAL_RCC_ETH_CLK_ENABLE();
__HAL_RCC_GPIOC_CLK_ENABLE();
__HAL_RCC_GPIOA_CLK_ENABLE();
__HAL_RCC_GPIOG_CLK_ENABLE();
/**ETH GPIO Configuration
PC1 ------> ETH_MDC
PA1 ------> ETH_REF_CLK
PA2 ------> ETH_MDIO
PA7 ------> ETH_CRS_DV
PC4 ------> ETH_RXD0
PC5 ------> ETH_RXD1
PG11 ------> ETH_TX_EN
PG13 ------> ETH_TXD0
PG14 ------> ETH_TXD1
/
GPIO_InitStruct.Pin = GPIO_PIN_1|GPIO_PIN_4|GPIO_PIN_5;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
GPIO_InitStruct.Alternate = GPIO_AF11_ETH;
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
GPIO_InitStruct.Pin = GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_7;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
GPIO_InitStruct.Alternate = GPIO_AF11_ETH;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
GPIO_InitStruct.Pin = GPIO_PIN_11|GPIO_PIN_13|GPIO_PIN_14;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
GPIO_InitStruct.Alternate = GPIO_AF11_ETH;
HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
/
USER CODE BEGIN ETH_MspInit 1 /
/
USER CODE END ETH_MspInit 1 */
}
}

STEP6 中是能lwip的協(xié)議棧,雙擊工程下的RT—Thread Settings,選擇組件,選擇lwIP。右鍵lwIP選擇配置項(xiàng)進(jìn)行配置,選擇版本等參數(shù)。選擇的是v2.0.2。保存配置,等待下載即可。

1.jpg

對(duì)程序進(jìn)行編譯,編譯正常下載,查看打印信息。

在中斷,可看到打印信息 lwIP-2.0.2 initialized! 。使用ping指令ping 筆記本ip,可正常ping通。

1.jpg

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

    關(guān)注

    22

    文章

    3679

    瀏覽量

    113274
  • LwIP協(xié)議棧
    +關(guān)注

    關(guān)注

    0

    文章

    19

    瀏覽量

    7322
  • LAN8720
    +關(guān)注

    關(guān)注

    0

    文章

    4

    瀏覽量

    11014
  • STM32F407
    +關(guān)注

    關(guān)注

    15

    文章

    187

    瀏覽量

    29292
  • RT-Thread
    +關(guān)注

    關(guān)注

    31

    文章

    1249

    瀏覽量

    39723
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Cube+lwip配置的只有LAN8742,如何改成LAN8720?

    Cube+lwip配置的只有LAN8742,如何改成LAN8720,現(xiàn)在項(xiàng)目需要,用Cube配置的有點(diǎn)暈了!
    發(fā)表于 04-15 07:53

    如何使用RT-Thread Studio添加以太網(wǎng)驅(qū)動(dòng)和lwIP協(xié)議?

    lwIP 協(xié)議 在前面的配置我們已經(jīng)配置好了 ETH 相關(guān)的硬件部分驅(qū)動(dòng),接下來就需要配置 lwIP
    發(fā)表于 03-29 06:29

    Lan8720以太網(wǎng)芯片操作系統(tǒng)

    硬件資源:正點(diǎn)原子stm32f407 探索者開發(fā)板,板載Lan8720以太網(wǎng)芯片操作系統(tǒng):rt-thread 4.0.1實(shí)驗(yàn)?zāi)康模?.實(shí)現(xiàn)ping功能,能夠ping通外網(wǎng)2.實(shí)現(xiàn)Telnet功能
    發(fā)表于 08-05 07:04

    網(wǎng)絡(luò)協(xié)議-lwip2.1.2移植

    本篇目標(biāo):上一篇freertos的優(yōu)化(stm32f4_os_app),RTOS的移植已經(jīng)告一段落了,接下來就是移植重要的網(wǎng)絡(luò)協(xié)議-lwip2.1.2!硬件配置:STM32_ETH
    發(fā)表于 08-16 08:08

    怎樣去設(shè)計(jì)一種基于stm32f407和Lan8720rt-thread操作系統(tǒng)

    rt-thread操作系統(tǒng)有哪些功能?怎樣去設(shè)計(jì)一種基于stm32f407和Lan8720rt-thread操作系統(tǒng)?
    發(fā)表于 10-26 06:03

    如何在RT-Thread Studio移植LAN8720A驅(qū)動(dòng)的基礎(chǔ)上打開lwIP和SA呢

    如何在RT-Thread Studio移植LAN8720A驅(qū)動(dòng)的基礎(chǔ)上打開lwIP和SA呢?有哪些操作流程呢?
    發(fā)表于 03-01 06:13

    SC0085 AT32在RT-Thread上運(yùn)行LwIP協(xié)議

    示例目的演示在RT-Thread上運(yùn)行LwIP協(xié)議,并搭建一個(gè)UDP echo server支持型號(hào)列表:支持型號(hào)AT32F407xxAT32F437xx主要使用外設(shè)列表:主要使用外
    發(fā)表于 08-23 20:40

    RT-ThreadLan8720lwip協(xié)議的使用

    */  }  }  step6lwip,rt - thread設(shè)置,選擇選擇組件,選擇
    發(fā)表于 02-13 14:55

    RT-Thread的mymqtt軟件包添加步驟與使用方法

    文章 RT-ThreadLan8720lwip協(xié)議的使用的工程基礎(chǔ)上添加mymqtt軟件包
    發(fā)表于 02-13 14:58

    RT-ThreadLan8720a和lwip基礎(chǔ)上移植ntp的步驟

    開發(fā)環(huán)境:野火的stm32f407,rt-thread studio版本是版本: 2.2.6,stm32f4的資源包為0.2.2。以RT-ThreadLan8720
    發(fā)表于 02-15 11:21

    RT-Thread移植使用webserver的流程

    ,stm32f4的資源包為0.2.2,rt-thread版本為4.0.3。以RT-ThreadLan8720lwip
    發(fā)表于 02-22 15:10

    RT-Thread使用webserver的步驟

    sTM32F407,rt-thead studio版本版本:2.2.6 .3。以RT-ThreadLan8720lwip
    發(fā)表于 02-24 14:47

    CubeMX創(chuàng)建裸機(jī)工程:STM32F407+ LAN8720A + RMII + lwIP

    MCU和PHY芯片接口:RMII操作系統(tǒng):無TCP/IP網(wǎng)絡(luò)協(xié)議lwIP配置工具:CubeMX編譯工具:Keil5燒錄器:J-Link燒錄模式:SWD原理圖部分STM32F407與PHY芯片
    發(fā)表于 12-05 12:06 ?110次下載
    CubeMX創(chuàng)建裸機(jī)工程:STM32F407+ <b class='flag-5'>LAN8720</b>A + RMII + <b class='flag-5'>lwIP</b>

    RT-ThreadLan8720a和 lwip基礎(chǔ)上移植ntp流程

    開發(fā)環(huán)境:野火的stm32f407,rt-thread studio版本是版本: 2.2.6,stm32f4的資源包為0.2.2。以RT-ThreadLan8720
    的頭像 發(fā)表于 10-12 16:59 ?1625次閱讀
    <b class='flag-5'>RT-Thread</b>在<b class='flag-5'>Lan8720</b>a和 <b class='flag-5'>lwip</b>基礎(chǔ)上移植ntp流程

    RT-Threadmymqtt軟件包的使用方法

    在上一篇文章 RT-ThreadLan8720lwip協(xié)議的使用的工程基礎(chǔ)上添加mymqt
    的頭像 發(fā)表于 10-13 10:44 ?863次閱讀
    <b class='flag-5'>RT-Thread</b><b class='flag-5'>中</b>mymqtt軟件包的使用方法