|
发表于 2021-7-9 18:17:48
|
显示全部楼层
放在标准位置,正常吗
- /*
- *********************************************************************************************************
- * 函 数 名: HAL_ETH_MspInit
- * 功能说明: 以太网初始化调用的底层回调,用于初始化IO,时钟和中断
- * 形 参: ---
- * 返 回 值: 无
- *********************************************************************************************************
- */
- void HAL_ETH_MspInit(ETH_HandleTypeDef* heth)
- {
- GPIO_InitTypeDef GPIO_InitStruct;
- /*
- PC1 ------> ETH_MDC
- PA1 ------> ETH_REF_CLK
- PA2 ------> ETH_MDIO
- PA7 ------> ETH_CRS_DV
- PC4 ------> ETH_RXD0
- PC5 ------> ETH_RXD1
- PB13 ------> ETH_TXD1
- PG11 ------> ETH_TX_EN
- PG13 ------> ETH_TXD0
- */
- if(heth->Instance==ETH)
- {
- /* 使能外设时钟 */
- __HAL_RCC_ETH1MAC_CLK_ENABLE();
- __HAL_RCC_ETH1TX_CLK_ENABLE();
- __HAL_RCC_ETH1RX_CLK_ENABLE();
- /* 使能时钟 */
- __HAL_RCC_GPIOA_CLK_ENABLE();
- __HAL_RCC_GPIOB_CLK_ENABLE();
- __HAL_RCC_GPIOC_CLK_ENABLE();
- __HAL_RCC_GPIOG_CLK_ENABLE();
-
- /* 配置PA1, PA2 , PA7 */
- GPIO_InitStruct.Pin = GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_7;
- GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_MEDIUM;
- GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
- GPIO_InitStruct.Pull = GPIO_NOPULL ;
- GPIO_InitStruct.Alternate = GPIO_AF11_ETH;
- HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
- /* 配置PB13 */
- GPIO_InitStruct.Pin = GPIO_PIN_13;
- HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
- /* 配置PC1, PC4和PC5 */
- GPIO_InitStruct.Pin = GPIO_PIN_1 | GPIO_PIN_4 | GPIO_PIN_5;
- HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
- /* 配置PG11, PG12和PG13 */
- GPIO_InitStruct.Pin = GPIO_PIN_11 | GPIO_PIN_13;
- HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
- /* 设置中断优先级 */
- HAL_NVIC_SetPriority(ETH_IRQn, 3, 0);
- HAL_NVIC_EnableIRQ(ETH_IRQn);
- }
- }
复制代码
|
|