STM32F769IDiscovery  1.00
uDANTE Audio Networking with STM32F7 DISCO board
Data Structures | Macros | Enumerations | Functions
stm32f7xx_hal_sd.h File Reference

Header file of SD HAL module. More...

#include "stm32f7xx_ll_sdmmc.h"

Go to the source code of this file.

Data Structures

struct  SD_HandleTypeDef
 
struct  HAL_SD_CSDTypedef
 
struct  HAL_SD_CIDTypedef
 
struct  HAL_SD_CardStatusTypedef
 
struct  HAL_SD_CardInfoTypedef
 

Macros

#define SD_InitTypeDef   SDMMC_InitTypeDef
 
#define SD_TypeDef   SDMMC_TypeDef
 
#define SD_CMD_GO_IDLE_STATE   ((uint8_t)0U)
 SD Commands Index. More...
 
#define SD_CMD_SEND_OP_COND   ((uint8_t)1U)
 
#define SD_CMD_ALL_SEND_CID   ((uint8_t)2U)
 
#define SD_CMD_SET_REL_ADDR   ((uint8_t)3U)
 
#define SD_CMD_SET_DSR   ((uint8_t)4U)
 
#define SD_CMD_SDMMC_SEN_OP_COND   ((uint8_t)5U)
 
#define SD_CMD_HS_SWITCH   ((uint8_t)6U)
 
#define SD_CMD_SEL_DESEL_CARD   ((uint8_t)7U)
 
#define SD_CMD_HS_SEND_EXT_CSD   ((uint8_t)8U)
 
#define SD_CMD_SEND_CSD   ((uint8_t)9U)
 
#define SD_CMD_SEND_CID   ((uint8_t)10U)
 
#define SD_CMD_READ_DAT_UNTIL_STOP   ((uint8_t)11U)
 
#define SD_CMD_STOP_TRANSMISSION   ((uint8_t)12U)
 
#define SD_CMD_SEND_STATUS   ((uint8_t)13U)
 
#define SD_CMD_HS_BUSTEST_READ   ((uint8_t)14U)
 
#define SD_CMD_GO_INACTIVE_STATE   ((uint8_t)15U)
 
#define SD_CMD_SET_BLOCKLEN   ((uint8_t)16U)
 
#define SD_CMD_READ_SINGLE_BLOCK   ((uint8_t)17U)
 
#define SD_CMD_READ_MULT_BLOCK   ((uint8_t)18U)
 
#define SD_CMD_HS_BUSTEST_WRITE   ((uint8_t)19U)
 
#define SD_CMD_WRITE_DAT_UNTIL_STOP   ((uint8_t)20U)
 
#define SD_CMD_SET_BLOCK_COUNT   ((uint8_t)23U)
 
#define SD_CMD_WRITE_SINGLE_BLOCK   ((uint8_t)24U)
 
#define SD_CMD_WRITE_MULT_BLOCK   ((uint8_t)25U)
 
#define SD_CMD_PROG_CID   ((uint8_t)26U)
 
#define SD_CMD_PROG_CSD   ((uint8_t)27U)
 
#define SD_CMD_SET_WRITE_PROT   ((uint8_t)28U)
 
#define SD_CMD_CLR_WRITE_PROT   ((uint8_t)29U)
 
#define SD_CMD_SEND_WRITE_PROT   ((uint8_t)30U)
 
#define SD_CMD_SD_ERASE_GRP_START   ((uint8_t)32U)
 
#define SD_CMD_SD_ERASE_GRP_END   ((uint8_t)33U)
 
#define SD_CMD_ERASE_GRP_START   ((uint8_t)35U)
 
#define SD_CMD_ERASE_GRP_END   ((uint8_t)36U)
 
#define SD_CMD_ERASE   ((uint8_t)38U)
 
#define SD_CMD_FAST_IO   ((uint8_t)39U)
 
#define SD_CMD_GO_IRQ_STATE   ((uint8_t)40U)
 
#define SD_CMD_LOCK_UNLOCK   ((uint8_t)42U)
 
#define SD_CMD_APP_CMD   ((uint8_t)55U)
 
#define SD_CMD_GEN_CMD   ((uint8_t)56U)
 
#define SD_CMD_NO_CMD   ((uint8_t)64U)
 
#define SD_CMD_APP_SD_SET_BUSWIDTH   ((uint8_t)6U)
 Following commands are SD Card Specific commands. SDMMC_APP_CMD should be sent before sending these commands. More...
 
#define SD_CMD_SD_APP_STATUS   ((uint8_t)13U)
 
#define SD_CMD_SD_APP_SEND_NUM_WRITE_BLOCKS   ((uint8_t)22U)
 
#define SD_CMD_SD_APP_OP_COND   ((uint8_t)41U)
 
#define SD_CMD_SD_APP_SET_CLR_CARD_DETECT   ((uint8_t)42U)
 
#define SD_CMD_SD_APP_SEND_SCR   ((uint8_t)51U)
 
#define SD_CMD_SDMMC_RW_DIRECT   ((uint8_t)52U)
 
#define SD_CMD_SDMMC_RW_EXTENDED   ((uint8_t)53U)
 
#define SD_CMD_SD_APP_GET_MKB   ((uint8_t)43U)
 Following commands are SD Card Specific security commands. SD_CMD_APP_CMD should be sent before sending these commands. More...
 
#define SD_CMD_SD_APP_GET_MID   ((uint8_t)44U)
 
#define SD_CMD_SD_APP_SET_CER_RN1   ((uint8_t)45U)
 
#define SD_CMD_SD_APP_GET_CER_RN2   ((uint8_t)46U)
 
#define SD_CMD_SD_APP_SET_CER_RES2   ((uint8_t)47U)
 
#define SD_CMD_SD_APP_GET_CER_RES1   ((uint8_t)48U)
 
#define SD_CMD_SD_APP_SECURE_READ_MULTIPLE_BLOCK   ((uint8_t)18U)
 
#define SD_CMD_SD_APP_SECURE_WRITE_MULTIPLE_BLOCK   ((uint8_t)25U)
 
#define SD_CMD_SD_APP_SECURE_ERASE   ((uint8_t)38U)
 
#define SD_CMD_SD_APP_CHANGE_SECURE_AREA   ((uint8_t)49U)
 
#define SD_CMD_SD_APP_SECURE_WRITE_MKB   ((uint8_t)48U)
 
#define STD_CAPACITY_SD_CARD_V1_1   ((uint32_t)0x00000000U)
 Supported SD Memory Cards. More...
 
#define STD_CAPACITY_SD_CARD_V2_0   ((uint32_t)0x00000001U)
 
#define HIGH_CAPACITY_SD_CARD   ((uint32_t)0x00000002U)
 
#define MULTIMEDIA_CARD   ((uint32_t)0x00000003U)
 
#define SECURE_DIGITAL_IO_CARD   ((uint32_t)0x00000004U)
 
#define HIGH_SPEED_MULTIMEDIA_CARD   ((uint32_t)0x00000005U)
 
#define SECURE_DIGITAL_IO_COMBO_CARD   ((uint32_t)0x00000006U)
 
#define HIGH_CAPACITY_MMC_CARD   ((uint32_t)0x00000007U)
 
#define __HAL_SD_SDMMC_ENABLE(__HANDLE__)   __SDMMC_ENABLE((__HANDLE__)->Instance)
 Enable the SD device. More...
 
#define __HAL_SD_SDMMC_DISABLE(__HANDLE__)   __SDMMC_DISABLE((__HANDLE__)->Instance)
 Disable the SD device. More...
 
#define __HAL_SD_SDMMC_DMA_ENABLE(__HANDLE__)   __SDMMC_DMA_ENABLE((__HANDLE__)->Instance)
 Enable the SDMMC DMA transfer. More...
 
#define __HAL_SD_SDMMC_DMA_DISABLE(__HANDLE__)   __SDMMC_DMA_DISABLE((__HANDLE__)->Instance)
 Disable the SDMMC DMA transfer. More...
 
#define __HAL_SD_SDMMC_ENABLE_IT(__HANDLE__, __INTERRUPT__)   __SDMMC_ENABLE_IT((__HANDLE__)->Instance, (__INTERRUPT__))
 Enable the SD device interrupt. More...
 
#define __HAL_SD_SDMMC_DISABLE_IT(__HANDLE__, __INTERRUPT__)   __SDMMC_DISABLE_IT((__HANDLE__)->Instance, (__INTERRUPT__))
 Disable the SD device interrupt. More...
 
#define __HAL_SD_SDMMC_GET_FLAG(__HANDLE__, __FLAG__)   __SDMMC_GET_FLAG((__HANDLE__)->Instance, (__FLAG__))
 Check whether the specified SD flag is set or not. More...
 
#define __HAL_SD_SDMMC_CLEAR_FLAG(__HANDLE__, __FLAG__)   __SDMMC_CLEAR_FLAG((__HANDLE__)->Instance, (__FLAG__))
 Clear the SD's pending flags. More...
 
#define __HAL_SD_SDMMC_GET_IT(__HANDLE__, __INTERRUPT__)   __SDMMC_GET_IT((__HANDLE__)->Instance, (__INTERRUPT__))
 Check whether the specified SD interrupt has occurred or not. More...
 
#define __HAL_SD_SDMMC_CLEAR_IT(__HANDLE__, __INTERRUPT__)   __SDMMC_CLEAR_IT((__HANDLE__)->Instance, (__INTERRUPT__))
 Clear the SD's interrupt pending bits. More...
 

Enumerations

enum  HAL_SD_ErrorTypedef {
  SD_CMD_CRC_FAIL = (1), SD_DATA_CRC_FAIL = (2), SD_CMD_RSP_TIMEOUT = (3), SD_DATA_TIMEOUT = (4),
  SD_TX_UNDERRUN = (5), SD_RX_OVERRUN = (6), SD_START_BIT_ERR = (7), SD_CMD_OUT_OF_RANGE = (8),
  SD_ADDR_MISALIGNED = (9), SD_BLOCK_LEN_ERR = (10), SD_ERASE_SEQ_ERR = (11), SD_BAD_ERASE_PARAM = (12),
  SD_WRITE_PROT_VIOLATION = (13), SD_LOCK_UNLOCK_FAILED = (14), SD_COM_CRC_FAILED = (15), SD_ILLEGAL_CMD = (16),
  SD_CARD_ECC_FAILED = (17), SD_CC_ERROR = (18), SD_GENERAL_UNKNOWN_ERROR = (19), SD_STREAM_READ_UNDERRUN = (20),
  SD_STREAM_WRITE_OVERRUN = (21), SD_CID_CSD_OVERWRITE = (22), SD_WP_ERASE_SKIP = (23), SD_CARD_ECC_DISABLED = (24),
  SD_ERASE_RESET = (25), SD_AKE_SEQ_ERROR = (26), SD_INVALID_VOLTRANGE = (27), SD_ADDR_OUT_OF_RANGE = (28),
  SD_SWITCH_ERROR = (29), SD_SDMMC_DISABLED = (30), SD_SDMMC_FUNCTION_BUSY = (31), SD_SDMMC_FUNCTION_FAILED = (32),
  SD_SDMMC_UNKNOWN_FUNCTION = (33), SD_INTERNAL_ERROR = (34), SD_NOT_CONFIGURED = (35), SD_REQUEST_PENDING = (36),
  SD_REQUEST_NOT_APPLICABLE = (37), SD_INVALID_PARAMETER = (38), SD_UNSUPPORTED_FEATURE = (39), SD_UNSUPPORTED_HW = (40),
  SD_ERROR = (41), SD_OK = (0)
}
 
enum  HAL_SD_TransferStateTypedef { SD_TRANSFER_OK = 0, SD_TRANSFER_BUSY = 1, SD_TRANSFER_ERROR = 2 }
 
enum  HAL_SD_CardStateTypedef {
  SD_CARD_READY = ((uint32_t)0x00000001U), SD_CARD_IDENTIFICATION = ((uint32_t)0x00000002U), SD_CARD_STANDBY = ((uint32_t)0x00000003U), SD_CARD_TRANSFER = ((uint32_t)0x00000004U),
  SD_CARD_SENDING = ((uint32_t)0x00000005U), SD_CARD_RECEIVING = ((uint32_t)0x00000006U), SD_CARD_PROGRAMMING = ((uint32_t)0x00000007U), SD_CARD_DISCONNECTED = ((uint32_t)0x00000008U),
  SD_CARD_ERROR = ((uint32_t)0x000000FFU)
}
 
enum  HAL_SD_OperationTypedef { SD_READ_SINGLE_BLOCK = 0U, SD_READ_MULTIPLE_BLOCK = 1U, SD_WRITE_SINGLE_BLOCK = 2U, SD_WRITE_MULTIPLE_BLOCK = 3U }
 

Functions

HAL_SD_ErrorTypedef HAL_SD_Init (SD_HandleTypeDef *hsd, HAL_SD_CardInfoTypedef *SDCardInfo)
 
HAL_StatusTypeDef HAL_SD_DeInit (SD_HandleTypeDef *hsd)
 
void HAL_SD_MspInit (SD_HandleTypeDef *hsd)
 
void HAL_SD_MspDeInit (SD_HandleTypeDef *hsd)
 
HAL_SD_ErrorTypedef HAL_SD_ReadBlocks (SD_HandleTypeDef *hsd, uint32_t *pReadBuffer, uint64_t ReadAddr, uint32_t BlockSize, uint32_t NumberOfBlocks)
 
HAL_SD_ErrorTypedef HAL_SD_WriteBlocks (SD_HandleTypeDef *hsd, uint32_t *pWriteBuffer, uint64_t WriteAddr, uint32_t BlockSize, uint32_t NumberOfBlocks)
 
HAL_SD_ErrorTypedef HAL_SD_Erase (SD_HandleTypeDef *hsd, uint64_t startaddr, uint64_t endaddr)
 
void HAL_SD_IRQHandler (SD_HandleTypeDef *hsd)
 
void HAL_SD_DMA_RxCpltCallback (DMA_HandleTypeDef *hdma)
 
void HAL_SD_DMA_RxErrorCallback (DMA_HandleTypeDef *hdma)
 
void HAL_SD_DMA_TxCpltCallback (DMA_HandleTypeDef *hdma)
 
void HAL_SD_DMA_TxErrorCallback (DMA_HandleTypeDef *hdma)
 
void HAL_SD_XferCpltCallback (SD_HandleTypeDef *hsd)
 
void HAL_SD_XferErrorCallback (SD_HandleTypeDef *hsd)
 
HAL_SD_ErrorTypedef HAL_SD_ReadBlocks_DMA (SD_HandleTypeDef *hsd, uint32_t *pReadBuffer, uint64_t ReadAddr, uint32_t BlockSize, uint32_t NumberOfBlocks)
 
HAL_SD_ErrorTypedef HAL_SD_WriteBlocks_DMA (SD_HandleTypeDef *hsd, uint32_t *pWriteBuffer, uint64_t WriteAddr, uint32_t BlockSize, uint32_t NumberOfBlocks)
 
HAL_SD_ErrorTypedef HAL_SD_CheckWriteOperation (SD_HandleTypeDef *hsd, uint32_t Timeout)
 
HAL_SD_ErrorTypedef HAL_SD_CheckReadOperation (SD_HandleTypeDef *hsd, uint32_t Timeout)
 
HAL_SD_ErrorTypedef HAL_SD_Get_CardInfo (SD_HandleTypeDef *hsd, HAL_SD_CardInfoTypedef *pCardInfo)
 
HAL_SD_ErrorTypedef HAL_SD_WideBusOperation_Config (SD_HandleTypeDef *hsd, uint32_t WideMode)
 
HAL_SD_ErrorTypedef HAL_SD_StopTransfer (SD_HandleTypeDef *hsd)
 
HAL_SD_ErrorTypedef HAL_SD_HighSpeed (SD_HandleTypeDef *hsd)
 
HAL_SD_ErrorTypedef HAL_SD_SendSDStatus (SD_HandleTypeDef *hsd, uint32_t *pSDstatus)
 
HAL_SD_ErrorTypedef HAL_SD_GetCardStatus (SD_HandleTypeDef *hsd, HAL_SD_CardStatusTypedef *pCardStatus)
 
HAL_SD_TransferStateTypedef HAL_SD_GetStatus (SD_HandleTypeDef *hsd)
 

Detailed Description

Header file of SD HAL module.

Author
MCD Application Team
Version
V1.1.0
Date
22-April-2016
Attention

© COPYRIGHT(c) 2016 STMicroelectronics

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  3. Neither the name of STMicroelectronics nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Definition in file stm32f7xx_hal_sd.h.