/** * @brief DeInitializes the SD MSP. * @param hsd: SD handle * @param Params : pointer on additional configuration parameters, can be NULL. */ __weak void BSP_SD_MspDeInit(SD_HandleTypeDef *hsd, void *Params) { static DMA_HandleTypeDef dma_rx_handle; static DMA_HandleTypeDef dma_tx_handle; /* Disable NVIC for DMA transfer complete interrupts */ HAL_NVIC_DisableIRQ(SD_DMAx_Rx_IRQn); HAL_NVIC_DisableIRQ(SD_DMAx_Tx_IRQn); /* Deinitialize the stream for new transfer */ dma_rx_handle.Instance = SD_DMAx_Rx_STREAM; HAL_DMA_DeInit(&dma_rx_handle); /* Deinitialize the stream for new transfer */ dma_tx_handle.Instance = SD_DMAx_Tx_STREAM; HAL_DMA_DeInit(&dma_tx_handle); /* Disable NVIC for SDIO interrupts */ HAL_NVIC_DisableIRQ(SDIO_IRQn); /* DeInit GPIO pins can be done in the application (by surcharging this __weak function) */ /* Disable SDIO clock */ __HAL_RCC_SDIO_CLK_DISABLE(); /* GPOI pins clock and DMA cloks can be shut down in the applic by surcgarging this __weak function */ }
void HAL_SD_MspDeInit(SD_HandleTypeDef* hsd) { if(hsd->Instance==SDIO) { /* USER CODE BEGIN SDIO_MspDeInit 0 */ /* USER CODE END SDIO_MspDeInit 0 */ /* Peripheral clock disable */ __HAL_RCC_SDIO_CLK_DISABLE(); /**SDIO GPIO Configuration PC8 ------> SDIO_D0 PC9 ------> SDIO_D1 PC10 ------> SDIO_D2 PC11 ------> SDIO_D3 PC12 ------> SDIO_CK PD2 ------> SDIO_CMD */ HAL_GPIO_DeInit(GPIOC, GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11 |GPIO_PIN_12); HAL_GPIO_DeInit(GPIOD, GPIO_PIN_2); /* Peripheral interrupt DeInit*/ HAL_NVIC_DisableIRQ(SDIO_IRQn); } /* USER CODE BEGIN SDIO_MspDeInit 1 */ /* USER CODE END SDIO_MspDeInit 1 */ }
void HAL_SD_MspDeInit(SD_HandleTypeDef* hsd) { if(hsd->Instance==SDIO) { /* USER CODE BEGIN SDIO_MspDeInit 0 */ /* USER CODE END SDIO_MspDeInit 0 */ /* Peripheral clock disable */ __HAL_RCC_SDIO_CLK_DISABLE(); /**SDIO GPIO Configuration PC8 ------> SDIO_D0 PC9 ------> SDIO_D1 PC10 ------> SDIO_D2 PC11 ------> SDIO_D3 PC12 ------> SDIO_CK PD2 ------> SDIO_CMD */ HAL_GPIO_DeInit(GPIOC, SDIO_SD1_D0_Pin|SDIO_SD1_D1_Pin|SDIO_SD1_D2_Pin|SDIO_SD1_D3_Pin |SDIO_SD1_CK_Pin); HAL_GPIO_DeInit(SDIO_SD1_CMD_GPIO_Port, SDIO_SD1_CMD_Pin); /* Peripheral DMA DeInit*/ HAL_DMA_DeInit(hsd->hdmarx); HAL_DMA_DeInit(hsd->hdmatx); /* Peripheral interrupt DeInit*/ HAL_NVIC_DisableIRQ(SDIO_IRQn); } /* USER CODE BEGIN SDIO_MspDeInit 1 */ /* USER CODE END SDIO_MspDeInit 1 */ }