STM32H735xx HAL User Manual
Functions
Input and Output operation functions
MMC Exported Functions

Data transfer functions. More...

Functions

HAL_StatusTypeDef HAL_MMC_ReadBlocks (MMC_HandleTypeDef *hmmc, uint8_t *pData, uint32_t BlockAdd, uint32_t NumberOfBlocks, uint32_t Timeout)
 Reads block(s) from a specified address in a card.
HAL_StatusTypeDef HAL_MMC_WriteBlocks (MMC_HandleTypeDef *hmmc, uint8_t *pData, uint32_t BlockAdd, uint32_t NumberOfBlocks, uint32_t Timeout)
 Allows to write block(s) to a specified address in a card.
HAL_StatusTypeDef HAL_MMC_ReadBlocks_IT (MMC_HandleTypeDef *hmmc, uint8_t *pData, uint32_t BlockAdd, uint32_t NumberOfBlocks)
 Reads block(s) from a specified address in a card.
HAL_StatusTypeDef HAL_MMC_WriteBlocks_IT (MMC_HandleTypeDef *hmmc, uint8_t *pData, uint32_t BlockAdd, uint32_t NumberOfBlocks)
 Writes block(s) to a specified address in a card.
HAL_StatusTypeDef HAL_MMC_ReadBlocks_DMA (MMC_HandleTypeDef *hmmc, uint8_t *pData, uint32_t BlockAdd, uint32_t NumberOfBlocks)
 Reads block(s) from a specified address in a card.
HAL_StatusTypeDef HAL_MMC_WriteBlocks_DMA (MMC_HandleTypeDef *hmmc, uint8_t *pData, uint32_t BlockAdd, uint32_t NumberOfBlocks)
 Writes block(s) to a specified address in a card.
HAL_StatusTypeDef HAL_MMC_Erase (MMC_HandleTypeDef *hmmc, uint32_t BlockStartAdd, uint32_t BlockEndAdd)
 Erases the specified memory area of the given MMC card.
void HAL_MMC_IRQHandler (MMC_HandleTypeDef *hmmc)
 This function handles MMC card interrupt request.
HAL_MMC_StateTypeDef HAL_MMC_GetState (MMC_HandleTypeDef *hmmc)
 return the MMC state
uint32_t HAL_MMC_GetError (MMC_HandleTypeDef *hmmc)
 Return the MMC error code.
__weak void HAL_MMC_TxCpltCallback (MMC_HandleTypeDef *hmmc)
 Tx Transfer completed callbacks.
__weak void HAL_MMC_RxCpltCallback (MMC_HandleTypeDef *hmmc)
 Rx Transfer completed callbacks.
__weak void HAL_MMC_ErrorCallback (MMC_HandleTypeDef *hmmc)
 MMC error callbacks.
__weak void HAL_MMC_AbortCallback (MMC_HandleTypeDef *hmmc)
 MMC Abort callbacks.
HAL_StatusTypeDef HAL_MMC_RegisterCallback (MMC_HandleTypeDef *hmmc, HAL_MMC_CallbackIDTypeDef CallbackId, pMMC_CallbackTypeDef pCallback)
 Register a User MMC Callback To be used instead of the weak (surcharged) predefined callback.
HAL_StatusTypeDef HAL_MMC_UnRegisterCallback (MMC_HandleTypeDef *hmmc, HAL_MMC_CallbackIDTypeDef CallbackId)
 Unregister a User MMC Callback MMC Callback is redirected to the weak (surcharged) predefined callback.

Detailed Description

Data transfer functions.

  ==============================================================================
                        ##### IO operation functions #####
  ==============================================================================
  [..]
    This subsection provides a set of functions allowing to manage the data
    transfer from/to MMC card.


Function Documentation

MMC Abort callbacks.

Parameters:
hmmc,:Pointer MMC handle
Return values:
None

Definition at line 1854 of file stm32h7xx_hal_mmc.c.

Referenced by HAL_MMC_Abort_IT(), HAL_MMC_Init(), and HAL_MMC_UnRegisterCallback().

HAL_StatusTypeDef HAL_MMC_Erase ( MMC_HandleTypeDef hmmc,
uint32_t  BlockStartAdd,
uint32_t  BlockEndAdd 
)

MMC error callbacks.

Parameters:
hmmc,:Pointer MMC handle
Return values:
None

Definition at line 1839 of file stm32h7xx_hal_mmc.c.

Referenced by HAL_MMC_Init(), HAL_MMC_IRQHandler(), and HAL_MMC_UnRegisterCallback().

uint32_t HAL_MMC_GetError ( MMC_HandleTypeDef hmmc)

Return the MMC error code.

Parameters:
hmmc: Pointer to a MMC_HandleTypeDef structure that contains the configuration information.
Return values:
MMCError Code

Definition at line 1799 of file stm32h7xx_hal_mmc.c.

References __MMC_HandleTypeDef::ErrorCode.

return the MMC state

Parameters:
hmmc,:Pointer to mmc handle
Return values:
HALstate

Definition at line 1788 of file stm32h7xx_hal_mmc.c.

References __MMC_HandleTypeDef::State.

HAL_StatusTypeDef HAL_MMC_ReadBlocks ( MMC_HandleTypeDef hmmc,
uint8_t *  pData,
uint32_t  BlockAdd,
uint32_t  NumberOfBlocks,
uint32_t  Timeout 
)

Reads block(s) from a specified address in a card.

The Data transfer is managed by polling mode.

Note:
This API should be followed by a check on the card state through HAL_MMC_GetCardState().
Parameters:
hmmc,:Pointer to MMC handle
pData,:pointer to the buffer that will contain the received data
BlockAdd,:Block Address from where data is to be read
NumberOfBlocks,:Number of MMC blocks to read
Timeout,:Specify timeout value
Return values:
HALstatus

Definition at line 596 of file stm32h7xx_hal_mmc.c.

References __HAL_MMC_CLEAR_FLAG, __HAL_MMC_GET_FLAG, HAL_MMC_CardInfoTypeDef::CardType, __MMC_HandleTypeDef::Context, __MMC_HandleTypeDef::ErrorCode, __MMC_HandleTypeDef::Ext_CSD, HAL_GetTick(), HAL_MMC_ERROR_ADDR_MISALIGNED, HAL_MMC_ERROR_ADDR_OUT_OF_RANGE, HAL_MMC_ERROR_BLOCK_LEN_ERR, HAL_MMC_ERROR_BUSY, HAL_MMC_ERROR_DATA_CRC_FAIL, HAL_MMC_ERROR_DATA_TIMEOUT, HAL_MMC_ERROR_NONE, HAL_MMC_ERROR_PARAM, HAL_MMC_ERROR_RX_OVERRUN, HAL_MMC_ERROR_TIMEOUT, HAL_MMC_STATE_BUSY, HAL_MMC_STATE_READY, __MMC_HandleTypeDef::Instance, HAL_MMC_CardInfoTypeDef::LogBlockNbr, MMC_BLOCKSIZE, MMC_CONTEXT_READ_MULTIPLE_BLOCK, MMC_CONTEXT_READ_SINGLE_BLOCK, MMC_EXT_CSD_DATA_SEC_SIZE_INDEX, MMC_EXT_CSD_DATA_SEC_SIZE_POS, MMC_HIGH_CAPACITY_CARD, __MMC_HandleTypeDef::MmcCard, and __MMC_HandleTypeDef::State.

HAL_StatusTypeDef HAL_MMC_ReadBlocks_DMA ( MMC_HandleTypeDef hmmc,
uint8_t *  pData,
uint32_t  BlockAdd,
uint32_t  NumberOfBlocks 
)

Reads block(s) from a specified address in a card.

The Data transfer is managed by DMA mode.

Note:
This API should be followed by a check on the card state through HAL_MMC_GetCardState().
You could also check the DMA transfer process through the MMC Rx interrupt event.
Parameters:
hmmc,:Pointer MMC handle
pData,:Pointer to the buffer that will contain the received data
BlockAdd,:Block Address from where data is to be read
NumberOfBlocks,:Number of blocks to read.
Return values:
HALstatus

Definition at line 1215 of file stm32h7xx_hal_mmc.c.

References __HAL_MMC_CLEAR_FLAG, __HAL_MMC_ENABLE_IT, HAL_MMC_CardInfoTypeDef::CardType, __MMC_HandleTypeDef::Context, __MMC_HandleTypeDef::ErrorCode, __MMC_HandleTypeDef::Ext_CSD, HAL_DMA_ERROR_NONE, HAL_MMC_ERROR_ADDR_MISALIGNED, HAL_MMC_ERROR_ADDR_OUT_OF_RANGE, HAL_MMC_ERROR_BLOCK_LEN_ERR, HAL_MMC_ERROR_NONE, HAL_MMC_ERROR_PARAM, HAL_MMC_STATE_BUSY, HAL_MMC_STATE_READY, __MMC_HandleTypeDef::Instance, HAL_MMC_CardInfoTypeDef::LogBlockNbr, MMC_BLOCKSIZE, MMC_CONTEXT_DMA, MMC_CONTEXT_READ_MULTIPLE_BLOCK, MMC_CONTEXT_READ_SINGLE_BLOCK, MMC_EXT_CSD_DATA_SEC_SIZE_INDEX, MMC_EXT_CSD_DATA_SEC_SIZE_POS, MMC_HIGH_CAPACITY_CARD, __MMC_HandleTypeDef::MmcCard, __MMC_HandleTypeDef::pRxBuffPtr, __MMC_HandleTypeDef::RxXferSize, and __MMC_HandleTypeDef::State.

HAL_StatusTypeDef HAL_MMC_ReadBlocks_IT ( MMC_HandleTypeDef hmmc,
uint8_t *  pData,
uint32_t  BlockAdd,
uint32_t  NumberOfBlocks 
)

Reads block(s) from a specified address in a card.

The Data transfer is managed in interrupt mode.

Note:
This API should be followed by a check on the card state through HAL_MMC_GetCardState().
You could also check the IT transfer process through the MMC Rx interrupt event.
Parameters:
hmmc,:Pointer to MMC handle
pData,:Pointer to the buffer that will contain the received data
BlockAdd,:Block Address from where data is to be read
NumberOfBlocks,:Number of blocks to read.
Return values:
HALstatus

Definition at line 988 of file stm32h7xx_hal_mmc.c.

References __HAL_MMC_CLEAR_FLAG, __HAL_MMC_ENABLE_IT, HAL_MMC_CardInfoTypeDef::CardType, __MMC_HandleTypeDef::Context, __MMC_HandleTypeDef::ErrorCode, __MMC_HandleTypeDef::Ext_CSD, HAL_MMC_ERROR_ADDR_MISALIGNED, HAL_MMC_ERROR_ADDR_OUT_OF_RANGE, HAL_MMC_ERROR_BLOCK_LEN_ERR, HAL_MMC_ERROR_NONE, HAL_MMC_ERROR_PARAM, HAL_MMC_STATE_BUSY, HAL_MMC_STATE_READY, __MMC_HandleTypeDef::Instance, HAL_MMC_CardInfoTypeDef::LogBlockNbr, MMC_BLOCKSIZE, MMC_CONTEXT_IT, MMC_CONTEXT_READ_MULTIPLE_BLOCK, MMC_CONTEXT_READ_SINGLE_BLOCK, MMC_EXT_CSD_DATA_SEC_SIZE_INDEX, MMC_EXT_CSD_DATA_SEC_SIZE_POS, MMC_HIGH_CAPACITY_CARD, __MMC_HandleTypeDef::MmcCard, __MMC_HandleTypeDef::pRxBuffPtr, __MMC_HandleTypeDef::RxXferSize, and __MMC_HandleTypeDef::State.

HAL_StatusTypeDef HAL_MMC_RegisterCallback ( MMC_HandleTypeDef hmmc,
HAL_MMC_CallbackIDTypeDef  CallbackId,
pMMC_CallbackTypeDef  pCallback 
)

Register a User MMC Callback To be used instead of the weak (surcharged) predefined callback.

Parameters:
hmmc: MMC handle
CallbackId: ID of the callback to be registered This parameter can be one of the following values:
pCallback: pointer to the Callback function
Return values:
status

Definition at line 1884 of file stm32h7xx_hal_mmc.c.

References __MMC_HandleTypeDef::AbortCpltCallback, __MMC_HandleTypeDef::ErrorCallback, __MMC_HandleTypeDef::ErrorCode, HAL_MMC_ABORT_CB_ID, HAL_MMC_ERROR_CB_ID, HAL_MMC_ERROR_INVALID_CALLBACK, HAL_MMC_MSP_DEINIT_CB_ID, HAL_MMC_MSP_INIT_CB_ID, HAL_MMC_READ_DMA_DBL_BUF0_CPLT_CB_ID, HAL_MMC_READ_DMA_DBL_BUF1_CPLT_CB_ID, HAL_MMC_RX_CPLT_CB_ID, HAL_MMC_STATE_READY, HAL_MMC_STATE_RESET, HAL_MMC_TX_CPLT_CB_ID, HAL_MMC_WRITE_DMA_DBL_BUF0_CPLT_CB_ID, HAL_MMC_WRITE_DMA_DBL_BUF1_CPLT_CB_ID, __MMC_HandleTypeDef::MspDeInitCallback, __MMC_HandleTypeDef::MspInitCallback, __MMC_HandleTypeDef::Read_DMADblBuf0CpltCallback, __MMC_HandleTypeDef::Read_DMADblBuf1CpltCallback, __MMC_HandleTypeDef::RxCpltCallback, __MMC_HandleTypeDef::State, __MMC_HandleTypeDef::TxCpltCallback, __MMC_HandleTypeDef::Write_DMADblBuf0CpltCallback, and __MMC_HandleTypeDef::Write_DMADblBuf1CpltCallback.

Rx Transfer completed callbacks.

Parameters:
hmmc,:Pointer MMC handle
Return values:
None

Definition at line 1824 of file stm32h7xx_hal_mmc.c.

Referenced by HAL_MMC_Init(), HAL_MMC_IRQHandler(), and HAL_MMC_UnRegisterCallback().

Tx Transfer completed callbacks.

Parameters:
hmmc,:Pointer to MMC handle
Return values:
None

Definition at line 1809 of file stm32h7xx_hal_mmc.c.

Referenced by HAL_MMC_Init(), HAL_MMC_IRQHandler(), and HAL_MMC_UnRegisterCallback().

HAL_StatusTypeDef HAL_MMC_UnRegisterCallback ( MMC_HandleTypeDef hmmc,
HAL_MMC_CallbackIDTypeDef  CallbackId 
)

Unregister a User MMC Callback MMC Callback is redirected to the weak (surcharged) predefined callback.

Parameters:
hmmc: MMC handle
CallbackId: ID of the callback to be unregistered This parameter can be one of the following values:
Return values:
status

Definition at line 1990 of file stm32h7xx_hal_mmc.c.

References __MMC_HandleTypeDef::AbortCpltCallback, __MMC_HandleTypeDef::ErrorCallback, __MMC_HandleTypeDef::ErrorCode, HAL_MMC_ABORT_CB_ID, HAL_MMC_AbortCallback(), HAL_MMC_ERROR_CB_ID, HAL_MMC_ERROR_INVALID_CALLBACK, HAL_MMC_ErrorCallback(), HAL_MMC_MSP_DEINIT_CB_ID, HAL_MMC_MSP_INIT_CB_ID, HAL_MMC_MspDeInit(), HAL_MMC_MspInit(), HAL_MMC_READ_DMA_DBL_BUF0_CPLT_CB_ID, HAL_MMC_READ_DMA_DBL_BUF1_CPLT_CB_ID, HAL_MMC_RX_CPLT_CB_ID, HAL_MMC_RxCpltCallback(), HAL_MMC_STATE_READY, HAL_MMC_STATE_RESET, HAL_MMC_TX_CPLT_CB_ID, HAL_MMC_TxCpltCallback(), HAL_MMC_WRITE_DMA_DBL_BUF0_CPLT_CB_ID, HAL_MMC_WRITE_DMA_DBL_BUF1_CPLT_CB_ID, HAL_MMCEx_Read_DMADoubleBuf0CpltCallback(), HAL_MMCEx_Read_DMADoubleBuf1CpltCallback(), HAL_MMCEx_Write_DMADoubleBuf0CpltCallback(), HAL_MMCEx_Write_DMADoubleBuf1CpltCallback(), __MMC_HandleTypeDef::MspDeInitCallback, __MMC_HandleTypeDef::MspInitCallback, __MMC_HandleTypeDef::Read_DMADblBuf0CpltCallback, __MMC_HandleTypeDef::Read_DMADblBuf1CpltCallback, __MMC_HandleTypeDef::RxCpltCallback, __MMC_HandleTypeDef::State, __MMC_HandleTypeDef::TxCpltCallback, __MMC_HandleTypeDef::Write_DMADblBuf0CpltCallback, and __MMC_HandleTypeDef::Write_DMADblBuf1CpltCallback.

HAL_StatusTypeDef HAL_MMC_WriteBlocks ( MMC_HandleTypeDef hmmc,
uint8_t *  pData,
uint32_t  BlockAdd,
uint32_t  NumberOfBlocks,
uint32_t  Timeout 
)

Allows to write block(s) to a specified address in a card.

The Data transfer is managed by polling mode.

Note:
This API should be followed by a check on the card state through HAL_MMC_GetCardState().
Parameters:
hmmc,:Pointer to MMC handle
pData,:pointer to the buffer that will contain the data to transmit
BlockAdd,:Block Address where data will be written
NumberOfBlocks,:Number of MMC blocks to write
Timeout,:Specify timeout value
Return values:
HALstatus

Definition at line 792 of file stm32h7xx_hal_mmc.c.

References __HAL_MMC_CLEAR_FLAG, __HAL_MMC_GET_FLAG, HAL_MMC_CardInfoTypeDef::CardType, __MMC_HandleTypeDef::Context, __MMC_HandleTypeDef::ErrorCode, __MMC_HandleTypeDef::Ext_CSD, HAL_GetTick(), HAL_MMC_ERROR_ADDR_MISALIGNED, HAL_MMC_ERROR_ADDR_OUT_OF_RANGE, HAL_MMC_ERROR_BLOCK_LEN_ERR, HAL_MMC_ERROR_BUSY, HAL_MMC_ERROR_DATA_CRC_FAIL, HAL_MMC_ERROR_DATA_TIMEOUT, HAL_MMC_ERROR_NONE, HAL_MMC_ERROR_PARAM, HAL_MMC_ERROR_TX_UNDERRUN, HAL_MMC_STATE_BUSY, HAL_MMC_STATE_READY, __MMC_HandleTypeDef::Instance, HAL_MMC_CardInfoTypeDef::LogBlockNbr, MMC_BLOCKSIZE, MMC_CONTEXT_WRITE_MULTIPLE_BLOCK, MMC_CONTEXT_WRITE_SINGLE_BLOCK, MMC_EXT_CSD_DATA_SEC_SIZE_INDEX, MMC_EXT_CSD_DATA_SEC_SIZE_POS, MMC_HIGH_CAPACITY_CARD, __MMC_HandleTypeDef::MmcCard, and __MMC_HandleTypeDef::State.

HAL_StatusTypeDef HAL_MMC_WriteBlocks_DMA ( MMC_HandleTypeDef hmmc,
uint8_t *  pData,
uint32_t  BlockAdd,
uint32_t  NumberOfBlocks 
)

Writes block(s) to a specified address in a card.

The Data transfer is managed by DMA mode.

Note:
This API should be followed by a check on the card state through HAL_MMC_GetCardState().
You could also check the DMA transfer process through the MMC Tx interrupt event.
Parameters:
hmmc,:Pointer to MMC handle
pData,:Pointer to the buffer that will contain the data to transmit
BlockAdd,:Block Address where data will be written
NumberOfBlocks,:Number of blocks to write
Return values:
HALstatus

Definition at line 1330 of file stm32h7xx_hal_mmc.c.

References __HAL_MMC_CLEAR_FLAG, __HAL_MMC_ENABLE_IT, HAL_MMC_CardInfoTypeDef::CardType, __MMC_HandleTypeDef::Context, __MMC_HandleTypeDef::ErrorCode, __MMC_HandleTypeDef::Ext_CSD, HAL_MMC_ERROR_ADDR_MISALIGNED, HAL_MMC_ERROR_ADDR_OUT_OF_RANGE, HAL_MMC_ERROR_BLOCK_LEN_ERR, HAL_MMC_ERROR_NONE, HAL_MMC_ERROR_PARAM, HAL_MMC_STATE_BUSY, HAL_MMC_STATE_READY, __MMC_HandleTypeDef::Instance, HAL_MMC_CardInfoTypeDef::LogBlockNbr, MMC_BLOCKSIZE, MMC_CONTEXT_DMA, MMC_CONTEXT_WRITE_MULTIPLE_BLOCK, MMC_CONTEXT_WRITE_SINGLE_BLOCK, MMC_EXT_CSD_DATA_SEC_SIZE_INDEX, MMC_EXT_CSD_DATA_SEC_SIZE_POS, MMC_HIGH_CAPACITY_CARD, __MMC_HandleTypeDef::MmcCard, __MMC_HandleTypeDef::pTxBuffPtr, __MMC_HandleTypeDef::State, and __MMC_HandleTypeDef::TxXferSize.

HAL_StatusTypeDef HAL_MMC_WriteBlocks_IT ( MMC_HandleTypeDef hmmc,
uint8_t *  pData,
uint32_t  BlockAdd,
uint32_t  NumberOfBlocks 
)

Writes block(s) to a specified address in a card.

The Data transfer is managed in interrupt mode.

Note:
This API should be followed by a check on the card state through HAL_MMC_GetCardState().
You could also check the IT transfer process through the MMC Tx interrupt event.
Parameters:
hmmc,:Pointer to MMC handle
pData,:Pointer to the buffer that will contain the data to transmit
BlockAdd,:Block Address where data will be written
NumberOfBlocks,:Number of blocks to write
Return values:
HALstatus

Definition at line 1101 of file stm32h7xx_hal_mmc.c.

References __HAL_MMC_CLEAR_FLAG, __HAL_MMC_ENABLE_IT, HAL_MMC_CardInfoTypeDef::CardType, __MMC_HandleTypeDef::Context, __MMC_HandleTypeDef::ErrorCode, __MMC_HandleTypeDef::Ext_CSD, HAL_MMC_ERROR_ADDR_MISALIGNED, HAL_MMC_ERROR_ADDR_OUT_OF_RANGE, HAL_MMC_ERROR_BLOCK_LEN_ERR, HAL_MMC_ERROR_NONE, HAL_MMC_ERROR_PARAM, HAL_MMC_STATE_BUSY, HAL_MMC_STATE_READY, __MMC_HandleTypeDef::Instance, HAL_MMC_CardInfoTypeDef::LogBlockNbr, MMC_BLOCKSIZE, MMC_CONTEXT_IT, MMC_CONTEXT_WRITE_MULTIPLE_BLOCK, MMC_CONTEXT_WRITE_SINGLE_BLOCK, MMC_EXT_CSD_DATA_SEC_SIZE_INDEX, MMC_EXT_CSD_DATA_SEC_SIZE_POS, MMC_HIGH_CAPACITY_CARD, __MMC_HandleTypeDef::MmcCard, __MMC_HandleTypeDef::pTxBuffPtr, __MMC_HandleTypeDef::State, and __MMC_HandleTypeDef::TxXferSize.