= ETH_Init(Ð_InitStructure, ETHERNET_PHY_ADDRESS); } 首先是使能ETH时钟,复位ETH配置。ETH_StructInit函数用于初始化ETH_InitTypeDef结构体,会给每个成员赋予缺省值。接下来是根据需要配置ETH_InitTypeDef结构体变量,关于结构体各个成员意义已在“ETH初始结构体详解”作了分析。最后调用ETH_
stm32f4x7_eth.h有定义了一个ETH外设初始化结构体ETH_InitTypeDef,理解结构体成员可以帮助我们使用ETH功能。初始化结构体成员用于设置ETH工作环境参数,并由ETH相应初始化配置函数或功能函数调用,这些设定参数将会设置ETH相应的寄存器,达到配置ETH工作环境的目的。
ST官方在 ETH_HandleTypeDef的结构体中把ETH_InitTypeDef的结构体也放了进去。 *heth.Init.AutoNegotiation = ETH_AUTONEGOTIATION_ENABLE; * 什么意思呢,我也没懂,注释解释说是否和外部PHY自动协商。我们再深入一点吧,看看如何实现。 #define ETH_AUTONEGOTIATION_ENABLE 0x00000001U ETH_AUTONEGOTIATION_ENABLE 的值...
stm32f4x7_eth.h有定义了一个ETH外设初始化结构体ETH_InitTypeDef,理解结构体成员可以帮助我们使用ETH功能。初始化结构体成员用于设置ETH工作环境参数,并由ETH相应初始化配置函数或功能函数调用,这些设定参数将会设置ETH相应的寄存器,达到配置ETH工作环境的目的。 代码清单 391 ETH_InitTypeDef 1 typedef struct { 2 ...
stm32f4x7_eth.h有定义了一个ETH外设初始化结构体ETH_InitTypeDef,理解结构体成员可以帮助我们使用ETH功能。初始化结构体成员用于设置ETH工作环境参数,并由ETH相应初始化配置函数或功能函数调用,这些设定参数将会设置ETH相应的寄存器,达到配置ETH工作环境的目的。
结构体详解"作了分析。最后调用ETH_Init函数完成配置,ETH_Init函数有两个形参,一个是ETH_InitTypeDef结构体变量,第二个是PHY地址,函数还有一个返回值,用于指示初始化配置是否成功。 代码清单 395 ETH_BSP_Config函数 1 #define GET_PHY_LINK_STATUS() 2 (ETH_ReadPHYRegister...
= ETH_Init(Ð_InitStructure, ETHERNET_PHY_ADDRESS); } 首先是使能ETH时钟,复位ETH配置。ETH_StructInit函数用于初始化ETH_InitTypeDef结构体,会给每个成员赋予缺省值。接下来是根据需要配置ETH_InitTypeDef结构体变量,关于结构体各个成员意义已在“ETH初始...
有关ETH_HandleTypeDef外设管理结构体的成员中,我们只需要关注Instance和Init,这两个成员的变量。至于其他的变量,在调用HAL库的函数时, HAL库会根据外设的不同状态分别赋值,不需要用户关心。下面我们看一下,ETH的初始化结构体。 代码清单:ETH-2 ETH_InitTypeDef(文件stm32h7xx_hal_eth.h) 1 2 3 4 5 6 7 ty...
代码清单 ETH_InitTypeDef typedef struct { uint32_t AutoNegotiation; // 自适应功能 uint32_t Speed; // 以太网速度 uint32_t DuplexMode; // 以太网工作模式选择 uint16_t PhyAddress; // 以太网PHY地址 uint8_t *MACAddr; // MAC地址指针 uint32_t RxMode; // 以太网接收模式 uint32_t C...
代码清单 ETH_InitTypeDef typedef struct { uint32_t AutoNegotiation; // 自适应功能 uint32_t Speed; // 以太网速度 uint32_t DuplexMode; // 以太网工作模式选择 uint16_t PhyAddress; // 以太网PHY地址 uint8_t *MACAddr; // MAC地址指针 uint32_t RxMode; // 以太网接收模式 uint32_t Checksu...