|
发表于 2019-11-28 22:02:42
|
显示全部楼层
- #if defined(RTE_DEVICE_FRAMEWORK_CLASSIC)
- /* Ethernet Pin definitions */
- static const ETH_PIN eth_pins[] = {
- { MX_ETH_MDC_GPIOx, MX_ETH_MDC_GPIO_Pin, 0U }, /* MII, RMII */
- { MX_ETH_MDIO_GPIOx, MX_ETH_MDIO_GPIO_Pin, 0U }, /* MII, RMII */
- { MX_ETH_TXD0_GPIOx, MX_ETH_TXD0_GPIO_Pin, 0U }, /* MII, RMII */
- { MX_ETH_TXD1_GPIOx, MX_ETH_TXD1_GPIO_Pin, 0U }, /* MII, RMII */
- { MX_ETH_RXD0_GPIOx, MX_ETH_RXD0_GPIO_Pin, 0U }, /* MII, RMII */
- { MX_ETH_RXD1_GPIOx, MX_ETH_RXD1_GPIO_Pin, 0U }, /* MII, RMII */
- { MX_ETH_TX_EN_GPIOx, MX_ETH_TX_EN_GPIO_Pin, 0U }, /* MII, RMII */
- #if (ETH_MII)
- { MX_ETH_TXD2_GPIOx, MX_ETH_TXD2_GPIO_Pin, 0U }, /* MII, ---- */
- { MX_ETH_TXD3_GPIOx, MX_ETH_TXD3_GPIO_Pin, 0U }, /* MII, ---- */
- { MX_ETH_RXD2_GPIOx, MX_ETH_RXD2_GPIO_Pin, 0U }, /* MII, ---- */
- { MX_ETH_RXD3_GPIOx, MX_ETH_RXD3_GPIO_Pin, 0U }, /* MII, ---- */
- { MX_ETH_TX_CLK_GPIOx, MX_ETH_TX_CLK_GPIO_Pin, 0U }, /* MII, ---- */
- { MX_ETH_RX_CLK_GPIOx, MX_ETH_RX_CLK_GPIO_Pin, 0U }, /* MII, ---- */
- { MX_ETH_CRS_GPIOx, MX_ETH_CRS_GPIO_Pin, 0U }, /* MII, ---- */
- { MX_ETH_COL_GPIOx, MX_ETH_COL_GPIO_Pin, 0U }, /* MII, ---- */
- { MX_ETH_RX_DV_GPIOx, MX_ETH_RX_DV_GPIO_Pin, 0U }, /* MII, ---- */
- { MX_ETH_RX_ER_GPIOx, MX_ETH_RX_ER_GPIO_Pin, 0U }, /* MII, ---- */
- #else
- { MX_ETH_CRS_DV_GPIOx, MX_ETH_CRS_DV_GPIO_Pin, 0U }, /* ---, RMII */
- { MX_ETH_REF_CLK_GPIOx, MX_ETH_REF_CLK_GPIO_Pin, 0U }, /* ---, RMII */
- #endif
复制代码- static int32_t Initialize (ARM_ETH_MAC_SignalEvent_t cb_event) {
- #if defined(RTE_DEVICE_FRAMEWORK_CLASSIC)
- GPIO_InitTypeDef GPIO_InitStruct;
- const ETH_PIN *io;
- #endif
- /* Enable SYSCFG clock */
- RCC->APB2ENR |= RCC_APB2ENR_SYSCFGEN;
- #if (ETH_MII == 0)
- SYSCFG->PMC |= SYSCFG_PMC_MII_RMII_SEL;
- #else
- SYSCFG->PMC &= ~SYSCFG_PMC_MII_RMII_SEL;
- #endif
- #if defined(RTE_DEVICE_FRAMEWORK_CLASSIC)
- /* Configure Ethernet pins */
- GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
- GPIO_InitStruct.Pull = GPIO_NOPULL;
- GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;
- GPIO_InitStruct.Alternate = GPIO_AF11_ETH;
- for (io = eth_pins; io != e_pins[sizeof(eth_pins)/sizeof(ETH_PIN)]; io++) {
- Enable_GPIO_Clock (io->port);
- GPIO_InitStruct.Pin = io->pin;
- HAL_GPIO_Init (io->port, &GPIO_InitStruct);
- }
- #else
复制代码 这些都是在 EMAC_STM32F4xx模块里面。 * Driver: Driver_ETH_MAC0 * Configured: via RTE_Device.h configuration file
* Project: Ethernet Media Access (MAC) Driver for STM32F4xx
- for (io = eth_pins; io != e_pins[sizeof(eth_pins)/sizeof(ETH_PIN)]; io++) {
- Enable_GPIO_Clock (io->port);
- GPIO_InitStruct.Pin = io->pin;
- HAL_GPIO_Init (io->port, &GPIO_InitStruct);
- }
复制代码
|
|