基于RT Thread的ETH应用(一)

本文详细介绍了如何在STM32平台上配置以太网接口,使用CubeMX设置时钟和ETH参数,修改HAL_Config文件,启用LWIP堆栈,并实现TCP客户端功能。通过一系列步骤,包括在board.c中添加HAL_ETH_MspInit函数,定义PHY复位函数,设置网络参数,最终能够成功获取IP地址并实现与远程服务器的TCP连接。

基于RTT的ETH应用(一)

实现目的:通过ETH实现互联网访问

1.CubeMX配置相关参数

1.1配置时钟参数

在这里插入图片描述

1.2配置ETH

在这里插入图片描述

本文采用正点原子F4探索者,故相关配置引脚不能使用cubemx默认,根据原理图进行配置
在这里插入图片描述

1.3 Rt thread Studio设置

1.3.1进入board.h查看说明

/** 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
 *
 */

那就跟着步骤来吧

1.3.2在board.c 加入Cubemx生成的代码

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     ------>
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值