mbed library sources

Dependents:   Encrypted my_mbed lklk CyaSSL_DTLS_Cellular ... more

Superseded

This library was superseded by mbed-dev - https://os.mbed.com/users/mbed_official/code/mbed-dev/.

Development branch of the mbed library sources. This library is kept in synch with the latest changes from the mbed SDK and it is not guaranteed to work.

If you are looking for a stable and tested release, please import one of the official mbed library releases:

Import librarymbed

The official Mbed 2 C/C++ SDK provides the software platform and libraries to build your applications.

Committer:
mbed_official
Date:
Fri Aug 14 13:15:17 2015 +0100
Revision:
610:813dcc80987e
Synchronized with git revision 6d84db41c6833e0b9b024741eb0616a5f62d5599

Full URL: https://github.com/mbedmicro/mbed/commit/6d84db41c6833e0b9b024741eb0616a5f62d5599/

DISCO_F746NG - Improvements

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 610:813dcc80987e 1 /**
mbed_official 610:813dcc80987e 2 ******************************************************************************
mbed_official 610:813dcc80987e 3 * @file stm32l4xx_hal_sd.h
mbed_official 610:813dcc80987e 4 * @author MCD Application Team
mbed_official 610:813dcc80987e 5 * @version V1.0.0
mbed_official 610:813dcc80987e 6 * @date 26-June-2015
mbed_official 610:813dcc80987e 7 * @brief Header file of SD HAL module.
mbed_official 610:813dcc80987e 8 ******************************************************************************
mbed_official 610:813dcc80987e 9 * @attention
mbed_official 610:813dcc80987e 10 *
mbed_official 610:813dcc80987e 11 * <h2><center>&copy; COPYRIGHT(c) 2015 STMicroelectronics</center></h2>
mbed_official 610:813dcc80987e 12 *
mbed_official 610:813dcc80987e 13 * Redistribution and use in source and binary forms, with or without modification,
mbed_official 610:813dcc80987e 14 * are permitted provided that the following conditions are met:
mbed_official 610:813dcc80987e 15 * 1. Redistributions of source code must retain the above copyright notice,
mbed_official 610:813dcc80987e 16 * this list of conditions and the following disclaimer.
mbed_official 610:813dcc80987e 17 * 2. Redistributions in binary form must reproduce the above copyright notice,
mbed_official 610:813dcc80987e 18 * this list of conditions and the following disclaimer in the documentation
mbed_official 610:813dcc80987e 19 * and/or other materials provided with the distribution.
mbed_official 610:813dcc80987e 20 * 3. Neither the name of STMicroelectronics nor the names of its contributors
mbed_official 610:813dcc80987e 21 * may be used to endorse or promote products derived from this software
mbed_official 610:813dcc80987e 22 * without specific prior written permission.
mbed_official 610:813dcc80987e 23 *
mbed_official 610:813dcc80987e 24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
mbed_official 610:813dcc80987e 25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
mbed_official 610:813dcc80987e 26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
mbed_official 610:813dcc80987e 27 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
mbed_official 610:813dcc80987e 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
mbed_official 610:813dcc80987e 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
mbed_official 610:813dcc80987e 30 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
mbed_official 610:813dcc80987e 31 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
mbed_official 610:813dcc80987e 32 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
mbed_official 610:813dcc80987e 33 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
mbed_official 610:813dcc80987e 34 *
mbed_official 610:813dcc80987e 35 ******************************************************************************
mbed_official 610:813dcc80987e 36 */
mbed_official 610:813dcc80987e 37
mbed_official 610:813dcc80987e 38 /* Define to prevent recursive inclusion -------------------------------------*/
mbed_official 610:813dcc80987e 39 #ifndef __STM32L4xx_HAL_SD_H
mbed_official 610:813dcc80987e 40 #define __STM32L4xx_HAL_SD_H
mbed_official 610:813dcc80987e 41
mbed_official 610:813dcc80987e 42 #ifdef __cplusplus
mbed_official 610:813dcc80987e 43 extern "C" {
mbed_official 610:813dcc80987e 44 #endif
mbed_official 610:813dcc80987e 45
mbed_official 610:813dcc80987e 46 /* Includes ------------------------------------------------------------------*/
mbed_official 610:813dcc80987e 47 #include "stm32l4xx_ll_sdmmc.h"
mbed_official 610:813dcc80987e 48
mbed_official 610:813dcc80987e 49 /** @addtogroup STM32L4xx_HAL_Driver
mbed_official 610:813dcc80987e 50 * @{
mbed_official 610:813dcc80987e 51 */
mbed_official 610:813dcc80987e 52
mbed_official 610:813dcc80987e 53 /** @defgroup SD SD
mbed_official 610:813dcc80987e 54 * @brief SD HAL module driver
mbed_official 610:813dcc80987e 55 * @{
mbed_official 610:813dcc80987e 56 */
mbed_official 610:813dcc80987e 57
mbed_official 610:813dcc80987e 58 /* Exported types ------------------------------------------------------------*/
mbed_official 610:813dcc80987e 59 /** @defgroup SD_Exported_Types SD Exported Types
mbed_official 610:813dcc80987e 60 * @{
mbed_official 610:813dcc80987e 61 */
mbed_official 610:813dcc80987e 62
mbed_official 610:813dcc80987e 63 /** @defgroup SD_Exported_Types_Group1 SD Handle Structure definition
mbed_official 610:813dcc80987e 64 * @{
mbed_official 610:813dcc80987e 65 */
mbed_official 610:813dcc80987e 66 #define SD_InitTypeDef SDMMC_InitTypeDef
mbed_official 610:813dcc80987e 67 #define SD_TypeDef SDMMC_TypeDef
mbed_official 610:813dcc80987e 68
mbed_official 610:813dcc80987e 69 typedef struct
mbed_official 610:813dcc80987e 70 {
mbed_official 610:813dcc80987e 71 SD_TypeDef *Instance; /*!< SDMMC register base address */
mbed_official 610:813dcc80987e 72
mbed_official 610:813dcc80987e 73 SD_InitTypeDef Init; /*!< SD required parameters */
mbed_official 610:813dcc80987e 74
mbed_official 610:813dcc80987e 75 HAL_LockTypeDef Lock; /*!< SD locking object */
mbed_official 610:813dcc80987e 76
mbed_official 610:813dcc80987e 77 uint32_t CardType; /*!< SD card type */
mbed_official 610:813dcc80987e 78
mbed_official 610:813dcc80987e 79 uint32_t RCA; /*!< SD relative card address */
mbed_official 610:813dcc80987e 80
mbed_official 610:813dcc80987e 81 uint32_t CSD[4]; /*!< SD card specific data table */
mbed_official 610:813dcc80987e 82
mbed_official 610:813dcc80987e 83 uint32_t CID[4]; /*!< SD card identification number table */
mbed_official 610:813dcc80987e 84
mbed_official 610:813dcc80987e 85 __IO uint32_t SdTransferCplt; /*!< SD transfer complete flag in non blocking mode */
mbed_official 610:813dcc80987e 86
mbed_official 610:813dcc80987e 87 __IO uint32_t SdTransferErr; /*!< SD transfer error flag in non blocking mode */
mbed_official 610:813dcc80987e 88
mbed_official 610:813dcc80987e 89 __IO uint32_t DmaTransferCplt; /*!< SD DMA transfer complete flag */
mbed_official 610:813dcc80987e 90
mbed_official 610:813dcc80987e 91 __IO uint32_t SdOperation; /*!< SD transfer operation (read/write) */
mbed_official 610:813dcc80987e 92
mbed_official 610:813dcc80987e 93 DMA_HandleTypeDef *hdmarx; /*!< SD Rx DMA handle parameters */
mbed_official 610:813dcc80987e 94
mbed_official 610:813dcc80987e 95 DMA_HandleTypeDef *hdmatx; /*!< SD Tx DMA handle parameters */
mbed_official 610:813dcc80987e 96
mbed_official 610:813dcc80987e 97 }SD_HandleTypeDef;
mbed_official 610:813dcc80987e 98 /**
mbed_official 610:813dcc80987e 99 * @}
mbed_official 610:813dcc80987e 100 */
mbed_official 610:813dcc80987e 101
mbed_official 610:813dcc80987e 102 /** @defgroup SD_Exported_Types_Group2 Card Specific Data: CSD Register
mbed_official 610:813dcc80987e 103 * @{
mbed_official 610:813dcc80987e 104 */
mbed_official 610:813dcc80987e 105 typedef struct
mbed_official 610:813dcc80987e 106 {
mbed_official 610:813dcc80987e 107 __IO uint8_t CSDStruct; /*!< CSD structure */
mbed_official 610:813dcc80987e 108 __IO uint8_t SysSpecVersion; /*!< System specification version */
mbed_official 610:813dcc80987e 109 __IO uint8_t Reserved1; /*!< Reserved */
mbed_official 610:813dcc80987e 110 __IO uint8_t TAAC; /*!< Data read access time 1 */
mbed_official 610:813dcc80987e 111 __IO uint8_t NSAC; /*!< Data read access time 2 in CLK cycles */
mbed_official 610:813dcc80987e 112 __IO uint8_t MaxBusClkFrec; /*!< Max. bus clock frequency */
mbed_official 610:813dcc80987e 113 __IO uint16_t CardComdClasses; /*!< Card command classes */
mbed_official 610:813dcc80987e 114 __IO uint8_t RdBlockLen; /*!< Max. read data block length */
mbed_official 610:813dcc80987e 115 __IO uint8_t PartBlockRead; /*!< Partial blocks for read allowed */
mbed_official 610:813dcc80987e 116 __IO uint8_t WrBlockMisalign; /*!< Write block misalignment */
mbed_official 610:813dcc80987e 117 __IO uint8_t RdBlockMisalign; /*!< Read block misalignment */
mbed_official 610:813dcc80987e 118 __IO uint8_t DSRImpl; /*!< DSR implemented */
mbed_official 610:813dcc80987e 119 __IO uint8_t Reserved2; /*!< Reserved */
mbed_official 610:813dcc80987e 120 __IO uint32_t DeviceSize; /*!< Device Size */
mbed_official 610:813dcc80987e 121 __IO uint8_t MaxRdCurrentVDDMin; /*!< Max. read current @ VDD min */
mbed_official 610:813dcc80987e 122 __IO uint8_t MaxRdCurrentVDDMax; /*!< Max. read current @ VDD max */
mbed_official 610:813dcc80987e 123 __IO uint8_t MaxWrCurrentVDDMin; /*!< Max. write current @ VDD min */
mbed_official 610:813dcc80987e 124 __IO uint8_t MaxWrCurrentVDDMax; /*!< Max. write current @ VDD max */
mbed_official 610:813dcc80987e 125 __IO uint8_t DeviceSizeMul; /*!< Device size multiplier */
mbed_official 610:813dcc80987e 126 __IO uint8_t EraseGrSize; /*!< Erase group size */
mbed_official 610:813dcc80987e 127 __IO uint8_t EraseGrMul; /*!< Erase group size multiplier */
mbed_official 610:813dcc80987e 128 __IO uint8_t WrProtectGrSize; /*!< Write protect group size */
mbed_official 610:813dcc80987e 129 __IO uint8_t WrProtectGrEnable; /*!< Write protect group enable */
mbed_official 610:813dcc80987e 130 __IO uint8_t ManDeflECC; /*!< Manufacturer default ECC */
mbed_official 610:813dcc80987e 131 __IO uint8_t WrSpeedFact; /*!< Write speed factor */
mbed_official 610:813dcc80987e 132 __IO uint8_t MaxWrBlockLen; /*!< Max. write data block length */
mbed_official 610:813dcc80987e 133 __IO uint8_t WriteBlockPaPartial; /*!< Partial blocks for write allowed */
mbed_official 610:813dcc80987e 134 __IO uint8_t Reserved3; /*!< Reserved */
mbed_official 610:813dcc80987e 135 __IO uint8_t ContentProtectAppli; /*!< Content protection application */
mbed_official 610:813dcc80987e 136 __IO uint8_t FileFormatGrouop; /*!< File format group */
mbed_official 610:813dcc80987e 137 __IO uint8_t CopyFlag; /*!< Copy flag (OTP) */
mbed_official 610:813dcc80987e 138 __IO uint8_t PermWrProtect; /*!< Permanent write protection */
mbed_official 610:813dcc80987e 139 __IO uint8_t TempWrProtect; /*!< Temporary write protection */
mbed_official 610:813dcc80987e 140 __IO uint8_t FileFormat; /*!< File format */
mbed_official 610:813dcc80987e 141 __IO uint8_t ECC; /*!< ECC code */
mbed_official 610:813dcc80987e 142 __IO uint8_t CSD_CRC; /*!< CSD CRC */
mbed_official 610:813dcc80987e 143 __IO uint8_t Reserved4; /*!< Always 1 */
mbed_official 610:813dcc80987e 144
mbed_official 610:813dcc80987e 145 }HAL_SD_CSDTypedef;
mbed_official 610:813dcc80987e 146 /**
mbed_official 610:813dcc80987e 147 * @}
mbed_official 610:813dcc80987e 148 */
mbed_official 610:813dcc80987e 149
mbed_official 610:813dcc80987e 150 /** @defgroup SD_Exported_Types_Group3 Card Identification Data: CID Register
mbed_official 610:813dcc80987e 151 * @{
mbed_official 610:813dcc80987e 152 */
mbed_official 610:813dcc80987e 153 typedef struct
mbed_official 610:813dcc80987e 154 {
mbed_official 610:813dcc80987e 155 __IO uint8_t ManufacturerID; /*!< Manufacturer ID */
mbed_official 610:813dcc80987e 156 __IO uint16_t OEM_AppliID; /*!< OEM/Application ID */
mbed_official 610:813dcc80987e 157 __IO uint32_t ProdName1; /*!< Product Name part1 */
mbed_official 610:813dcc80987e 158 __IO uint8_t ProdName2; /*!< Product Name part2 */
mbed_official 610:813dcc80987e 159 __IO uint8_t ProdRev; /*!< Product Revision */
mbed_official 610:813dcc80987e 160 __IO uint32_t ProdSN; /*!< Product Serial Number */
mbed_official 610:813dcc80987e 161 __IO uint8_t Reserved1; /*!< Reserved1 */
mbed_official 610:813dcc80987e 162 __IO uint16_t ManufactDate; /*!< Manufacturing Date */
mbed_official 610:813dcc80987e 163 __IO uint8_t CID_CRC; /*!< CID CRC */
mbed_official 610:813dcc80987e 164 __IO uint8_t Reserved2; /*!< Always 1 */
mbed_official 610:813dcc80987e 165
mbed_official 610:813dcc80987e 166 }HAL_SD_CIDTypedef;
mbed_official 610:813dcc80987e 167 /**
mbed_official 610:813dcc80987e 168 * @}
mbed_official 610:813dcc80987e 169 */
mbed_official 610:813dcc80987e 170
mbed_official 610:813dcc80987e 171 /** @defgroup SD_Exported_Types_Group4 SD Card Status returned by ACMD13
mbed_official 610:813dcc80987e 172 * @{
mbed_official 610:813dcc80987e 173 */
mbed_official 610:813dcc80987e 174 typedef struct
mbed_official 610:813dcc80987e 175 {
mbed_official 610:813dcc80987e 176 __IO uint8_t DAT_BUS_WIDTH; /*!< Shows the currently defined data bus width */
mbed_official 610:813dcc80987e 177 __IO uint8_t SECURED_MODE; /*!< Card is in secured mode of operation */
mbed_official 610:813dcc80987e 178 __IO uint16_t SD_CARD_TYPE; /*!< Carries information about card type */
mbed_official 610:813dcc80987e 179 __IO uint32_t SIZE_OF_PROTECTED_AREA; /*!< Carries information about the capacity of protected area */
mbed_official 610:813dcc80987e 180 __IO uint8_t SPEED_CLASS; /*!< Carries information about the speed class of the card */
mbed_official 610:813dcc80987e 181 __IO uint8_t PERFORMANCE_MOVE; /*!< Carries information about the card's performance move */
mbed_official 610:813dcc80987e 182 __IO uint8_t AU_SIZE; /*!< Carries information about the card's allocation unit size */
mbed_official 610:813dcc80987e 183 __IO uint16_t ERASE_SIZE; /*!< Determines the number of AUs to be erased in one operation */
mbed_official 610:813dcc80987e 184 __IO uint8_t ERASE_TIMEOUT; /*!< Determines the timeout for any number of AU erase */
mbed_official 610:813dcc80987e 185 __IO uint8_t ERASE_OFFSET; /*!< Carries information about the erase offset */
mbed_official 610:813dcc80987e 186
mbed_official 610:813dcc80987e 187 }HAL_SD_CardStatusTypedef;
mbed_official 610:813dcc80987e 188 /**
mbed_official 610:813dcc80987e 189 * @}
mbed_official 610:813dcc80987e 190 */
mbed_official 610:813dcc80987e 191
mbed_official 610:813dcc80987e 192 /** @defgroup SD_Exported_Types_Group5 SD Card information structure
mbed_official 610:813dcc80987e 193 * @{
mbed_official 610:813dcc80987e 194 */
mbed_official 610:813dcc80987e 195 typedef struct
mbed_official 610:813dcc80987e 196 {
mbed_official 610:813dcc80987e 197 HAL_SD_CSDTypedef SD_csd; /*!< SD card specific data register */
mbed_official 610:813dcc80987e 198 HAL_SD_CIDTypedef SD_cid; /*!< SD card identification number register */
mbed_official 610:813dcc80987e 199 uint64_t CardCapacity; /*!< Card capacity */
mbed_official 610:813dcc80987e 200 uint32_t CardBlockSize; /*!< Card block size */
mbed_official 610:813dcc80987e 201 uint16_t RCA; /*!< SD relative card address */
mbed_official 610:813dcc80987e 202 uint8_t CardType; /*!< SD card type */
mbed_official 610:813dcc80987e 203
mbed_official 610:813dcc80987e 204 }HAL_SD_CardInfoTypedef;
mbed_official 610:813dcc80987e 205 /**
mbed_official 610:813dcc80987e 206 * @}
mbed_official 610:813dcc80987e 207 */
mbed_official 610:813dcc80987e 208
mbed_official 610:813dcc80987e 209 /** @defgroup SD_Exported_Types_Group6 SD Error status enumeration Structure definition
mbed_official 610:813dcc80987e 210 * @{
mbed_official 610:813dcc80987e 211 */
mbed_official 610:813dcc80987e 212 typedef enum
mbed_official 610:813dcc80987e 213 {
mbed_official 610:813dcc80987e 214 /**
mbed_official 610:813dcc80987e 215 * @brief SD specific error defines
mbed_official 610:813dcc80987e 216 */
mbed_official 610:813dcc80987e 217 SD_CMD_CRC_FAIL = (1), /*!< Command response received (but CRC check failed) */
mbed_official 610:813dcc80987e 218 SD_DATA_CRC_FAIL = (2), /*!< Data block sent/received (CRC check failed) */
mbed_official 610:813dcc80987e 219 SD_CMD_RSP_TIMEOUT = (3), /*!< Command response timeout */
mbed_official 610:813dcc80987e 220 SD_DATA_TIMEOUT = (4), /*!< Data timeout */
mbed_official 610:813dcc80987e 221 SD_TX_UNDERRUN = (5), /*!< Transmit FIFO underrun */
mbed_official 610:813dcc80987e 222 SD_RX_OVERRUN = (6), /*!< Receive FIFO overrun */
mbed_official 610:813dcc80987e 223 SD_START_BIT_ERR = (7), /*!< Start bit not detected on all data signals in wide bus mode */
mbed_official 610:813dcc80987e 224 SD_CMD_OUT_OF_RANGE = (8), /*!< Command's argument was out of range. */
mbed_official 610:813dcc80987e 225 SD_ADDR_MISALIGNED = (9), /*!< Misaligned address */
mbed_official 610:813dcc80987e 226 SD_BLOCK_LEN_ERR = (10), /*!< Transferred block length is not allowed for the card or the number of transferred bytes does not match the block length */
mbed_official 610:813dcc80987e 227 SD_ERASE_SEQ_ERR = (11), /*!< An error in the sequence of erase command occurs. */
mbed_official 610:813dcc80987e 228 SD_BAD_ERASE_PARAM = (12), /*!< An invalid selection for erase groups */
mbed_official 610:813dcc80987e 229 SD_WRITE_PROT_VIOLATION = (13), /*!< Attempt to program a write protect block */
mbed_official 610:813dcc80987e 230 SD_LOCK_UNLOCK_FAILED = (14), /*!< Sequence or password error has been detected in unlock command or if there was an attempt to access a locked card */
mbed_official 610:813dcc80987e 231 SD_COM_CRC_FAILED = (15), /*!< CRC check of the previous command failed */
mbed_official 610:813dcc80987e 232 SD_ILLEGAL_CMD = (16), /*!< Command is not legal for the card state */
mbed_official 610:813dcc80987e 233 SD_CARD_ECC_FAILED = (17), /*!< Card internal ECC was applied but failed to correct the data */
mbed_official 610:813dcc80987e 234 SD_CC_ERROR = (18), /*!< Internal card controller error */
mbed_official 610:813dcc80987e 235 SD_GENERAL_UNKNOWN_ERROR = (19), /*!< General or unknown error */
mbed_official 610:813dcc80987e 236 SD_STREAM_READ_UNDERRUN = (20), /*!< The card could not sustain data transfer in stream read operation. */
mbed_official 610:813dcc80987e 237 SD_STREAM_WRITE_OVERRUN = (21), /*!< The card could not sustain data programming in stream mode */
mbed_official 610:813dcc80987e 238 SD_CID_CSD_OVERWRITE = (22), /*!< CID/CSD overwrite error */
mbed_official 610:813dcc80987e 239 SD_WP_ERASE_SKIP = (23), /*!< Only partial address space was erased */
mbed_official 610:813dcc80987e 240 SD_CARD_ECC_DISABLED = (24), /*!< Command has been executed without using internal ECC */
mbed_official 610:813dcc80987e 241 SD_ERASE_RESET = (25), /*!< Erase sequence was cleared before executing because an out of erase sequence command was received */
mbed_official 610:813dcc80987e 242 SD_AKE_SEQ_ERROR = (26), /*!< Error in sequence of authentication. */
mbed_official 610:813dcc80987e 243 SD_INVALID_VOLTRANGE = (27),
mbed_official 610:813dcc80987e 244 SD_ADDR_OUT_OF_RANGE = (28),
mbed_official 610:813dcc80987e 245 SD_SWITCH_ERROR = (29),
mbed_official 610:813dcc80987e 246 SD_SDMMC_DISABLED = (30),
mbed_official 610:813dcc80987e 247 SD_SDMMC_FUNCTION_BUSY = (31),
mbed_official 610:813dcc80987e 248 SD_SDMMC_FUNCTION_FAILED = (32),
mbed_official 610:813dcc80987e 249 SD_SDMMC_UNKNOWN_FUNCTION = (33),
mbed_official 610:813dcc80987e 250
mbed_official 610:813dcc80987e 251 /**
mbed_official 610:813dcc80987e 252 * @brief Standard error defines
mbed_official 610:813dcc80987e 253 */
mbed_official 610:813dcc80987e 254 SD_INTERNAL_ERROR = (34),
mbed_official 610:813dcc80987e 255 SD_NOT_CONFIGURED = (35),
mbed_official 610:813dcc80987e 256 SD_REQUEST_PENDING = (36),
mbed_official 610:813dcc80987e 257 SD_REQUEST_NOT_APPLICABLE = (37),
mbed_official 610:813dcc80987e 258 SD_INVALID_PARAMETER = (38),
mbed_official 610:813dcc80987e 259 SD_UNSUPPORTED_FEATURE = (39),
mbed_official 610:813dcc80987e 260 SD_UNSUPPORTED_HW = (40),
mbed_official 610:813dcc80987e 261 SD_ERROR = (41),
mbed_official 610:813dcc80987e 262 SD_OK = (0)
mbed_official 610:813dcc80987e 263
mbed_official 610:813dcc80987e 264 }HAL_SD_ErrorTypedef;
mbed_official 610:813dcc80987e 265 /**
mbed_official 610:813dcc80987e 266 * @}
mbed_official 610:813dcc80987e 267 */
mbed_official 610:813dcc80987e 268
mbed_official 610:813dcc80987e 269 /** @defgroup SD_Exported_Types_Group7 SD Transfer state enumeration structure
mbed_official 610:813dcc80987e 270 * @{
mbed_official 610:813dcc80987e 271 */
mbed_official 610:813dcc80987e 272 typedef enum
mbed_official 610:813dcc80987e 273 {
mbed_official 610:813dcc80987e 274 SD_TRANSFER_OK = 0, /*!< Transfer success */
mbed_official 610:813dcc80987e 275 SD_TRANSFER_BUSY = 1, /*!< Transfer is occurring */
mbed_official 610:813dcc80987e 276 SD_TRANSFER_ERROR = 2 /*!< Transfer failed */
mbed_official 610:813dcc80987e 277
mbed_official 610:813dcc80987e 278 }HAL_SD_TransferStateTypedef;
mbed_official 610:813dcc80987e 279 /**
mbed_official 610:813dcc80987e 280 * @}
mbed_official 610:813dcc80987e 281 */
mbed_official 610:813dcc80987e 282
mbed_official 610:813dcc80987e 283 /** @defgroup SD_Exported_Types_Group8 SD Card State enumeration structure
mbed_official 610:813dcc80987e 284 * @{
mbed_official 610:813dcc80987e 285 */
mbed_official 610:813dcc80987e 286 typedef enum
mbed_official 610:813dcc80987e 287 {
mbed_official 610:813dcc80987e 288 SD_CARD_READY = ((uint32_t)0x00000001), /*!< Card state is ready */
mbed_official 610:813dcc80987e 289 SD_CARD_IDENTIFICATION = ((uint32_t)0x00000002), /*!< Card is in identification state */
mbed_official 610:813dcc80987e 290 SD_CARD_STANDBY = ((uint32_t)0x00000003), /*!< Card is in standby state */
mbed_official 610:813dcc80987e 291 SD_CARD_TRANSFER = ((uint32_t)0x00000004), /*!< Card is in transfer state */
mbed_official 610:813dcc80987e 292 SD_CARD_SENDING = ((uint32_t)0x00000005), /*!< Card is sending an operation */
mbed_official 610:813dcc80987e 293 SD_CARD_RECEIVING = ((uint32_t)0x00000006), /*!< Card is receiving operation information */
mbed_official 610:813dcc80987e 294 SD_CARD_PROGRAMMING = ((uint32_t)0x00000007), /*!< Card is in programming state */
mbed_official 610:813dcc80987e 295 SD_CARD_DISCONNECTED = ((uint32_t)0x00000008), /*!< Card is disconnected */
mbed_official 610:813dcc80987e 296 SD_CARD_ERROR = ((uint32_t)0x000000FF) /*!< Card is in error state */
mbed_official 610:813dcc80987e 297
mbed_official 610:813dcc80987e 298 }HAL_SD_CardStateTypedef;
mbed_official 610:813dcc80987e 299 /**
mbed_official 610:813dcc80987e 300 * @}
mbed_official 610:813dcc80987e 301 */
mbed_official 610:813dcc80987e 302
mbed_official 610:813dcc80987e 303 /** @defgroup SD_Exported_Types_Group9 SD Operation enumeration structure
mbed_official 610:813dcc80987e 304 * @{
mbed_official 610:813dcc80987e 305 */
mbed_official 610:813dcc80987e 306 typedef enum
mbed_official 610:813dcc80987e 307 {
mbed_official 610:813dcc80987e 308 SD_READ_SINGLE_BLOCK = 0, /*!< Read single block operation */
mbed_official 610:813dcc80987e 309 SD_READ_MULTIPLE_BLOCK = 1, /*!< Read multiple blocks operation */
mbed_official 610:813dcc80987e 310 SD_WRITE_SINGLE_BLOCK = 2, /*!< Write single block operation */
mbed_official 610:813dcc80987e 311 SD_WRITE_MULTIPLE_BLOCK = 3 /*!< Write multiple blocks operation */
mbed_official 610:813dcc80987e 312
mbed_official 610:813dcc80987e 313 }HAL_SD_OperationTypedef;
mbed_official 610:813dcc80987e 314 /**
mbed_official 610:813dcc80987e 315 * @}
mbed_official 610:813dcc80987e 316 */
mbed_official 610:813dcc80987e 317
mbed_official 610:813dcc80987e 318 /**
mbed_official 610:813dcc80987e 319 * @}
mbed_official 610:813dcc80987e 320 */
mbed_official 610:813dcc80987e 321
mbed_official 610:813dcc80987e 322 /* Exported constants --------------------------------------------------------*/
mbed_official 610:813dcc80987e 323 /** @defgroup SD_Exported_Constants SD Exported Constants
mbed_official 610:813dcc80987e 324 * @{
mbed_official 610:813dcc80987e 325 */
mbed_official 610:813dcc80987e 326
mbed_official 610:813dcc80987e 327 /**
mbed_official 610:813dcc80987e 328 * @brief SD Commands Index
mbed_official 610:813dcc80987e 329 */
mbed_official 610:813dcc80987e 330 #define SD_CMD_GO_IDLE_STATE ((uint8_t)0) /*!< Resets the SD memory card. */
mbed_official 610:813dcc80987e 331 #define SD_CMD_SEND_OP_COND ((uint8_t)1) /*!< Sends host capacity support information and activates the card's initialization process. */
mbed_official 610:813dcc80987e 332 #define SD_CMD_ALL_SEND_CID ((uint8_t)2) /*!< Asks any card connected to the host to send the CID numbers on the CMD line. */
mbed_official 610:813dcc80987e 333 #define SD_CMD_SET_REL_ADDR ((uint8_t)3) /*!< Asks the card to publish a new relative address (RCA). */
mbed_official 610:813dcc80987e 334 #define SD_CMD_SET_DSR ((uint8_t)4) /*!< Programs the DSR of all cards. */
mbed_official 610:813dcc80987e 335 #define SD_CMD_SDMMC_SEN_OP_COND ((uint8_t)5) /*!< Sends host capacity support information (HCS) and asks the accessed card to send its
mbed_official 610:813dcc80987e 336 operating condition register (OCR) content in the response on the CMD line. */
mbed_official 610:813dcc80987e 337 #define SD_CMD_HS_SWITCH ((uint8_t)6) /*!< Checks switchable function (mode 0) and switch card function (mode 1). */
mbed_official 610:813dcc80987e 338 #define SD_CMD_SEL_DESEL_CARD ((uint8_t)7) /*!< Selects the card by its own relative address and gets deselected by any other address */
mbed_official 610:813dcc80987e 339 #define SD_CMD_HS_SEND_EXT_CSD ((uint8_t)8) /*!< Sends SD Memory Card interface condition, which includes host supply voltage information
mbed_official 610:813dcc80987e 340 and asks the card whether card supports voltage. */
mbed_official 610:813dcc80987e 341 #define SD_CMD_SEND_CSD ((uint8_t)9) /*!< Addressed card sends its card specific data (CSD) on the CMD line. */
mbed_official 610:813dcc80987e 342 #define SD_CMD_SEND_CID ((uint8_t)10) /*!< Addressed card sends its card identification (CID) on the CMD line. */
mbed_official 610:813dcc80987e 343 #define SD_CMD_READ_DAT_UNTIL_STOP ((uint8_t)11) /*!< SD card doesn't support it. */
mbed_official 610:813dcc80987e 344 #define SD_CMD_STOP_TRANSMISSION ((uint8_t)12) /*!< Forces the card to stop transmission. */
mbed_official 610:813dcc80987e 345 #define SD_CMD_SEND_STATUS ((uint8_t)13) /*!< Addressed card sends its status register. */
mbed_official 610:813dcc80987e 346 #define SD_CMD_HS_BUSTEST_READ ((uint8_t)14)
mbed_official 610:813dcc80987e 347 #define SD_CMD_GO_INACTIVE_STATE ((uint8_t)15) /*!< Sends an addressed card into the inactive state. */
mbed_official 610:813dcc80987e 348 #define SD_CMD_SET_BLOCKLEN ((uint8_t)16) /*!< Sets the block length (in bytes for SDSC) for all following block commands
mbed_official 610:813dcc80987e 349 (read, write, lock). Default block length is fixed to 512 Bytes. Not effective
mbed_official 610:813dcc80987e 350 for SDHS and SDXC. */
mbed_official 610:813dcc80987e 351 #define SD_CMD_READ_SINGLE_BLOCK ((uint8_t)17) /*!< Reads single block of size selected by SET_BLOCKLEN in case of SDSC, and a block of
mbed_official 610:813dcc80987e 352 fixed 512 bytes in case of SDHC and SDXC. */
mbed_official 610:813dcc80987e 353 #define SD_CMD_READ_MULT_BLOCK ((uint8_t)18) /*!< Continuously transfers data blocks from card to host until interrupted by
mbed_official 610:813dcc80987e 354 STOP_TRANSMISSION command. */
mbed_official 610:813dcc80987e 355 #define SD_CMD_HS_BUSTEST_WRITE ((uint8_t)19) /*!< 64 bytes tuning pattern is sent for SDR50 and SDR104. */
mbed_official 610:813dcc80987e 356 #define SD_CMD_WRITE_DAT_UNTIL_STOP ((uint8_t)20) /*!< Speed class control command. */
mbed_official 610:813dcc80987e 357 #define SD_CMD_SET_BLOCK_COUNT ((uint8_t)23) /*!< Specify block count for CMD18 and CMD25. */
mbed_official 610:813dcc80987e 358 #define SD_CMD_WRITE_SINGLE_BLOCK ((uint8_t)24) /*!< Writes single block of size selected by SET_BLOCKLEN in case of SDSC, and a block of
mbed_official 610:813dcc80987e 359 fixed 512 bytes in case of SDHC and SDXC. */
mbed_official 610:813dcc80987e 360 #define SD_CMD_WRITE_MULT_BLOCK ((uint8_t)25) /*!< Continuously writes blocks of data until a STOP_TRANSMISSION follows. */
mbed_official 610:813dcc80987e 361 #define SD_CMD_PROG_CID ((uint8_t)26) /*!< Reserved for manufacturers. */
mbed_official 610:813dcc80987e 362 #define SD_CMD_PROG_CSD ((uint8_t)27) /*!< Programming of the programmable bits of the CSD. */
mbed_official 610:813dcc80987e 363 #define SD_CMD_SET_WRITE_PROT ((uint8_t)28) /*!< Sets the write protection bit of the addressed group. */
mbed_official 610:813dcc80987e 364 #define SD_CMD_CLR_WRITE_PROT ((uint8_t)29) /*!< Clears the write protection bit of the addressed group. */
mbed_official 610:813dcc80987e 365 #define SD_CMD_SEND_WRITE_PROT ((uint8_t)30) /*!< Asks the card to send the status of the write protection bits. */
mbed_official 610:813dcc80987e 366 #define SD_CMD_SD_ERASE_GRP_START ((uint8_t)32) /*!< Sets the address of the first write block to be erased. (For SD card only). */
mbed_official 610:813dcc80987e 367 #define SD_CMD_SD_ERASE_GRP_END ((uint8_t)33) /*!< Sets the address of the last write block of the continuous range to be erased. */
mbed_official 610:813dcc80987e 368 #define SD_CMD_ERASE_GRP_START ((uint8_t)35) /*!< Sets the address of the first write block to be erased. Reserved for each command
mbed_official 610:813dcc80987e 369 system set by switch function command (CMD6). */
mbed_official 610:813dcc80987e 370 #define SD_CMD_ERASE_GRP_END ((uint8_t)36) /*!< Sets the address of the last write block of the continuous range to be erased.
mbed_official 610:813dcc80987e 371 Reserved for each command system set by switch function command (CMD6). */
mbed_official 610:813dcc80987e 372 #define SD_CMD_ERASE ((uint8_t)38) /*!< Reserved for SD security applications. */
mbed_official 610:813dcc80987e 373 #define SD_CMD_FAST_IO ((uint8_t)39) /*!< SD card doesn't support it (Reserved). */
mbed_official 610:813dcc80987e 374 #define SD_CMD_GO_IRQ_STATE ((uint8_t)40) /*!< SD card doesn't support it (Reserved). */
mbed_official 610:813dcc80987e 375 #define SD_CMD_LOCK_UNLOCK ((uint8_t)42) /*!< Sets/resets the password or lock/unlock the card. The size of the data block is set by
mbed_official 610:813dcc80987e 376 the SET_BLOCK_LEN command. */
mbed_official 610:813dcc80987e 377 #define SD_CMD_APP_CMD ((uint8_t)55) /*!< Indicates to the card that the next command is an application specific command rather
mbed_official 610:813dcc80987e 378 than a standard command. */
mbed_official 610:813dcc80987e 379 #define SD_CMD_GEN_CMD ((uint8_t)56) /*!< Used either to transfer a data block to the card or to get a data block from the card
mbed_official 610:813dcc80987e 380 for general purpose/application specific commands. */
mbed_official 610:813dcc80987e 381 #define SD_CMD_NO_CMD ((uint8_t)64)
mbed_official 610:813dcc80987e 382
mbed_official 610:813dcc80987e 383 /**
mbed_official 610:813dcc80987e 384 * @brief Following commands are SD Card Specific commands.
mbed_official 610:813dcc80987e 385 * SDMMC_APP_CMD should be sent before sending these commands.
mbed_official 610:813dcc80987e 386 */
mbed_official 610:813dcc80987e 387 #define SD_CMD_APP_SD_SET_BUSWIDTH ((uint8_t)6) /*!< (ACMD6) Defines the data bus width to be used for data transfer. The allowed data bus
mbed_official 610:813dcc80987e 388 widths are given in SCR register. */
mbed_official 610:813dcc80987e 389 #define SD_CMD_SD_APP_STATUS ((uint8_t)13) /*!< (ACMD13) Sends the SD status. */
mbed_official 610:813dcc80987e 390 #define SD_CMD_SD_APP_SEND_NUM_WRITE_BLOCKS ((uint8_t)22) /*!< (ACMD22) Sends the number of the written (without errors) write blocks. Responds with
mbed_official 610:813dcc80987e 391 32bit+CRC data block. */
mbed_official 610:813dcc80987e 392 #define SD_CMD_SD_APP_OP_COND ((uint8_t)41) /*!< (ACMD41) Sends host capacity support information (HCS) and asks the accessed card to
mbed_official 610:813dcc80987e 393 send its operating condition register (OCR) content in the response on the CMD line. */
mbed_official 610:813dcc80987e 394 #define SD_CMD_SD_APP_SET_CLR_CARD_DETECT ((uint8_t)42) /*!< (ACMD42) Connects/Disconnects the 50 KOhm pull-up resistor on CD/DAT3 (pin 1) of the card. */
mbed_official 610:813dcc80987e 395 #define SD_CMD_SD_APP_SEND_SCR ((uint8_t)51) /*!< Reads the SD Configuration Register (SCR). */
mbed_official 610:813dcc80987e 396 #define SD_CMD_SDMMC_RW_DIRECT ((uint8_t)52) /*!< For SD I/O card only, reserved for security specification. */
mbed_official 610:813dcc80987e 397 #define SD_CMD_SDMMC_RW_EXTENDED ((uint8_t)53) /*!< For SD I/O card only, reserved for security specification. */
mbed_official 610:813dcc80987e 398
mbed_official 610:813dcc80987e 399 /**
mbed_official 610:813dcc80987e 400 * @brief Following commands are SD Card Specific security commands.
mbed_official 610:813dcc80987e 401 * SD_CMD_APP_CMD should be sent before sending these commands.
mbed_official 610:813dcc80987e 402 */
mbed_official 610:813dcc80987e 403 #define SD_CMD_SD_APP_GET_MKB ((uint8_t)43) /*!< For SD card only */
mbed_official 610:813dcc80987e 404 #define SD_CMD_SD_APP_GET_MID ((uint8_t)44) /*!< For SD card only */
mbed_official 610:813dcc80987e 405 #define SD_CMD_SD_APP_SET_CER_RN1 ((uint8_t)45) /*!< For SD card only */
mbed_official 610:813dcc80987e 406 #define SD_CMD_SD_APP_GET_CER_RN2 ((uint8_t)46) /*!< For SD card only */
mbed_official 610:813dcc80987e 407 #define SD_CMD_SD_APP_SET_CER_RES2 ((uint8_t)47) /*!< For SD card only */
mbed_official 610:813dcc80987e 408 #define SD_CMD_SD_APP_GET_CER_RES1 ((uint8_t)48) /*!< For SD card only */
mbed_official 610:813dcc80987e 409 #define SD_CMD_SD_APP_SECURE_READ_MULTIPLE_BLOCK ((uint8_t)18) /*!< For SD card only */
mbed_official 610:813dcc80987e 410 #define SD_CMD_SD_APP_SECURE_WRITE_MULTIPLE_BLOCK ((uint8_t)25) /*!< For SD card only */
mbed_official 610:813dcc80987e 411 #define SD_CMD_SD_APP_SECURE_ERASE ((uint8_t)38) /*!< For SD card only */
mbed_official 610:813dcc80987e 412 #define SD_CMD_SD_APP_CHANGE_SECURE_AREA ((uint8_t)49) /*!< For SD card only */
mbed_official 610:813dcc80987e 413 #define SD_CMD_SD_APP_SECURE_WRITE_MKB ((uint8_t)48) /*!< For SD card only */
mbed_official 610:813dcc80987e 414
mbed_official 610:813dcc80987e 415 /**
mbed_official 610:813dcc80987e 416 * @brief Supported SD Memory Cards
mbed_official 610:813dcc80987e 417 */
mbed_official 610:813dcc80987e 418 #define STD_CAPACITY_SD_CARD_V1_1 ((uint32_t)0x00000000)
mbed_official 610:813dcc80987e 419 #define STD_CAPACITY_SD_CARD_V2_0 ((uint32_t)0x00000001)
mbed_official 610:813dcc80987e 420 #define HIGH_CAPACITY_SD_CARD ((uint32_t)0x00000002)
mbed_official 610:813dcc80987e 421 #define MULTIMEDIA_CARD ((uint32_t)0x00000003)
mbed_official 610:813dcc80987e 422 #define SECURE_DIGITAL_IO_CARD ((uint32_t)0x00000004)
mbed_official 610:813dcc80987e 423 #define HIGH_SPEED_MULTIMEDIA_CARD ((uint32_t)0x00000005)
mbed_official 610:813dcc80987e 424 #define SECURE_DIGITAL_IO_COMBO_CARD ((uint32_t)0x00000006)
mbed_official 610:813dcc80987e 425 #define HIGH_CAPACITY_MMC_CARD ((uint32_t)0x00000007)
mbed_official 610:813dcc80987e 426 /**
mbed_official 610:813dcc80987e 427 * @}
mbed_official 610:813dcc80987e 428 */
mbed_official 610:813dcc80987e 429
mbed_official 610:813dcc80987e 430 /* Exported macro ------------------------------------------------------------*/
mbed_official 610:813dcc80987e 431 /** @defgroup SD_Exported_macros SD Exported Macros
mbed_official 610:813dcc80987e 432 * @brief macros to handle interrupts and specific clock configurations
mbed_official 610:813dcc80987e 433 * @{
mbed_official 610:813dcc80987e 434 */
mbed_official 610:813dcc80987e 435
mbed_official 610:813dcc80987e 436 /**
mbed_official 610:813dcc80987e 437 * @brief Enable the SD device.
mbed_official 610:813dcc80987e 438 * @retval None
mbed_official 610:813dcc80987e 439 */
mbed_official 610:813dcc80987e 440 #define __HAL_SD_SDMMC_ENABLE(__HANDLE__) __SDMMC_ENABLE((__HANDLE__)->Instance)
mbed_official 610:813dcc80987e 441
mbed_official 610:813dcc80987e 442 /**
mbed_official 610:813dcc80987e 443 * @brief Disable the SD device.
mbed_official 610:813dcc80987e 444 * @retval None
mbed_official 610:813dcc80987e 445 */
mbed_official 610:813dcc80987e 446 #define __HAL_SD_SDMMC_DISABLE(__HANDLE__) __SDMMC_DISABLE((__HANDLE__)->Instance)
mbed_official 610:813dcc80987e 447
mbed_official 610:813dcc80987e 448 /**
mbed_official 610:813dcc80987e 449 * @brief Enable the SDMMC DMA transfer.
mbed_official 610:813dcc80987e 450 * @retval None
mbed_official 610:813dcc80987e 451 */
mbed_official 610:813dcc80987e 452 #define __HAL_SD_SDMMC_DMA_ENABLE(__HANDLE__) __SDMMC_DMA_ENABLE((__HANDLE__)->Instance)
mbed_official 610:813dcc80987e 453
mbed_official 610:813dcc80987e 454 /**
mbed_official 610:813dcc80987e 455 * @brief Disable the SDMMC DMA transfer.
mbed_official 610:813dcc80987e 456 * @retval None
mbed_official 610:813dcc80987e 457 */
mbed_official 610:813dcc80987e 458 #define __HAL_SD_SDMMC_DMA_DISABLE(__HANDLE__) __SDMMC_DMA_DISABLE((__HANDLE__)->Instance)
mbed_official 610:813dcc80987e 459
mbed_official 610:813dcc80987e 460 /**
mbed_official 610:813dcc80987e 461 * @brief Enable the SD device interrupt.
mbed_official 610:813dcc80987e 462 * @param __HANDLE__: SD Handle
mbed_official 610:813dcc80987e 463 * @param __INTERRUPT__: specifies the SDMMC interrupt sources to be enabled.
mbed_official 610:813dcc80987e 464 * This parameter can be one or a combination of the following values:
mbed_official 610:813dcc80987e 465 * @arg SDMMC_IT_CCRCFAIL: Command response received (CRC check failed) interrupt
mbed_official 610:813dcc80987e 466 * @arg SDMMC_IT_DCRCFAIL: Data block sent/received (CRC check failed) interrupt
mbed_official 610:813dcc80987e 467 * @arg SDMMC_IT_CTIMEOUT: Command response timeout interrupt
mbed_official 610:813dcc80987e 468 * @arg SDMMC_IT_DTIMEOUT: Data timeout interrupt
mbed_official 610:813dcc80987e 469 * @arg SDMMC_IT_TXUNDERR: Transmit FIFO underrun error interrupt
mbed_official 610:813dcc80987e 470 * @arg SDMMC_IT_RXOVERR: Received FIFO overrun error interrupt
mbed_official 610:813dcc80987e 471 * @arg SDMMC_IT_CMDREND: Command response received (CRC check passed) interrupt
mbed_official 610:813dcc80987e 472 * @arg SDMMC_IT_CMDSENT: Command sent (no response required) interrupt
mbed_official 610:813dcc80987e 473 * @arg SDMMC_IT_DATAEND: Data end (data counter, SDIDCOUNT, is zero) interrupt
mbed_official 610:813dcc80987e 474 * @arg SDMMC_IT_DBCKEND: Data block sent/received (CRC check passed) interrupt
mbed_official 610:813dcc80987e 475 * @arg SDMMC_IT_CMDACT: Command transfer in progress interrupt
mbed_official 610:813dcc80987e 476 * @arg SDMMC_IT_TXACT: Data transmit in progress interrupt
mbed_official 610:813dcc80987e 477 * @arg SDMMC_IT_RXACT: Data receive in progress interrupt
mbed_official 610:813dcc80987e 478 * @arg SDMMC_IT_TXFIFOHE: Transmit FIFO Half Empty interrupt
mbed_official 610:813dcc80987e 479 * @arg SDMMC_IT_RXFIFOHF: Receive FIFO Half Full interrupt
mbed_official 610:813dcc80987e 480 * @arg SDMMC_IT_TXFIFOF: Transmit FIFO full interrupt
mbed_official 610:813dcc80987e 481 * @arg SDMMC_IT_RXFIFOF: Receive FIFO full interrupt
mbed_official 610:813dcc80987e 482 * @arg SDMMC_IT_TXFIFOE: Transmit FIFO empty interrupt
mbed_official 610:813dcc80987e 483 * @arg SDMMC_IT_RXFIFOE: Receive FIFO empty interrupt
mbed_official 610:813dcc80987e 484 * @arg SDMMC_IT_TXDAVL: Data available in transmit FIFO interrupt
mbed_official 610:813dcc80987e 485 * @arg SDMMC_IT_RXDAVL: Data available in receive FIFO interrupt
mbed_official 610:813dcc80987e 486 * @arg SDMMC_IT_SDIOIT: SD I/O interrupt received interrupt
mbed_official 610:813dcc80987e 487 * @retval None
mbed_official 610:813dcc80987e 488 */
mbed_official 610:813dcc80987e 489 #define __HAL_SD_SDMMC_ENABLE_IT(__HANDLE__, __INTERRUPT__) __SDMMC_ENABLE_IT((__HANDLE__)->Instance, (__INTERRUPT__))
mbed_official 610:813dcc80987e 490
mbed_official 610:813dcc80987e 491 /**
mbed_official 610:813dcc80987e 492 * @brief Disable the SD device interrupt.
mbed_official 610:813dcc80987e 493 * @param __HANDLE__: SD Handle
mbed_official 610:813dcc80987e 494 * @param __INTERRUPT__: specifies the SDMMC interrupt sources to be disabled.
mbed_official 610:813dcc80987e 495 * This parameter can be one or a combination of the following values:
mbed_official 610:813dcc80987e 496 * @arg SDMMC_IT_CCRCFAIL: Command response received (CRC check failed) interrupt
mbed_official 610:813dcc80987e 497 * @arg SDMMC_IT_DCRCFAIL: Data block sent/received (CRC check failed) interrupt
mbed_official 610:813dcc80987e 498 * @arg SDMMC_IT_CTIMEOUT: Command response timeout interrupt
mbed_official 610:813dcc80987e 499 * @arg SDMMC_IT_DTIMEOUT: Data timeout interrupt
mbed_official 610:813dcc80987e 500 * @arg SDMMC_IT_TXUNDERR: Transmit FIFO underrun error interrupt
mbed_official 610:813dcc80987e 501 * @arg SDMMC_IT_RXOVERR: Received FIFO overrun error interrupt
mbed_official 610:813dcc80987e 502 * @arg SDMMC_IT_CMDREND: Command response received (CRC check passed) interrupt
mbed_official 610:813dcc80987e 503 * @arg SDMMC_IT_CMDSENT: Command sent (no response required) interrupt
mbed_official 610:813dcc80987e 504 * @arg SDMMC_IT_DATAEND: Data end (data counter, SDIDCOUNT, is zero) interrupt
mbed_official 610:813dcc80987e 505 * @arg SDMMC_IT_DBCKEND: Data block sent/received (CRC check passed) interrupt
mbed_official 610:813dcc80987e 506 * @arg SDMMC_IT_CMDACT: Command transfer in progress interrupt
mbed_official 610:813dcc80987e 507 * @arg SDMMC_IT_TXACT: Data transmit in progress interrupt
mbed_official 610:813dcc80987e 508 * @arg SDMMC_IT_RXACT: Data receive in progress interrupt
mbed_official 610:813dcc80987e 509 * @arg SDMMC_IT_TXFIFOHE: Transmit FIFO Half Empty interrupt
mbed_official 610:813dcc80987e 510 * @arg SDMMC_IT_RXFIFOHF: Receive FIFO Half Full interrupt
mbed_official 610:813dcc80987e 511 * @arg SDMMC_IT_TXFIFOF: Transmit FIFO full interrupt
mbed_official 610:813dcc80987e 512 * @arg SDMMC_IT_RXFIFOF: Receive FIFO full interrupt
mbed_official 610:813dcc80987e 513 * @arg SDMMC_IT_TXFIFOE: Transmit FIFO empty interrupt
mbed_official 610:813dcc80987e 514 * @arg SDMMC_IT_RXFIFOE: Receive FIFO empty interrupt
mbed_official 610:813dcc80987e 515 * @arg SDMMC_IT_TXDAVL: Data available in transmit FIFO interrupt
mbed_official 610:813dcc80987e 516 * @arg SDMMC_IT_RXDAVL: Data available in receive FIFO interrupt
mbed_official 610:813dcc80987e 517 * @arg SDMMC_IT_SDIOIT: SD I/O interrupt received interrupt
mbed_official 610:813dcc80987e 518 * @retval None
mbed_official 610:813dcc80987e 519 */
mbed_official 610:813dcc80987e 520 #define __HAL_SD_SDMMC_DISABLE_IT(__HANDLE__, __INTERRUPT__) __SDMMC_DISABLE_IT((__HANDLE__)->Instance, (__INTERRUPT__))
mbed_official 610:813dcc80987e 521
mbed_official 610:813dcc80987e 522 /**
mbed_official 610:813dcc80987e 523 * @brief Check whether the specified SD flag is set or not.
mbed_official 610:813dcc80987e 524 * @param __HANDLE__: SD Handle
mbed_official 610:813dcc80987e 525 * @param __FLAG__: specifies the flag to check.
mbed_official 610:813dcc80987e 526 * This parameter can be one of the following values:
mbed_official 610:813dcc80987e 527 * @arg SDMMC_FLAG_CCRCFAIL: Command response received (CRC check failed)
mbed_official 610:813dcc80987e 528 * @arg SDMMC_FLAG_DCRCFAIL: Data block sent/received (CRC check failed)
mbed_official 610:813dcc80987e 529 * @arg SDMMC_FLAG_CTIMEOUT: Command response timeout
mbed_official 610:813dcc80987e 530 * @arg SDMMC_FLAG_DTIMEOUT: Data timeout
mbed_official 610:813dcc80987e 531 * @arg SDMMC_FLAG_TXUNDERR: Transmit FIFO underrun error
mbed_official 610:813dcc80987e 532 * @arg SDMMC_FLAG_RXOVERR: Received FIFO overrun error
mbed_official 610:813dcc80987e 533 * @arg SDMMC_FLAG_CMDREND: Command response received (CRC check passed)
mbed_official 610:813dcc80987e 534 * @arg SDMMC_FLAG_CMDSENT: Command sent (no response required)
mbed_official 610:813dcc80987e 535 * @arg SDMMC_FLAG_DATAEND: Data end (data counter, SDIDCOUNT, is zero)
mbed_official 610:813dcc80987e 536 * @arg SDMMC_FLAG_DBCKEND: Data block sent/received (CRC check passed)
mbed_official 610:813dcc80987e 537 * @arg SDMMC_FLAG_CMDACT: Command transfer in progress
mbed_official 610:813dcc80987e 538 * @arg SDMMC_FLAG_TXACT: Data transmit in progress
mbed_official 610:813dcc80987e 539 * @arg SDMMC_FLAG_RXACT: Data receive in progress
mbed_official 610:813dcc80987e 540 * @arg SDMMC_FLAG_TXFIFOHE: Transmit FIFO Half Empty
mbed_official 610:813dcc80987e 541 * @arg SDMMC_FLAG_RXFIFOHF: Receive FIFO Half Full
mbed_official 610:813dcc80987e 542 * @arg SDMMC_FLAG_TXFIFOF: Transmit FIFO full
mbed_official 610:813dcc80987e 543 * @arg SDMMC_FLAG_RXFIFOF: Receive FIFO full
mbed_official 610:813dcc80987e 544 * @arg SDMMC_FLAG_TXFIFOE: Transmit FIFO empty
mbed_official 610:813dcc80987e 545 * @arg SDMMC_FLAG_RXFIFOE: Receive FIFO empty
mbed_official 610:813dcc80987e 546 * @arg SDMMC_FLAG_TXDAVL: Data available in transmit FIFO
mbed_official 610:813dcc80987e 547 * @arg SDMMC_FLAG_RXDAVL: Data available in receive FIFO
mbed_official 610:813dcc80987e 548 * @arg SDMMC_FLAG_SDIOIT: SD I/O interrupt received
mbed_official 610:813dcc80987e 549 * @retval The new state of SD FLAG (SET or RESET).
mbed_official 610:813dcc80987e 550 */
mbed_official 610:813dcc80987e 551 #define __HAL_SD_SDMMC_GET_FLAG(__HANDLE__, __FLAG__) __SDMMC_GET_FLAG((__HANDLE__)->Instance, (__FLAG__))
mbed_official 610:813dcc80987e 552
mbed_official 610:813dcc80987e 553 /**
mbed_official 610:813dcc80987e 554 * @brief Clear the SD's pending flags.
mbed_official 610:813dcc80987e 555 * @param __HANDLE__: SD Handle
mbed_official 610:813dcc80987e 556 * @param __FLAG__: specifies the flag to clear.
mbed_official 610:813dcc80987e 557 * This parameter can be one or a combination of the following values:
mbed_official 610:813dcc80987e 558 * @arg SDMMC_FLAG_CCRCFAIL: Command response received (CRC check failed)
mbed_official 610:813dcc80987e 559 * @arg SDMMC_FLAG_DCRCFAIL: Data block sent/received (CRC check failed)
mbed_official 610:813dcc80987e 560 * @arg SDMMC_FLAG_CTIMEOUT: Command response timeout
mbed_official 610:813dcc80987e 561 * @arg SDMMC_FLAG_DTIMEOUT: Data timeout
mbed_official 610:813dcc80987e 562 * @arg SDMMC_FLAG_TXUNDERR: Transmit FIFO underrun error
mbed_official 610:813dcc80987e 563 * @arg SDMMC_FLAG_RXOVERR: Received FIFO overrun error
mbed_official 610:813dcc80987e 564 * @arg SDMMC_FLAG_CMDREND: Command response received (CRC check passed)
mbed_official 610:813dcc80987e 565 * @arg SDMMC_FLAG_CMDSENT: Command sent (no response required)
mbed_official 610:813dcc80987e 566 * @arg SDMMC_FLAG_DATAEND: Data end (data counter, SDIDCOUNT, is zero)
mbed_official 610:813dcc80987e 567 * @arg SDMMC_FLAG_DBCKEND: Data block sent/received (CRC check passed)
mbed_official 610:813dcc80987e 568 * @arg SDMMC_FLAG_SDIOIT: SD I/O interrupt received
mbed_official 610:813dcc80987e 569 * @retval None
mbed_official 610:813dcc80987e 570 */
mbed_official 610:813dcc80987e 571 #define __HAL_SD_SDMMC_CLEAR_FLAG(__HANDLE__, __FLAG__) __SDMMC_CLEAR_FLAG((__HANDLE__)->Instance, (__FLAG__))
mbed_official 610:813dcc80987e 572
mbed_official 610:813dcc80987e 573 /**
mbed_official 610:813dcc80987e 574 * @brief Check whether the specified SD interrupt has occurred or not.
mbed_official 610:813dcc80987e 575 * @param __HANDLE__: SD Handle
mbed_official 610:813dcc80987e 576 * @param __INTERRUPT__: specifies the SDMMC interrupt source to check.
mbed_official 610:813dcc80987e 577 * This parameter can be one of the following values:
mbed_official 610:813dcc80987e 578 * @arg SDMMC_IT_CCRCFAIL: Command response received (CRC check failed) interrupt
mbed_official 610:813dcc80987e 579 * @arg SDMMC_IT_DCRCFAIL: Data block sent/received (CRC check failed) interrupt
mbed_official 610:813dcc80987e 580 * @arg SDMMC_IT_CTIMEOUT: Command response timeout interrupt
mbed_official 610:813dcc80987e 581 * @arg SDMMC_IT_DTIMEOUT: Data timeout interrupt
mbed_official 610:813dcc80987e 582 * @arg SDMMC_IT_TXUNDERR: Transmit FIFO underrun error interrupt
mbed_official 610:813dcc80987e 583 * @arg SDMMC_IT_RXOVERR: Received FIFO overrun error interrupt
mbed_official 610:813dcc80987e 584 * @arg SDMMC_IT_CMDREND: Command response received (CRC check passed) interrupt
mbed_official 610:813dcc80987e 585 * @arg SDMMC_IT_CMDSENT: Command sent (no response required) interrupt
mbed_official 610:813dcc80987e 586 * @arg SDMMC_IT_DATAEND: Data end (data counter, SDIDCOUNT, is zero) interrupt
mbed_official 610:813dcc80987e 587 * @arg SDMMC_IT_DBCKEND: Data block sent/received (CRC check passed) interrupt
mbed_official 610:813dcc80987e 588 * @arg SDMMC_IT_CMDACT: Command transfer in progress interrupt
mbed_official 610:813dcc80987e 589 * @arg SDMMC_IT_TXACT: Data transmit in progress interrupt
mbed_official 610:813dcc80987e 590 * @arg SDMMC_IT_RXACT: Data receive in progress interrupt
mbed_official 610:813dcc80987e 591 * @arg SDMMC_IT_TXFIFOHE: Transmit FIFO Half Empty interrupt
mbed_official 610:813dcc80987e 592 * @arg SDMMC_IT_RXFIFOHF: Receive FIFO Half Full interrupt
mbed_official 610:813dcc80987e 593 * @arg SDMMC_IT_TXFIFOF: Transmit FIFO full interrupt
mbed_official 610:813dcc80987e 594 * @arg SDMMC_IT_RXFIFOF: Receive FIFO full interrupt
mbed_official 610:813dcc80987e 595 * @arg SDMMC_IT_TXFIFOE: Transmit FIFO empty interrupt
mbed_official 610:813dcc80987e 596 * @arg SDMMC_IT_RXFIFOE: Receive FIFO empty interrupt
mbed_official 610:813dcc80987e 597 * @arg SDMMC_IT_TXDAVL: Data available in transmit FIFO interrupt
mbed_official 610:813dcc80987e 598 * @arg SDMMC_IT_RXDAVL: Data available in receive FIFO interrupt
mbed_official 610:813dcc80987e 599 * @arg SDMMC_IT_SDIOIT: SD I/O interrupt received interrupt
mbed_official 610:813dcc80987e 600 * @retval The new state of SD IT (SET or RESET).
mbed_official 610:813dcc80987e 601 */
mbed_official 610:813dcc80987e 602 #define __HAL_SD_SDMMC_GET_IT(__HANDLE__, __INTERRUPT__) __SDMMC_GET_IT((__HANDLE__)->Instance, (__INTERRUPT__))
mbed_official 610:813dcc80987e 603
mbed_official 610:813dcc80987e 604 /**
mbed_official 610:813dcc80987e 605 * @brief Clear the SD's interrupt pending bits.
mbed_official 610:813dcc80987e 606 * @param __HANDLE__: SD Handle
mbed_official 610:813dcc80987e 607 * @param __INTERRUPT__: specifies the interrupt pending bit to clear.
mbed_official 610:813dcc80987e 608 * This parameter can be one or a combination of the following values:
mbed_official 610:813dcc80987e 609 * @arg SDMMC_IT_CCRCFAIL: Command response received (CRC check failed) interrupt
mbed_official 610:813dcc80987e 610 * @arg SDMMC_IT_DCRCFAIL: Data block sent/received (CRC check failed) interrupt
mbed_official 610:813dcc80987e 611 * @arg SDMMC_IT_CTIMEOUT: Command response timeout interrupt
mbed_official 610:813dcc80987e 612 * @arg SDMMC_IT_DTIMEOUT: Data timeout interrupt
mbed_official 610:813dcc80987e 613 * @arg SDMMC_IT_TXUNDERR: Transmit FIFO underrun error interrupt
mbed_official 610:813dcc80987e 614 * @arg SDMMC_IT_RXOVERR: Received FIFO overrun error interrupt
mbed_official 610:813dcc80987e 615 * @arg SDMMC_IT_CMDREND: Command response received (CRC check passed) interrupt
mbed_official 610:813dcc80987e 616 * @arg SDMMC_IT_CMDSENT: Command sent (no response required) interrupt
mbed_official 610:813dcc80987e 617 * @arg SDMMC_IT_DATAEND: Data end (data counter, SDMMC_DCOUNT, is zero) interrupt
mbed_official 610:813dcc80987e 618 * @arg SDMMC_IT_SDIOIT: SD I/O interrupt received interrupt
mbed_official 610:813dcc80987e 619 * @retval None
mbed_official 610:813dcc80987e 620 */
mbed_official 610:813dcc80987e 621 #define __HAL_SD_SDMMC_CLEAR_IT(__HANDLE__, __INTERRUPT__) __SDMMC_CLEAR_IT((__HANDLE__)->Instance, (__INTERRUPT__))
mbed_official 610:813dcc80987e 622 /**
mbed_official 610:813dcc80987e 623 * @}
mbed_official 610:813dcc80987e 624 */
mbed_official 610:813dcc80987e 625
mbed_official 610:813dcc80987e 626 /* Exported functions --------------------------------------------------------*/
mbed_official 610:813dcc80987e 627 /** @defgroup SD_Exported_Functions SD Exported Functions
mbed_official 610:813dcc80987e 628 * @{
mbed_official 610:813dcc80987e 629 */
mbed_official 610:813dcc80987e 630
mbed_official 610:813dcc80987e 631 /** @defgroup SD_Exported_Functions_Group1 Initialization and de-initialization functions
mbed_official 610:813dcc80987e 632 * @{
mbed_official 610:813dcc80987e 633 */
mbed_official 610:813dcc80987e 634 HAL_SD_ErrorTypedef HAL_SD_Init(SD_HandleTypeDef *hsd, HAL_SD_CardInfoTypedef *SDCardInfo);
mbed_official 610:813dcc80987e 635 HAL_StatusTypeDef HAL_SD_DeInit (SD_HandleTypeDef *hsd);
mbed_official 610:813dcc80987e 636 void HAL_SD_MspInit(SD_HandleTypeDef *hsd);
mbed_official 610:813dcc80987e 637 void HAL_SD_MspDeInit(SD_HandleTypeDef *hsd);
mbed_official 610:813dcc80987e 638 /**
mbed_official 610:813dcc80987e 639 * @}
mbed_official 610:813dcc80987e 640 */
mbed_official 610:813dcc80987e 641
mbed_official 610:813dcc80987e 642 /** @defgroup SD_Exported_Functions_Group2 Input and Output operation functions
mbed_official 610:813dcc80987e 643 * @{
mbed_official 610:813dcc80987e 644 */
mbed_official 610:813dcc80987e 645 /* Blocking mode: Polling */
mbed_official 610:813dcc80987e 646 HAL_SD_ErrorTypedef HAL_SD_ReadBlocks(SD_HandleTypeDef *hsd, uint32_t *pReadBuffer, uint64_t ReadAddr, uint32_t BlockSize, uint32_t NumberOfBlocks);
mbed_official 610:813dcc80987e 647 HAL_SD_ErrorTypedef HAL_SD_WriteBlocks(SD_HandleTypeDef *hsd, uint32_t *pWriteBuffer, uint64_t WriteAddr, uint32_t BlockSize, uint32_t NumberOfBlocks);
mbed_official 610:813dcc80987e 648 HAL_SD_ErrorTypedef HAL_SD_Erase(SD_HandleTypeDef *hsd, uint64_t startaddr, uint64_t endaddr);
mbed_official 610:813dcc80987e 649
mbed_official 610:813dcc80987e 650 /* Non-Blocking mode: Interrupt */
mbed_official 610:813dcc80987e 651 void HAL_SD_IRQHandler(SD_HandleTypeDef *hsd);
mbed_official 610:813dcc80987e 652
mbed_official 610:813dcc80987e 653 /* Callback in non blocking modes (DMA) */
mbed_official 610:813dcc80987e 654 void HAL_SD_DMA_RxCpltCallback(DMA_HandleTypeDef *hdma);
mbed_official 610:813dcc80987e 655 void HAL_SD_DMA_RxErrorCallback(DMA_HandleTypeDef *hdma);
mbed_official 610:813dcc80987e 656 void HAL_SD_DMA_TxCpltCallback(DMA_HandleTypeDef *hdma);
mbed_official 610:813dcc80987e 657 void HAL_SD_DMA_TxErrorCallback(DMA_HandleTypeDef *hdma);
mbed_official 610:813dcc80987e 658 void HAL_SD_XferCpltCallback(SD_HandleTypeDef *hsd);
mbed_official 610:813dcc80987e 659 void HAL_SD_XferErrorCallback(SD_HandleTypeDef *hsd);
mbed_official 610:813dcc80987e 660
mbed_official 610:813dcc80987e 661 /* Non-Blocking mode: DMA */
mbed_official 610:813dcc80987e 662 HAL_SD_ErrorTypedef HAL_SD_ReadBlocks_DMA(SD_HandleTypeDef *hsd, uint32_t *pReadBuffer, uint64_t ReadAddr, uint32_t BlockSize, uint32_t NumberOfBlocks);
mbed_official 610:813dcc80987e 663 HAL_SD_ErrorTypedef HAL_SD_WriteBlocks_DMA(SD_HandleTypeDef *hsd, uint32_t *pWriteBuffer, uint64_t WriteAddr, uint32_t BlockSize, uint32_t NumberOfBlocks);
mbed_official 610:813dcc80987e 664 HAL_SD_ErrorTypedef HAL_SD_CheckWriteOperation(SD_HandleTypeDef *hsd, uint32_t Timeout);
mbed_official 610:813dcc80987e 665 HAL_SD_ErrorTypedef HAL_SD_CheckReadOperation(SD_HandleTypeDef *hsd, uint32_t Timeout);
mbed_official 610:813dcc80987e 666 /**
mbed_official 610:813dcc80987e 667 * @}
mbed_official 610:813dcc80987e 668 */
mbed_official 610:813dcc80987e 669
mbed_official 610:813dcc80987e 670 /** @defgroup SD_Exported_Functions_Group3 Peripheral Control functions
mbed_official 610:813dcc80987e 671 * @{
mbed_official 610:813dcc80987e 672 */
mbed_official 610:813dcc80987e 673 HAL_SD_ErrorTypedef HAL_SD_Get_CardInfo(SD_HandleTypeDef *hsd, HAL_SD_CardInfoTypedef *pCardInfo);
mbed_official 610:813dcc80987e 674 HAL_SD_ErrorTypedef HAL_SD_WideBusOperation_Config(SD_HandleTypeDef *hsd, uint32_t WideMode);
mbed_official 610:813dcc80987e 675 HAL_SD_ErrorTypedef HAL_SD_StopTransfer(SD_HandleTypeDef *hsd);
mbed_official 610:813dcc80987e 676 HAL_SD_ErrorTypedef HAL_SD_HighSpeed (SD_HandleTypeDef *hsd);
mbed_official 610:813dcc80987e 677 /**
mbed_official 610:813dcc80987e 678 * @}
mbed_official 610:813dcc80987e 679 */
mbed_official 610:813dcc80987e 680
mbed_official 610:813dcc80987e 681 /* Peripheral State functions ************************************************/
mbed_official 610:813dcc80987e 682 /** @defgroup SD_Exported_Functions_Group4 Peripheral State functions
mbed_official 610:813dcc80987e 683 * @{
mbed_official 610:813dcc80987e 684 */
mbed_official 610:813dcc80987e 685 HAL_SD_ErrorTypedef HAL_SD_SendSDStatus(SD_HandleTypeDef *hsd, uint32_t *pSDstatus);
mbed_official 610:813dcc80987e 686 HAL_SD_ErrorTypedef HAL_SD_GetCardStatus(SD_HandleTypeDef *hsd, HAL_SD_CardStatusTypedef *pCardStatus);
mbed_official 610:813dcc80987e 687 HAL_SD_TransferStateTypedef HAL_SD_GetStatus(SD_HandleTypeDef *hsd);
mbed_official 610:813dcc80987e 688 /**
mbed_official 610:813dcc80987e 689 * @}
mbed_official 610:813dcc80987e 690 */
mbed_official 610:813dcc80987e 691
mbed_official 610:813dcc80987e 692 /**
mbed_official 610:813dcc80987e 693 * @}
mbed_official 610:813dcc80987e 694 */
mbed_official 610:813dcc80987e 695
mbed_official 610:813dcc80987e 696 /* Private types -------------------------------------------------------------*/
mbed_official 610:813dcc80987e 697 /** @defgroup SD_Private_Types SD Private Types
mbed_official 610:813dcc80987e 698 * @{
mbed_official 610:813dcc80987e 699 */
mbed_official 610:813dcc80987e 700
mbed_official 610:813dcc80987e 701 /**
mbed_official 610:813dcc80987e 702 * @}
mbed_official 610:813dcc80987e 703 */
mbed_official 610:813dcc80987e 704
mbed_official 610:813dcc80987e 705 /* Private defines -----------------------------------------------------------*/
mbed_official 610:813dcc80987e 706 /** @defgroup SD_Private_Defines SD Private Defines
mbed_official 610:813dcc80987e 707 * @{
mbed_official 610:813dcc80987e 708 */
mbed_official 610:813dcc80987e 709
mbed_official 610:813dcc80987e 710 /**
mbed_official 610:813dcc80987e 711 * @}
mbed_official 610:813dcc80987e 712 */
mbed_official 610:813dcc80987e 713
mbed_official 610:813dcc80987e 714 /* Private variables ---------------------------------------------------------*/
mbed_official 610:813dcc80987e 715 /** @defgroup SD_Private_Variables SD Private Variables
mbed_official 610:813dcc80987e 716 * @{
mbed_official 610:813dcc80987e 717 */
mbed_official 610:813dcc80987e 718
mbed_official 610:813dcc80987e 719 /**
mbed_official 610:813dcc80987e 720 * @}
mbed_official 610:813dcc80987e 721 */
mbed_official 610:813dcc80987e 722
mbed_official 610:813dcc80987e 723 /* Private constants ---------------------------------------------------------*/
mbed_official 610:813dcc80987e 724 /** @defgroup SD_Private_Constants SD Private Constants
mbed_official 610:813dcc80987e 725 * @{
mbed_official 610:813dcc80987e 726 */
mbed_official 610:813dcc80987e 727
mbed_official 610:813dcc80987e 728 /**
mbed_official 610:813dcc80987e 729 * @}
mbed_official 610:813dcc80987e 730 */
mbed_official 610:813dcc80987e 731
mbed_official 610:813dcc80987e 732 /* Private macros ------------------------------------------------------------*/
mbed_official 610:813dcc80987e 733 /** @defgroup SD_Private_Macros SD Private Macros
mbed_official 610:813dcc80987e 734 * @{
mbed_official 610:813dcc80987e 735 */
mbed_official 610:813dcc80987e 736
mbed_official 610:813dcc80987e 737 /**
mbed_official 610:813dcc80987e 738 * @}
mbed_official 610:813dcc80987e 739 */
mbed_official 610:813dcc80987e 740
mbed_official 610:813dcc80987e 741 /* Private functions prototypes ----------------------------------------------*/
mbed_official 610:813dcc80987e 742 /** @defgroup SD_Private_Functions_Prototypes SD Private Functions Prototypes
mbed_official 610:813dcc80987e 743 * @{
mbed_official 610:813dcc80987e 744 */
mbed_official 610:813dcc80987e 745
mbed_official 610:813dcc80987e 746 /**
mbed_official 610:813dcc80987e 747 * @}
mbed_official 610:813dcc80987e 748 */
mbed_official 610:813dcc80987e 749
mbed_official 610:813dcc80987e 750 /* Private functions ---------------------------------------------------------*/
mbed_official 610:813dcc80987e 751 /** @defgroup SD_Private_Functions SD Private Functions
mbed_official 610:813dcc80987e 752 * @{
mbed_official 610:813dcc80987e 753 */
mbed_official 610:813dcc80987e 754
mbed_official 610:813dcc80987e 755 /**
mbed_official 610:813dcc80987e 756 * @}
mbed_official 610:813dcc80987e 757 */
mbed_official 610:813dcc80987e 758
mbed_official 610:813dcc80987e 759 /**
mbed_official 610:813dcc80987e 760 * @}
mbed_official 610:813dcc80987e 761 */
mbed_official 610:813dcc80987e 762
mbed_official 610:813dcc80987e 763 /**
mbed_official 610:813dcc80987e 764 * @}
mbed_official 610:813dcc80987e 765 */
mbed_official 610:813dcc80987e 766
mbed_official 610:813dcc80987e 767 #ifdef __cplusplus
mbed_official 610:813dcc80987e 768 }
mbed_official 610:813dcc80987e 769 #endif
mbed_official 610:813dcc80987e 770
mbed_official 610:813dcc80987e 771
mbed_official 610:813dcc80987e 772 #endif /* __STM32L4xx_HAL_SD_H */
mbed_official 610:813dcc80987e 773
mbed_official 610:813dcc80987e 774 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/