STM32L443xx HAL User Manual
Defines
SD Exported Macros
SD

macros to handle interrupts and specific clock configurations More...

Defines

#define __HAL_SD_RESET_HANDLE_STATE(__HANDLE__)
 Reset SD handle state.
#define __HAL_SD_ENABLE(__HANDLE__)   __SDMMC_ENABLE((__HANDLE__)->Instance)
 Enable the SD device.
#define __HAL_SD_DISABLE(__HANDLE__)   __SDMMC_DISABLE((__HANDLE__)->Instance)
 Disable the SD device.
#define __HAL_SD_DMA_ENABLE(__HANDLE__)   __SDMMC_DMA_ENABLE((__HANDLE__)->Instance)
 Enable the SDMMC DMA transfer.
#define __HAL_SD_DMA_DISABLE(__HANDLE__)   __SDMMC_DMA_DISABLE((__HANDLE__)->Instance)
 Disable the SDMMC DMA transfer.
#define __HAL_SD_ENABLE_IT(__HANDLE__, __INTERRUPT__)   __SDMMC_ENABLE_IT((__HANDLE__)->Instance, (__INTERRUPT__))
 Enable the SD device interrupt.
#define __HAL_SD_DISABLE_IT(__HANDLE__, __INTERRUPT__)   __SDMMC_DISABLE_IT((__HANDLE__)->Instance, (__INTERRUPT__))
 Disable the SD device interrupt.
#define __HAL_SD_GET_FLAG(__HANDLE__, __FLAG__)   __SDMMC_GET_FLAG((__HANDLE__)->Instance, (__FLAG__))
 Check whether the specified SD flag is set or not.
#define __HAL_SD_CLEAR_FLAG(__HANDLE__, __FLAG__)   __SDMMC_CLEAR_FLAG((__HANDLE__)->Instance, (__FLAG__))
 Clear the SD's pending flags.
#define __HAL_SD_GET_IT(__HANDLE__, __INTERRUPT__)   __SDMMC_GET_IT((__HANDLE__)->Instance, (__INTERRUPT__))
 Check whether the specified SD interrupt has occurred or not.
#define __HAL_SD_CLEAR_IT(__HANDLE__, __INTERRUPT__)   __SDMMC_CLEAR_IT((__HANDLE__)->Instance, (__INTERRUPT__))
 Clear the SD's interrupt pending bits.

Detailed Description

macros to handle interrupts and specific clock configurations


Define Documentation

#define __HAL_SD_CLEAR_FLAG (   __HANDLE__,
  __FLAG__ 
)    __SDMMC_CLEAR_FLAG((__HANDLE__)->Instance, (__FLAG__))

Clear the SD's pending flags.

Parameters:
__HANDLE__SD Handle
__FLAG__specifies the flag to clear. This parameter can be one or a combination of the following values:
  • SDMMC_FLAG_CCRCFAIL: Command response received (CRC check failed)
  • SDMMC_FLAG_DCRCFAIL: Data block sent/received (CRC check failed)
  • SDMMC_FLAG_CTIMEOUT: Command response timeout
  • SDMMC_FLAG_DTIMEOUT: Data timeout
  • SDMMC_FLAG_TXUNDERR: Transmit FIFO underrun error
  • SDMMC_FLAG_RXOVERR: Received FIFO overrun error
  • SDMMC_FLAG_CMDREND: Command response received (CRC check passed)
  • SDMMC_FLAG_CMDSENT: Command sent (no response required)
  • SDMMC_FLAG_DATAEND: Data end (data counter, DATACOUNT, is zero)
  • SDMMC_FLAG_DHOLD: Data transfer Hold
  • SDMMC_FLAG_DBCKEND: Data block sent/received (CRC check passed)
  • SDMMC_FLAG_DABORT: Data transfer aborted by CMD12
  • SDMMC_FLAG_BUSYD0END: End of SDMMC_D0 Busy following a CMD response detected
  • SDMMC_FLAG_SDIOIT: SDIO interrupt received
  • SDMMC_FLAG_ACKFAIL: Boot Acknowledgment received
  • SDMMC_FLAG_ACKTIMEOUT: Boot Acknowledgment timeout
  • SDMMC_FLAG_VSWEND: Voltage switch critical timing section completion
  • SDMMC_FLAG_CKSTOP: SDMMC_CK stopped in Voltage switch procedure
  • SDMMC_FLAG_IDMATE: IDMA transfer error
  • SDMMC_FLAG_IDMABTC: IDMA buffer transfer complete
Return values:
None

Definition at line 607 of file stm32l4xx_hal_sd.h.

Referenced by HAL_SD_Abort(), HAL_SD_Abort_IT(), HAL_SD_ConfigWideBusOperation(), HAL_SD_Erase(), HAL_SD_GetCardCSD(), HAL_SD_GetCardStatus(), HAL_SD_InitCard(), HAL_SD_IRQHandler(), HAL_SD_ReadBlocks(), HAL_SD_ReadBlocks_DMA(), HAL_SD_ReadBlocks_IT(), HAL_SD_WriteBlocks(), HAL_SD_WriteBlocks_DMA(), HAL_SD_WriteBlocks_IT(), SD_DMAError(), SD_DMAReceiveCplt(), SD_DMARxAbort(), SD_DMATxAbort(), SD_FindSCR(), and SD_SendSDStatus().

#define __HAL_SD_CLEAR_IT (   __HANDLE__,
  __INTERRUPT__ 
)    __SDMMC_CLEAR_IT((__HANDLE__)->Instance, (__INTERRUPT__))

Clear the SD's interrupt pending bits.

Parameters:
__HANDLE__SD Handle
__INTERRUPT__specifies the interrupt pending bit to clear. This parameter can be one or a combination of the following values:
  • SDMMC_IT_CCRCFAIL: Command response received (CRC check failed) interrupt
  • SDMMC_IT_DCRCFAIL: Data block sent/received (CRC check failed) interrupt
  • SDMMC_IT_CTIMEOUT: Command response timeout interrupt
  • SDMMC_IT_DTIMEOUT: Data timeout interrupt
  • SDMMC_IT_TXUNDERR: Transmit FIFO underrun error interrupt
  • SDMMC_IT_RXOVERR: Received FIFO overrun error interrupt
  • SDMMC_IT_CMDREND: Command response received (CRC check passed) interrupt
  • SDMMC_IT_CMDSENT: Command sent (no response required) interrupt
  • SDMMC_IT_DATAEND: Data end (data counter, DATACOUNT, is zero) interrupt
  • SDMMC_IT_DHOLD: Data transfer Hold interrupt
  • SDMMC_IT_DBCKEND: Data block sent/received (CRC check passed) interrupt
  • SDMMC_IT_DABORT: Data transfer aborted by CMD12 interrupt
  • SDMMC_IT_BUSYD0END: End of SDMMC_D0 Busy following a CMD response detected interrupt
  • SDMMC_IT_SDIOIT: SDIO interrupt received interrupt
  • SDMMC_IT_ACKFAIL: Boot Acknowledgment received interrupt
  • SDMMC_IT_ACKTIMEOUT: Boot Acknowledgment timeout interrupt
  • SDMMC_IT_VSWEND: Voltage switch critical timing section completion interrupt
  • SDMMC_IT_CKSTOP: SDMMC_CK stopped in Voltage switch procedure interrupt
  • SDMMC_IT_IDMABTC: IDMA buffer transfer complete interrupt
Return values:
None

Definition at line 674 of file stm32l4xx_hal_sd.h.

#define __HAL_SD_DISABLE (   __HANDLE__)    __SDMMC_DISABLE((__HANDLE__)->Instance)

Disable the SD device.

Return values:
None

Definition at line 444 of file stm32l4xx_hal_sd.h.

Referenced by HAL_SD_InitCard().

#define __HAL_SD_DISABLE_IT (   __HANDLE__,
  __INTERRUPT__ 
)    __SDMMC_DISABLE_IT((__HANDLE__)->Instance, (__INTERRUPT__))

Disable the SD device interrupt.

Parameters:
__HANDLE__SD Handle
__INTERRUPT__specifies the SDMMC interrupt sources to be disabled. This parameter can be one or a combination of the following values:
  • SDMMC_IT_CCRCFAIL: Command response received (CRC check failed) interrupt
  • SDMMC_IT_DCRCFAIL: Data block sent/received (CRC check failed) interrupt
  • SDMMC_IT_CTIMEOUT: Command response timeout interrupt
  • SDMMC_IT_DTIMEOUT: Data timeout interrupt
  • SDMMC_IT_TXUNDERR: Transmit FIFO underrun error interrupt
  • SDMMC_IT_RXOVERR: Received FIFO overrun error interrupt
  • SDMMC_IT_CMDREND: Command response received (CRC check passed) interrupt
  • SDMMC_IT_CMDSENT: Command sent (no response required) interrupt
  • SDMMC_IT_DATAEND: Data end (data counter, DATACOUNT, is zero) interrupt
  • SDMMC_IT_DHOLD: Data transfer Hold interrupt
  • SDMMC_IT_DBCKEND: Data block sent/received (CRC check passed) interrupt
  • SDMMC_IT_DABORT: Data transfer aborted by CMD12 interrupt
  • SDMMC_IT_CMDACT: Command transfer in progress interrupt
  • SDMMC_IT_TXACT: Data transmit in progress interrupt
  • SDMMC_IT_RXACT: Data receive in progress interrupt
  • SDMMC_IT_TXFIFOHE: Transmit FIFO Half Empty interrupt
  • SDMMC_IT_RXFIFOHF: Receive FIFO Half Full interrupt
  • SDMMC_IT_TXFIFOF: Transmit FIFO full interrupt
  • SDMMC_IT_RXFIFOF: Receive FIFO full interrupt
  • SDMMC_IT_TXFIFOE: Transmit FIFO empty interrupt
  • SDMMC_IT_RXFIFOE: Receive FIFO empty interrupt
  • SDMMC_IT_TXDAVL: Data available in transmit FIFO interrupt
  • SDMMC_IT_RXDAVL: Data available in receive FIFO interrupt
  • SDMMC_IT_BUSYD0END: End of SDMMC_D0 Busy following a CMD response detected interrupt
  • SDMMC_IT_SDIOIT: SDIO interrupt received interrupt
  • SDMMC_IT_ACKFAIL: Boot Acknowledgment received interrupt
  • SDMMC_IT_ACKTIMEOUT: Boot Acknowledgment timeout interrupt
  • SDMMC_IT_VSWEND: Voltage switch critical timing section completion interrupt
  • SDMMC_IT_CKSTOP: SDMMC_CK stopped in Voltage switch procedure interrupt
  • SDMMC_IT_IDMABTC: IDMA buffer transfer complete interrupt
Return values:
None

Definition at line 535 of file stm32l4xx_hal_sd.h.

Referenced by HAL_SD_Abort(), HAL_SD_Abort_IT(), HAL_SD_IRQHandler(), and SD_DMAError().

#define __HAL_SD_DMA_DISABLE (   __HANDLE__)    __SDMMC_DMA_DISABLE((__HANDLE__)->Instance)

Disable the SDMMC DMA transfer.

Return values:
None

Definition at line 456 of file stm32l4xx_hal_sd.h.

#define __HAL_SD_DMA_ENABLE (   __HANDLE__)    __SDMMC_DMA_ENABLE((__HANDLE__)->Instance)

Enable the SDMMC DMA transfer.

Return values:
None

Definition at line 450 of file stm32l4xx_hal_sd.h.

Referenced by HAL_SD_ReadBlocks_DMA(), and HAL_SD_WriteBlocks_DMA().

#define __HAL_SD_ENABLE (   __HANDLE__)    __SDMMC_ENABLE((__HANDLE__)->Instance)

Enable the SD device.

Return values:
None

Definition at line 438 of file stm32l4xx_hal_sd.h.

Referenced by HAL_SD_InitCard().

#define __HAL_SD_ENABLE_IT (   __HANDLE__,
  __INTERRUPT__ 
)    __SDMMC_ENABLE_IT((__HANDLE__)->Instance, (__INTERRUPT__))

Enable the SD device interrupt.

Parameters:
__HANDLE__SD Handle
__INTERRUPT__specifies the SDMMC interrupt sources to be enabled. This parameter can be one or a combination of the following values:
  • SDMMC_IT_CCRCFAIL: Command response received (CRC check failed) interrupt
  • SDMMC_IT_DCRCFAIL: Data block sent/received (CRC check failed) interrupt
  • SDMMC_IT_CTIMEOUT: Command response timeout interrupt
  • SDMMC_IT_DTIMEOUT: Data timeout interrupt
  • SDMMC_IT_TXUNDERR: Transmit FIFO underrun error interrupt
  • SDMMC_IT_RXOVERR: Received FIFO overrun error interrupt
  • SDMMC_IT_CMDREND: Command response received (CRC check passed) interrupt
  • SDMMC_IT_CMDSENT: Command sent (no response required) interrupt
  • SDMMC_IT_DATAEND: Data end (data counter, DATACOUNT, is zero) interrupt
  • SDMMC_IT_DHOLD: Data transfer Hold interrupt
  • SDMMC_IT_DBCKEND: Data block sent/received (CRC check passed) interrupt
  • SDMMC_IT_DABORT: Data transfer aborted by CMD12 interrupt
  • SDMMC_IT_CMDACT: Command transfer in progress interrupt
  • SDMMC_IT_TXACT: Data transmit in progress interrupt
  • SDMMC_IT_RXACT: Data receive in progress interrupt
  • SDMMC_IT_TXFIFOHE: Transmit FIFO Half Empty interrupt
  • SDMMC_IT_RXFIFOHF: Receive FIFO Half Full interrupt
  • SDMMC_IT_TXFIFOF: Transmit FIFO full interrupt
  • SDMMC_IT_RXFIFOF: Receive FIFO full interrupt
  • SDMMC_IT_TXFIFOE: Transmit FIFO empty interrupt
  • SDMMC_IT_RXFIFOE: Receive FIFO empty interrupt
  • SDMMC_IT_TXDAVL: Data available in transmit FIFO interrupt
  • SDMMC_IT_RXDAVL: Data available in receive FIFO interrupt
  • SDMMC_IT_BUSYD0END: End of SDMMC_D0 Busy following a CMD response detected interrupt
  • SDMMC_IT_SDIOIT: SDIO interrupt received interrupt
  • SDMMC_IT_ACKFAIL: Boot Acknowledgment received interrupt
  • SDMMC_IT_ACKTIMEOUT: Boot Acknowledgment timeout interrupt
  • SDMMC_IT_VSWEND: Voltage switch critical timing section completion interrupt
  • SDMMC_IT_CKSTOP: SDMMC_CK stopped in Voltage switch procedure interrupt
  • SDMMC_IT_IDMABTC: IDMA buffer transfer complete interrupt
Return values:
None

Definition at line 496 of file stm32l4xx_hal_sd.h.

Referenced by HAL_SD_ReadBlocks_DMA(), HAL_SD_ReadBlocks_IT(), HAL_SD_WriteBlocks_DMA(), HAL_SD_WriteBlocks_IT(), and SD_DMATransmitCplt().

#define __HAL_SD_GET_FLAG (   __HANDLE__,
  __FLAG__ 
)    __SDMMC_GET_FLAG((__HANDLE__)->Instance, (__FLAG__))

Check whether the specified SD flag is set or not.

Parameters:
__HANDLE__SD Handle
__FLAG__specifies the flag to check. This parameter can be one of the following values:
  • SDMMC_FLAG_CCRCFAIL: Command response received (CRC check failed)
  • SDMMC_FLAG_DCRCFAIL: Data block sent/received (CRC check failed)
  • SDMMC_FLAG_CTIMEOUT: Command response timeout
  • SDMMC_FLAG_DTIMEOUT: Data timeout
  • SDMMC_FLAG_TXUNDERR: Transmit FIFO underrun error
  • SDMMC_FLAG_RXOVERR: Received FIFO overrun error
  • SDMMC_FLAG_CMDREND: Command response received (CRC check passed)
  • SDMMC_FLAG_CMDSENT: Command sent (no response required)
  • SDMMC_FLAG_DATAEND: Data end (data counter, DATACOUNT, is zero)
  • SDMMC_FLAG_DHOLD: Data transfer Hold
  • SDMMC_FLAG_DBCKEND: Data block sent/received (CRC check passed)
  • SDMMC_FLAG_DABORT: Data transfer aborted by CMD12
  • SDMMC_FLAG_DPSMACT: Data path state machine active
  • SDMMC_FLAG_CPSMACT: Command path state machine active
  • SDMMC_FLAG_CMDACT: Command transfer in progress
  • SDMMC_FLAG_TXACT: Data transmit in progress
  • SDMMC_FLAG_RXACT: Data receive in progress
  • SDMMC_FLAG_TXFIFOHE: Transmit FIFO Half Empty
  • SDMMC_FLAG_RXFIFOHF: Receive FIFO Half Full
  • SDMMC_FLAG_TXFIFOF: Transmit FIFO full
  • SDMMC_FLAG_RXFIFOF: Receive FIFO full
  • SDMMC_FLAG_TXFIFOE: Transmit FIFO empty
  • SDMMC_FLAG_RXFIFOE: Receive FIFO empty
  • SDMMC_FLAG_BUSYD0: Inverted value of SDMMC_D0 line (Busy)
  • SDMMC_FLAG_BUSYD0END: End of SDMMC_D0 Busy following a CMD response detected
  • SDMMC_FLAG_TXDAVL: Data available in transmit FIFO
  • SDMMC_FLAG_RXDAVL: Data available in receive FIFO
  • SDMMC_FLAG_SDIOIT: SDIO interrupt received
  • SDMMC_FLAG_ACKFAIL: Boot Acknowledgment received
  • SDMMC_FLAG_ACKTIMEOUT: Boot Acknowledgment timeout
  • SDMMC_FLAG_VSWEND: Voltage switch critical timing section completion
  • SDMMC_FLAG_CKSTOP: SDMMC_CK stopped in Voltage switch procedure
  • SDMMC_FLAG_IDMATE: IDMA transfer error
  • SDMMC_FLAG_IDMABTC: IDMA buffer transfer complete
Return values:
Thenew state of SD FLAG (SET or RESET).

Definition at line 578 of file stm32l4xx_hal_sd.h.

Referenced by HAL_SD_IRQHandler(), HAL_SD_ReadBlocks(), HAL_SD_WriteBlocks(), SD_FindSCR(), and SD_SendSDStatus().

#define __HAL_SD_GET_IT (   __HANDLE__,
  __INTERRUPT__ 
)    __SDMMC_GET_IT((__HANDLE__)->Instance, (__INTERRUPT__))

Check whether the specified SD interrupt has occurred or not.

Parameters:
__HANDLE__SD Handle
__INTERRUPT__specifies the SDMMC interrupt source to check. This parameter can be one of the following values:
  • SDMMC_IT_CCRCFAIL: Command response received (CRC check failed) interrupt
  • SDMMC_IT_DCRCFAIL: Data block sent/received (CRC check failed) interrupt
  • SDMMC_IT_CTIMEOUT: Command response timeout interrupt
  • SDMMC_IT_DTIMEOUT: Data timeout interrupt
  • SDMMC_IT_TXUNDERR: Transmit FIFO underrun error interrupt
  • SDMMC_IT_RXOVERR: Received FIFO overrun error interrupt
  • SDMMC_IT_CMDREND: Command response received (CRC check passed) interrupt
  • SDMMC_IT_CMDSENT: Command sent (no response required) interrupt
  • SDMMC_IT_DATAEND: Data end (data counter, DATACOUNT, is zero) interrupt
  • SDMMC_IT_DHOLD: Data transfer Hold interrupt
  • SDMMC_IT_DBCKEND: Data block sent/received (CRC check passed) interrupt
  • SDMMC_IT_DABORT: Data transfer aborted by CMD12 interrupt
  • SDMMC_IT_CMDACT: Command transfer in progress interrupt
  • SDMMC_IT_TXACT: Data transmit in progress interrupt
  • SDMMC_IT_RXACT: Data receive in progress interrupt
  • SDMMC_IT_TXFIFOHE: Transmit FIFO Half Empty interrupt
  • SDMMC_IT_RXFIFOHF: Receive FIFO Half Full interrupt
  • SDMMC_IT_TXFIFOF: Transmit FIFO full interrupt
  • SDMMC_IT_RXFIFOF: Receive FIFO full interrupt
  • SDMMC_IT_TXFIFOE: Transmit FIFO empty interrupt
  • SDMMC_IT_RXFIFOE: Receive FIFO empty interrupt
  • SDMMC_IT_TXDAVL: Data available in transmit FIFO interrupt
  • SDMMC_IT_RXDAVL: Data available in receive FIFO interrupt
  • SDMMC_IT_BUSYD0END: End of SDMMC_D0 Busy following a CMD response detected interrupt
  • SDMMC_IT_SDIOIT: SDIO interrupt received interrupt
  • SDMMC_IT_ACKFAIL: Boot Acknowledgment received interrupt
  • SDMMC_IT_ACKTIMEOUT: Boot Acknowledgment timeout interrupt
  • SDMMC_IT_VSWEND: Voltage switch critical timing section completion interrupt
  • SDMMC_IT_CKSTOP: SDMMC_CK stopped in Voltage switch procedure interrupt
  • SDMMC_IT_IDMABTC: IDMA buffer transfer complete interrupt
Return values:
Thenew state of SD IT (SET or RESET).

Definition at line 646 of file stm32l4xx_hal_sd.h.

#define __HAL_SD_RESET_HANDLE_STATE (   __HANDLE__)
Value:
do {                                              \
                                                               (__HANDLE__)->State = HAL_SD_STATE_RESET; \
                                                               (__HANDLE__)->MspInitCallback = NULL;       \
                                                               (__HANDLE__)->MspDeInitCallback = NULL;     \
                                                             } while(0)

Reset SD handle state.

Parameters:
__HANDLE__: SD handle.
Return values:
None

Definition at line 424 of file stm32l4xx_hal_sd.h.