stm322xg_eval_sd.h 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. /**
  2. ******************************************************************************
  3. * @file stm322xg_eval_sd.h
  4. * @author MCD Application Team
  5. * @brief This file contains the common defines and functions prototypes for
  6. * the stm322xg_eval_sd.c driver.
  7. ******************************************************************************
  8. * @attention
  9. *
  10. * <h2><center>&copy; COPYRIGHT(c) 2017 STMicroelectronics</center></h2>
  11. *
  12. * Redistribution and use in source and binary forms, with or without modification,
  13. * are permitted provided that the following conditions are met:
  14. * 1. Redistributions of source code must retain the above copyright notice,
  15. * this list of conditions and the following disclaimer.
  16. * 2. Redistributions in binary form must reproduce the above copyright notice,
  17. * this list of conditions and the following disclaimer in the documentation
  18. * and/or other materials provided with the distribution.
  19. * 3. Neither the name of STMicroelectronics nor the names of its contributors
  20. * may be used to endorse or promote products derived from this software
  21. * without specific prior written permission.
  22. *
  23. * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  24. * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  25. * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  26. * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
  27. * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  28. * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
  29. * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
  30. * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  31. * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  32. * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  33. *
  34. ******************************************************************************
  35. */
  36. /* Define to prevent recursive inclusion -------------------------------------*/
  37. #ifndef __STM322xG_EVAL_SD_H
  38. #define __STM322xG_EVAL_SD_H
  39. #ifdef __cplusplus
  40. extern "C" {
  41. #endif
  42. /* Includes ------------------------------------------------------------------*/
  43. #include "stm32f2xx_hal.h"
  44. /** @addtogroup BSP
  45. * @{
  46. */
  47. /** @addtogroup STM322xG_EVAL
  48. * @{
  49. */
  50. /** @addtogroup STM322xG_EVAL_SD
  51. * @{
  52. */
  53. /** @defgroup STM322xG_EVAL_SD_Exported_Types STM322xG EVAL SD Exported Types
  54. * @{
  55. */
  56. /**
  57. * @brief SD Card information structure
  58. */
  59. #define BSP_SD_CardInfo HAL_SD_CardInfoTypeDef
  60. /**
  61. * @}
  62. */
  63. /** @defgroup STM322xG_EVAL_SD_Exported_Constants STM322xG EVAL SD Exported Constants
  64. * @{
  65. */
  66. /**
  67. * @brief SD status structure definition
  68. */
  69. #define MSD_OK ((uint8_t)0x00)
  70. #define MSD_ERROR ((uint8_t)0x01)
  71. /**
  72. * @brief SD transfer state definition
  73. */
  74. #define SD_TRANSFER_OK ((uint8_t)0x00)
  75. #define SD_TRANSFER_BUSY ((uint8_t)0x01)
  76. #define SD_DETECT_PIN GPIO_PIN_13
  77. #define SD_DETECT_GPIO_PORT GPIOH
  78. #define __SD_DETECT_GPIO_CLK_ENABLE() __HAL_RCC_GPIOH_CLK_ENABLE()
  79. #define SD_DETECT_IRQn EXTI15_10_IRQn
  80. #define SD_DATATIMEOUT ((uint32_t)100000000)
  81. #define SD_PRESENT ((uint8_t)0x01)
  82. #define SD_NOT_PRESENT ((uint8_t)0x00)
  83. /* DMA definitions for SD DMA transfer */
  84. #define __DMAx_TxRx_CLK_ENABLE __HAL_RCC_DMA2_CLK_ENABLE
  85. #define SD_DMAx_Tx_CHANNEL DMA_CHANNEL_4
  86. #define SD_DMAx_Rx_CHANNEL DMA_CHANNEL_4
  87. #define SD_DMAx_Tx_STREAM DMA2_Stream6
  88. #define SD_DMAx_Rx_STREAM DMA2_Stream3
  89. #define SD_DMAx_Tx_IRQn DMA2_Stream6_IRQn
  90. #define SD_DMAx_Rx_IRQn DMA2_Stream3_IRQn
  91. #define BSP_SD_IRQHandler SDIO_IRQHandler
  92. #define BSP_SD_DMA_Tx_IRQHandler DMA2_Stream6_IRQHandler
  93. #define BSP_SD_DMA_Rx_IRQHandler DMA2_Stream3_IRQHandler
  94. #define SD_DetectIRQHandler() HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_13)
  95. /**
  96. * @}
  97. */
  98. /** @defgroup STM322xG_EVAL_SD_Exported_Functions STM322xG EVAL SD Exported Functions
  99. * @{
  100. */
  101. uint8_t BSP_SD_Init(void);
  102. uint8_t BSP_SD_ITConfig(void);
  103. void BSP_SD_DetectIT(void);
  104. void BSP_SD_DetectCallback(void);
  105. uint8_t BSP_SD_ReadBlocks(uint32_t *pData, uint32_t ReadAddr, uint32_t NumOfBlocks, uint32_t Timeout);
  106. uint8_t BSP_SD_WriteBlocks(uint32_t *pData, uint32_t WriteAddr, uint32_t NumOfBlocks, uint32_t Timeout);
  107. uint8_t BSP_SD_ReadBlocks_DMA(uint32_t *pData, uint32_t ReadAddr, uint32_t NumOfBlocks);
  108. uint8_t BSP_SD_WriteBlocks_DMA(uint32_t *pData, uint32_t WriteAddr, uint32_t NumOfBlocks);
  109. uint8_t BSP_SD_Erase(uint32_t StartAddr, uint32_t EndAddr);
  110. uint8_t BSP_SD_GetCardState(void);
  111. void BSP_SD_GetCardInfo(HAL_SD_CardInfoTypeDef *CardInfo);
  112. uint8_t BSP_SD_IsDetected(void);
  113. /* These functions can be modified in case the current settings (e.g. DMA stream)
  114. need to be changed for specific application needs */
  115. void BSP_SD_MspInit(SD_HandleTypeDef *hsd, void *Params);
  116. void BSP_SD_Detect_MspInit(SD_HandleTypeDef *hsd, void *Params);
  117. void BSP_SD_MspDeInit(SD_HandleTypeDef *hsd, void *Params);
  118. void BSP_SD_AbortCallback(void);
  119. void BSP_SD_WriteCpltCallback(void);
  120. void BSP_SD_ReadCpltCallback(void);
  121. /**
  122. * @}
  123. */
  124. /**
  125. * @}
  126. */
  127. /**
  128. * @}
  129. */
  130. /**
  131. * @}
  132. */
  133. #ifdef __cplusplus
  134. }
  135. #endif
  136. #endif /* __STM322xG_EVAL_SD_H */
  137. /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/