STM32F4xx HAL Documentation
Hardware Abstraction Layer for STM32F4 familiy
Loading...
Searching...
No Matches
Input and Output operation functions

Data transfer functions. More...

Collaboration diagram for Input and Output operation functions:

Functions

HAL_StatusTypeDef HAL_SD_ReadBlocks (SD_HandleTypeDef *hsd, 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.
 
HAL_StatusTypeDef HAL_SD_WriteBlocks (SD_HandleTypeDef *hsd, 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.
 
HAL_StatusTypeDef HAL_SD_Erase (SD_HandleTypeDef *hsd, uint32_t BlockStartAdd, uint32_t BlockEndAdd)
 Erases the specified memory area of the given SD card.
 
HAL_StatusTypeDef HAL_SD_ReadBlocks_IT (SD_HandleTypeDef *hsd, 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.
 
HAL_StatusTypeDef HAL_SD_WriteBlocks_IT (SD_HandleTypeDef *hsd, 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.
 
HAL_StatusTypeDef HAL_SD_ReadBlocks_DMA (SD_HandleTypeDef *hsd, 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.
 
HAL_StatusTypeDef HAL_SD_WriteBlocks_DMA (SD_HandleTypeDef *hsd, 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.
 
void HAL_SD_IRQHandler (SD_HandleTypeDef *hsd)
 This function handles SD card interrupt request.
 
void HAL_SD_TxCpltCallback (SD_HandleTypeDef *hsd)
 Tx Transfer completed callbacks.
 
void HAL_SD_RxCpltCallback (SD_HandleTypeDef *hsd)
 Rx Transfer completed callbacks.
 
void HAL_SD_ErrorCallback (SD_HandleTypeDef *hsd)
 SD error callbacks.
 
void HAL_SD_AbortCallback (SD_HandleTypeDef *hsd)
 SD Abort callbacks.
 
HAL_SD_StateTypeDef HAL_SD_GetState (SD_HandleTypeDef *hsd)
 return the SD state
 
uint32_t HAL_SD_GetError (SD_HandleTypeDef *hsd)
 Return the SD error code.
 

Detailed Description

Data transfer functions.

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

Function Documentation

◆ HAL_SD_ReadBlocks()

HAL_StatusTypeDef HAL_SD_ReadBlocks ( SD_HandleTypeDef * hsd,
uint8_t * pData,
uint32_t BlockAdd,
uint32_t NumberOfBlocks,
uint32_t Timeout )

#include <stm32f4xx_hal_sd.h>

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_SD_GetCardState().
Parameters
hsdPointer to SD handle
pDatapointer to the buffer that will contain the received data
BlockAddBlock Address from where data is to be read
NumberOfBlocksNumber of SD blocks to read
TimeoutSpecify timeout value
Return values
HALstatus

Definition at line 570 of file stm32f4xx_hal_sd.c.

References __HAL_SD_CLEAR_FLAG, __HAL_SD_GET_FLAG, BLOCKSIZE, CARD_SDHC_SDXC, CARD_SECURED, HAL_SD_CardInfoTypeDef::CardType, SD_HandleTypeDef::Context, SD_HandleTypeDef::ErrorCode, HAL_ERROR, HAL_GetTick(), HAL_OK, HAL_SD_ERROR_ADDR_OUT_OF_RANGE, HAL_SD_ERROR_BUSY, HAL_SD_ERROR_DATA_CRC_FAIL, HAL_SD_ERROR_DATA_TIMEOUT, HAL_SD_ERROR_NONE, HAL_SD_ERROR_PARAM, HAL_SD_ERROR_RX_OVERRUN, HAL_SD_ERROR_TIMEOUT, HAL_SD_STATE_BUSY, HAL_SD_STATE_READY, HAL_TIMEOUT, SD_HandleTypeDef::Instance, HAL_SD_CardInfoTypeDef::LogBlockNbr, SD_CONTEXT_NONE, SD_CONTEXT_READ_MULTIPLE_BLOCK, SD_CONTEXT_READ_SINGLE_BLOCK, SD_HandleTypeDef::SdCard, and SD_HandleTypeDef::State.

◆ HAL_SD_WriteBlocks()

HAL_StatusTypeDef HAL_SD_WriteBlocks ( SD_HandleTypeDef * hsd,
uint8_t * pData,
uint32_t BlockAdd,
uint32_t NumberOfBlocks,
uint32_t Timeout )

#include <stm32f4xx_hal_sd.h>

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_SD_GetCardState().
Parameters
hsdPointer to SD handle
pDatapointer to the buffer that will contain the data to transmit
BlockAddBlock Address where data will be written
NumberOfBlocksNumber of SD blocks to write
TimeoutSpecify timeout value
Return values
HALstatus

Definition at line 789 of file stm32f4xx_hal_sd.c.

References __HAL_SD_CLEAR_FLAG, __HAL_SD_GET_FLAG, BLOCKSIZE, CARD_SDHC_SDXC, CARD_SECURED, HAL_SD_CardInfoTypeDef::CardType, SD_HandleTypeDef::Context, SD_HandleTypeDef::ErrorCode, HAL_ERROR, HAL_GetTick(), HAL_OK, HAL_SD_ERROR_ADDR_OUT_OF_RANGE, HAL_SD_ERROR_BUSY, HAL_SD_ERROR_DATA_CRC_FAIL, HAL_SD_ERROR_DATA_TIMEOUT, HAL_SD_ERROR_NONE, HAL_SD_ERROR_PARAM, HAL_SD_ERROR_TX_UNDERRUN, HAL_SD_STATE_BUSY, HAL_SD_STATE_READY, HAL_TIMEOUT, SD_HandleTypeDef::Instance, HAL_SD_CardInfoTypeDef::LogBlockNbr, SD_CONTEXT_NONE, SD_CONTEXT_WRITE_MULTIPLE_BLOCK, SD_CONTEXT_WRITE_SINGLE_BLOCK, SD_HandleTypeDef::SdCard, and SD_HandleTypeDef::State.

◆ HAL_SD_Erase()

HAL_StatusTypeDef HAL_SD_Erase ( SD_HandleTypeDef * hsd,
uint32_t BlockStartAdd,
uint32_t BlockEndAdd )

#include <stm32f4xx_hal_sd.h>

Erases the specified memory area of the given SD card.

Note
This API should be followed by a check on the card state through HAL_SD_GetCardState().
Parameters
hsdPointer to SD handle
BlockStartAddStart Block address
BlockEndAddEnd Block address
Return values
HALstatus

Definition at line 1418 of file stm32f4xx_hal_sd.c.

References __HAL_SD_CLEAR_FLAG, CARD_SDHC_SDXC, CARD_SECURED, HAL_SD_CardInfoTypeDef::CardType, HAL_SD_CardInfoTypeDef::Class, SD_HandleTypeDef::ErrorCode, HAL_BUSY, HAL_ERROR, HAL_OK, HAL_SD_ERROR_ADDR_OUT_OF_RANGE, HAL_SD_ERROR_LOCK_UNLOCK_FAILED, HAL_SD_ERROR_NONE, HAL_SD_ERROR_PARAM, HAL_SD_ERROR_REQUEST_NOT_APPLICABLE, HAL_SD_STATE_BUSY, HAL_SD_STATE_READY, SD_HandleTypeDef::Instance, HAL_SD_CardInfoTypeDef::LogBlockNbr, SD_HandleTypeDef::SdCard, and SD_HandleTypeDef::State.

◆ HAL_SD_ReadBlocks_IT()

HAL_StatusTypeDef HAL_SD_ReadBlocks_IT ( SD_HandleTypeDef * hsd,
uint8_t * pData,
uint32_t BlockAdd,
uint32_t NumberOfBlocks )

#include <stm32f4xx_hal_sd.h>

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_SD_GetCardState().
You could also check the IT transfer process through the SD Rx interrupt event.
Parameters
hsdPointer to SD handle
pDataPointer to the buffer that will contain the received data
BlockAddBlock Address from where data is to be read
NumberOfBlocksNumber of blocks to read.
Return values
HALstatus

Definition at line 981 of file stm32f4xx_hal_sd.c.

References __HAL_SD_CLEAR_FLAG, __HAL_SD_ENABLE_IT, BLOCKSIZE, CARD_SDHC_SDXC, HAL_SD_CardInfoTypeDef::CardType, SD_HandleTypeDef::Context, SD_HandleTypeDef::ErrorCode, HAL_BUSY, HAL_ERROR, HAL_OK, HAL_SD_ERROR_ADDR_OUT_OF_RANGE, HAL_SD_ERROR_NONE, HAL_SD_ERROR_PARAM, HAL_SD_STATE_BUSY, HAL_SD_STATE_READY, SD_HandleTypeDef::Instance, HAL_SD_CardInfoTypeDef::LogBlockNbr, SD_HandleTypeDef::pRxBuffPtr, SD_HandleTypeDef::RxXferSize, SD_CONTEXT_IT, SD_CONTEXT_NONE, SD_CONTEXT_READ_MULTIPLE_BLOCK, SD_CONTEXT_READ_SINGLE_BLOCK, SD_HandleTypeDef::SdCard, and SD_HandleTypeDef::State.

◆ HAL_SD_WriteBlocks_IT()

HAL_StatusTypeDef HAL_SD_WriteBlocks_IT ( SD_HandleTypeDef * hsd,
uint8_t * pData,
uint32_t BlockAdd,
uint32_t NumberOfBlocks )

#include <stm32f4xx_hal_sd.h>

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_SD_GetCardState().
You could also check the IT transfer process through the SD Tx interrupt event.
Parameters
hsdPointer to SD handle
pDataPointer to the buffer that will contain the data to transmit
BlockAddBlock Address where data will be written
NumberOfBlocksNumber of blocks to write
Return values
HALstatus

Definition at line 1077 of file stm32f4xx_hal_sd.c.

References __HAL_SD_CLEAR_FLAG, __HAL_SD_ENABLE_IT, BLOCKSIZE, CARD_SDHC_SDXC, HAL_SD_CardInfoTypeDef::CardType, SD_HandleTypeDef::Context, SD_HandleTypeDef::ErrorCode, HAL_BUSY, HAL_ERROR, HAL_OK, HAL_SD_ERROR_ADDR_OUT_OF_RANGE, HAL_SD_ERROR_NONE, HAL_SD_ERROR_PARAM, HAL_SD_STATE_BUSY, HAL_SD_STATE_READY, SD_HandleTypeDef::Instance, HAL_SD_CardInfoTypeDef::LogBlockNbr, SD_HandleTypeDef::pTxBuffPtr, SD_CONTEXT_IT, SD_CONTEXT_NONE, SD_CONTEXT_WRITE_MULTIPLE_BLOCK, SD_CONTEXT_WRITE_SINGLE_BLOCK, SD_HandleTypeDef::SdCard, SD_HandleTypeDef::State, and SD_HandleTypeDef::TxXferSize.

◆ HAL_SD_ReadBlocks_DMA()

HAL_StatusTypeDef HAL_SD_ReadBlocks_DMA ( SD_HandleTypeDef * hsd,
uint8_t * pData,
uint32_t BlockAdd,
uint32_t NumberOfBlocks )

#include <stm32f4xx_hal_sd.h>

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_SD_GetCardState().
You could also check the DMA transfer process through the SD Rx interrupt event.
Parameters
hsdPointer SD handle
pDataPointer to the buffer that will contain the received data
BlockAddBlock Address from where data is to be read
NumberOfBlocksNumber of blocks to read.
Return values
HALstatus

Definition at line 1174 of file stm32f4xx_hal_sd.c.

References __HAL_SD_CLEAR_FLAG, __HAL_SD_DISABLE_IT, __HAL_SD_DMA_ENABLE, __HAL_SD_ENABLE_IT, BLOCKSIZE, CARD_SDHC_SDXC, HAL_SD_CardInfoTypeDef::CardType, SD_HandleTypeDef::Context, DMA_InitTypeDef::Direction, DMA_PERIPH_TO_MEMORY, SD_HandleTypeDef::ErrorCode, HAL_BUSY, HAL_DMA_Start_IT(), HAL_ERROR, HAL_OK, HAL_SD_ERROR_ADDR_OUT_OF_RANGE, HAL_SD_ERROR_DMA, HAL_SD_ERROR_NONE, HAL_SD_ERROR_PARAM, HAL_SD_STATE_BUSY, HAL_SD_STATE_READY, SD_HandleTypeDef::hdmarx, __DMA_HandleTypeDef::Init, __DMA_HandleTypeDef::Instance, SD_HandleTypeDef::Instance, HAL_SD_CardInfoTypeDef::LogBlockNbr, SD_CONTEXT_DMA, SD_CONTEXT_NONE, SD_CONTEXT_READ_MULTIPLE_BLOCK, SD_CONTEXT_READ_SINGLE_BLOCK, SD_DMAError(), SD_DMAReceiveCplt(), SD_HandleTypeDef::SdCard, SD_HandleTypeDef::State, __DMA_HandleTypeDef::XferAbortCallback, __DMA_HandleTypeDef::XferCpltCallback, and __DMA_HandleTypeDef::XferErrorCallback.

◆ HAL_SD_WriteBlocks_DMA()

HAL_StatusTypeDef HAL_SD_WriteBlocks_DMA ( SD_HandleTypeDef * hsd,
uint8_t * pData,
uint32_t BlockAdd,
uint32_t NumberOfBlocks )

#include <stm32f4xx_hal_sd.h>

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_SD_GetCardState().
You could also check the DMA transfer process through the SD Tx interrupt event.
Parameters
hsdPointer to SD handle
pDataPointer to the buffer that will contain the data to transmit
BlockAddBlock Address where data will be written
NumberOfBlocksNumber of blocks to write
Return values
HALstatus

Definition at line 1295 of file stm32f4xx_hal_sd.c.

References __HAL_SD_CLEAR_FLAG, __HAL_SD_DISABLE_IT, __HAL_SD_DMA_ENABLE, __HAL_SD_ENABLE_IT, BLOCKSIZE, CARD_SDHC_SDXC, HAL_SD_CardInfoTypeDef::CardType, SD_HandleTypeDef::Context, DMA_InitTypeDef::Direction, DMA_MEMORY_TO_PERIPH, SD_HandleTypeDef::ErrorCode, HAL_BUSY, HAL_DMA_Start_IT(), HAL_ERROR, HAL_OK, HAL_SD_ERROR_ADDR_OUT_OF_RANGE, HAL_SD_ERROR_DMA, HAL_SD_ERROR_NONE, HAL_SD_ERROR_PARAM, HAL_SD_STATE_BUSY, HAL_SD_STATE_READY, SD_HandleTypeDef::hdmatx, __DMA_HandleTypeDef::Init, __DMA_HandleTypeDef::Instance, SD_HandleTypeDef::Instance, HAL_SD_CardInfoTypeDef::LogBlockNbr, SD_CONTEXT_DMA, SD_CONTEXT_NONE, SD_CONTEXT_WRITE_MULTIPLE_BLOCK, SD_CONTEXT_WRITE_SINGLE_BLOCK, SD_DMAError(), SD_DMATransmitCplt(), SD_HandleTypeDef::SdCard, SD_HandleTypeDef::State, __DMA_HandleTypeDef::XferAbortCallback, __DMA_HandleTypeDef::XferCpltCallback, and __DMA_HandleTypeDef::XferErrorCallback.

◆ HAL_SD_IRQHandler()

◆ HAL_SD_TxCpltCallback()

__weak void HAL_SD_TxCpltCallback ( SD_HandleTypeDef * hsd)

#include <stm32f4xx_hal_sd.h>

Tx Transfer completed callbacks.

Parameters
hsdPointer to SD handle
Return values
None

Definition at line 1757 of file stm32f4xx_hal_sd.c.

References UNUSED.

Referenced by HAL_SD_Init(), and HAL_SD_IRQHandler().

◆ HAL_SD_RxCpltCallback()

__weak void HAL_SD_RxCpltCallback ( SD_HandleTypeDef * hsd)

#include <stm32f4xx_hal_sd.h>

Rx Transfer completed callbacks.

Parameters
hsdPointer SD handle
Return values
None

Definition at line 1772 of file stm32f4xx_hal_sd.c.

References UNUSED.

Referenced by HAL_SD_Init(), HAL_SD_IRQHandler(), and SD_DMAReceiveCplt().

◆ HAL_SD_ErrorCallback()

__weak void HAL_SD_ErrorCallback ( SD_HandleTypeDef * hsd)

#include <stm32f4xx_hal_sd.h>

SD error callbacks.

Parameters
hsdPointer SD handle
Return values
None

Definition at line 1787 of file stm32f4xx_hal_sd.c.

References UNUSED.

Referenced by HAL_SD_Init(), HAL_SD_IRQHandler(), SD_DMAError(), SD_DMAReceiveCplt(), SD_DMARxAbort(), and SD_DMATxAbort().

◆ HAL_SD_AbortCallback()

__weak void HAL_SD_AbortCallback ( SD_HandleTypeDef * hsd)

#include <stm32f4xx_hal_sd.h>

SD Abort callbacks.

Parameters
hsdPointer SD handle
Return values
None

Definition at line 1802 of file stm32f4xx_hal_sd.c.

References UNUSED.

Referenced by HAL_SD_Abort_IT(), HAL_SD_Init(), HAL_SD_IRQHandler(), SD_DMARxAbort(), and SD_DMATxAbort().

◆ HAL_SD_GetState()

HAL_SD_StateTypeDef HAL_SD_GetState ( SD_HandleTypeDef * hsd)

#include <stm32f4xx_hal_sd.c>

return the SD state

Parameters
hsdPointer to sd handle
Return values
HALstate

Definition at line 1736 of file stm32f4xx_hal_sd.c.

References SD_HandleTypeDef::State.

◆ HAL_SD_GetError()

uint32_t HAL_SD_GetError ( SD_HandleTypeDef * hsd)

#include <stm32f4xx_hal_sd.c>

Return the SD error code.

Parameters
hsd: Pointer to a SD_HandleTypeDef structure that contains the configuration information.
Return values
SDError Code

Definition at line 1747 of file stm32f4xx_hal_sd.c.

References SD_HandleTypeDef::ErrorCode.