Initializes the SD according to the specified parameters in the SD_HandleTypeDef and create the associated handle.
356 #if defined(STM32L4R5xx) || defined(STM32L4R7xx) || defined(STM32L4R9xx) || defined(STM32L4S5xx) || defined(STM32L4S7xx) || defined(STM32L4S9xx) 358 uint32_t speedgrade, unitsize;
371 #if !defined(STM32L4R5xx) && !defined(STM32L4R7xx) && !defined(STM32L4R9xx) && !defined(STM32L4S5xx) && !defined(STM32L4S7xx) && !defined(STM32L4S9xx) 372 assert_param(IS_SDMMC_CLOCK_BYPASS(hsd->Init.ClockBypass));
374 assert_param(IS_SDMMC_CLOCK_POWER_SAVE(hsd->Init.ClockPowerSave));
376 assert_param(IS_SDMMC_HARDWARE_FLOW_CONTROL(hsd->Init.HardwareFlowControl));
379 if(hsd->State == HAL_SD_STATE_RESET)
383 #if defined (USE_HAL_SD_REGISTER_CALLBACKS) && (USE_HAL_SD_REGISTER_CALLBACKS == 1U) 389 #if defined(STM32L4R5xx) || defined(STM32L4R7xx) || defined(STM32L4R9xx) || defined(STM32L4S5xx) || defined(STM32L4S7xx) || defined(STM32L4S9xx) 397 if(hsd->MspInitCallback == NULL)
403 hsd->MspInitCallback(hsd);
410 hsd->State = HAL_SD_STATE_BUSY;
418 #if defined(STM32L4R5xx) || defined(STM32L4R7xx) || defined(STM32L4R9xx) || defined(STM32L4S5xx) || defined(STM32L4S7xx) || defined(STM32L4S9xx) 426 if ((hsd->SdCard.CardType == CARD_SDHC_SDXC) && ((speedgrade != 0U) || (unitsize != 0U)))
428 hsd->SdCard.CardSpeed = CARD_ULTRA_HIGH_SPEED;
432 if (hsd->SdCard.CardType == CARD_SDHC_SDXC)
434 hsd->SdCard.CardSpeed = CARD_HIGH_SPEED;
438 hsd->SdCard.CardSpeed = CARD_NORMAL_SPEED;
454 hsd->ErrorCode = HAL_SD_ERROR_TIMEOUT;
455 hsd->State= HAL_SD_STATE_READY;
462 hsd->ErrorCode = HAL_SD_ERROR_NONE;
465 hsd->Context = SD_CONTEXT_NONE;
468 hsd->State = HAL_SD_STATE_READY;
void HAL_SD_MspInit(SD_HandleTypeDef *hsd)
Initializes the SD MSP.
HAL_StatusTypeDef HAL_SD_GetCardStatus(SD_HandleTypeDef *hsd, HAL_SD_CardStatusTypeDef *pStatus)
Gets the SD status info.
void HAL_SD_ErrorCallback(SD_HandleTypeDef *hsd)
SD error callbacks.
HAL_StatusTypeDef HAL_SD_ConfigWideBusOperation(SD_HandleTypeDef *hsd, uint32_t WideMode)
Enables wide bus operation for the requested card if supported by card.
uint32_t HAL_GetTick(void)
Provide a tick value in millisecond.
HAL_StatusTypeDef HAL_SD_InitCard(SD_HandleTypeDef *hsd)
Initializes the SD Card.
HAL_SD_CardStateTypeDef HAL_SD_GetCardState(SD_HandleTypeDef *hsd)
Gets the current sd card data state.
void HAL_SD_RxCpltCallback(SD_HandleTypeDef *hsd)
Rx Transfer completed callbacks.
__IO uint8_t UhsAllocationUnitSize
void HAL_SDEx_Write_DMADoubleBuffer0CpltCallback(SD_HandleTypeDef *hsd)
Write DMA Buffer 0 Transfer completed callbacks.
void HAL_SDEx_Read_DMADoubleBuffer0CpltCallback(SD_HandleTypeDef *hsd)
Read DMA Buffer 0 Transfer completed callbacks.
void HAL_SDEx_Write_DMADoubleBuffer1CpltCallback(SD_HandleTypeDef *hsd)
Write DMA Buffer 1 Transfer completed callbacks.
__IO uint8_t UhsSpeedGrade
void HAL_SD_AbortCallback(SD_HandleTypeDef *hsd)
SD Abort callbacks.
void HAL_SD_TxCpltCallback(SD_HandleTypeDef *hsd)
Tx Transfer completed callbacks.
void HAL_SDEx_Read_DMADoubleBuffer1CpltCallback(SD_HandleTypeDef *hsd)
Read DMA Buffer 1 Transfer completed callbacks.
void HAL_SDEx_DriveTransceiver_1_8V_Callback(FlagStatus status)
Enable/Disable the SD Transceiver 1.8V Mode Callback.
assert_param(IS_RTC_WAKEUP_CLOCK(WakeUpClock))