2 ******************************************************************************
3 * @file stm32f7xx_hal_dma_ex.h
4 * @author MCD Application Team
7 * @brief Header file of DMA HAL extension module.
8 ******************************************************************************
11 * <h2><center>© COPYRIGHT(c) 2016 STMicroelectronics</center></h2>
13 * Redistribution and use in source and binary forms, with or without modification,
14 * are permitted provided that the following conditions are met:
15 * 1. Redistributions of source code must retain the above copyright notice,
16 * this list of conditions and the following disclaimer.
17 * 2. Redistributions in binary form must reproduce the above copyright notice,
18 * this list of conditions and the following disclaimer in the documentation
19 * and/or other materials provided with the distribution.
20 * 3. Neither the name of STMicroelectronics nor the names of its contributors
21 * may be used to endorse or promote products derived from this software
22 * without specific prior written permission.
24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
27 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
30 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
31 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
32 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
33 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
35 ******************************************************************************
38 /* Define to prevent recursive inclusion -------------------------------------*/
39 #ifndef __STM32F7xx_HAL_DMA_EX_H
40 #define __STM32F7xx_HAL_DMA_EX_H
46 /* Includes ------------------------------------------------------------------*/
47 #include "stm32f7xx_hal_def.h"
49 /** @addtogroup STM32F7xx_HAL_Driver
57 /* Exported types ------------------------------------------------------------*/
58 /** @defgroup DMAEx_Exported_Types DMAEx Exported Types
59 * @brief DMAEx Exported types
64 * @brief HAL DMA Memory definition
68 MEMORY0
= 0x00U
, /*!< Memory 0 */
69 MEMORY1
= 0x01U
, /*!< Memory 1 */
71 }HAL_DMA_MemoryTypeDef
;
77 /* Exported constants --------------------------------------------------------*/
79 /** @defgroup DMA_Exported_Constants DMA Exported Constants
80 * @brief DMA Exported constants
84 /** @defgroup DMAEx_Channel_selection DMA Channel selection
85 * @brief DMAEx channel selection
88 #define DMA_CHANNEL_0 ((uint32_t)0x00000000U) /*!< DMA Channel 0 */
89 #define DMA_CHANNEL_1 ((uint32_t)0x02000000U) /*!< DMA Channel 1 */
90 #define DMA_CHANNEL_2 ((uint32_t)0x04000000U) /*!< DMA Channel 2 */
91 #define DMA_CHANNEL_3 ((uint32_t)0x06000000U) /*!< DMA Channel 3 */
92 #define DMA_CHANNEL_4 ((uint32_t)0x08000000U) /*!< DMA Channel 4 */
93 #define DMA_CHANNEL_5 ((uint32_t)0x0A000000U) /*!< DMA Channel 5 */
94 #define DMA_CHANNEL_6 ((uint32_t)0x0C000000U) /*!< DMA Channel 6 */
95 #define DMA_CHANNEL_7 ((uint32_t)0x0E000000U) /*!< DMA Channel 7 */
96 #if defined (STM32F765xx) || defined(STM32F767xx) || defined(STM32F769xx) || defined(STM32F777xx) || defined(STM32F779xx)
97 #define DMA_CHANNEL_8 ((uint32_t)0x10000000U) /*!< DMA Channel 8 */
98 #define DMA_CHANNEL_9 ((uint32_t)0x12000000U) /*!< DMA Channel 9 */
99 #define DMA_CHANNEL_10 ((uint32_t)0x14000000U) /*!< DMA Channel 10*/
100 #define DMA_CHANNEL_11 ((uint32_t)0x16000000U) /*!< DMA Channel 11*/
101 #define DMA_CHANNEL_12 ((uint32_t)0x18000000U) /*!< DMA Channel 12*/
102 #define DMA_CHANNEL_13 ((uint32_t)0x1A000000U) /*!< DMA Channel 13*/
103 #define DMA_CHANNEL_14 ((uint32_t)0x1C000000U) /*!< DMA Channel 14*/
104 #define DMA_CHANNEL_15 ((uint32_t)0x1E000000U) /*!< DMA Channel 15*/
105 #endif /* STM32F765xx || STM32F767xx || STM32F769xx || STM32F777xx || STM32F779xx */
115 /* Exported functions --------------------------------------------------------*/
116 /** @defgroup DMAEx_Exported_Functions DMAEx Exported Functions
117 * @brief DMAEx Exported functions
121 /** @defgroup DMAEx_Exported_Functions_Group1 Extended features functions
122 * @brief Extended features functions
126 /* IO operation functions *******************************************************/
127 HAL_StatusTypeDef
HAL_DMAEx_MultiBufferStart(DMA_HandleTypeDef
*hdma
, uint32_t SrcAddress
, uint32_t DstAddress
, uint32_t SecondMemAddress
, uint32_t DataLength
);
128 HAL_StatusTypeDef
HAL_DMAEx_MultiBufferStart_IT(DMA_HandleTypeDef
*hdma
, uint32_t SrcAddress
, uint32_t DstAddress
, uint32_t SecondMemAddress
, uint32_t DataLength
);
129 HAL_StatusTypeDef
HAL_DMAEx_ChangeMemory(DMA_HandleTypeDef
*hdma
, uint32_t Address
, HAL_DMA_MemoryTypeDef memory
);
138 /* Private macros ------------------------------------------------------------*/
139 /** @defgroup DMAEx_Private_Macros DMA Private Macros
140 * @brief DMAEx private macros
143 #if defined (STM32F765xx) || defined(STM32F767xx) || defined(STM32F769xx) || defined(STM32F777xx) || defined(STM32F779xx)
144 #define IS_DMA_CHANNEL(CHANNEL) (((CHANNEL) == DMA_CHANNEL_0) || \
145 ((CHANNEL) == DMA_CHANNEL_1) || \
146 ((CHANNEL) == DMA_CHANNEL_2) || \
147 ((CHANNEL) == DMA_CHANNEL_3) || \
148 ((CHANNEL) == DMA_CHANNEL_4) || \
149 ((CHANNEL) == DMA_CHANNEL_5) || \
150 ((CHANNEL) == DMA_CHANNEL_6) || \
151 ((CHANNEL) == DMA_CHANNEL_7) || \
152 ((CHANNEL) == DMA_CHANNEL_8) || \
153 ((CHANNEL) == DMA_CHANNEL_9) || \
154 ((CHANNEL) == DMA_CHANNEL_10) || \
155 ((CHANNEL) == DMA_CHANNEL_11) || \
156 ((CHANNEL) == DMA_CHANNEL_12) || \
157 ((CHANNEL) == DMA_CHANNEL_13) || \
158 ((CHANNEL) == DMA_CHANNEL_14) || \
159 ((CHANNEL) == DMA_CHANNEL_15))
161 #define IS_DMA_CHANNEL(CHANNEL) (((CHANNEL) == DMA_CHANNEL_0) || \
162 ((CHANNEL) == DMA_CHANNEL_1) || \
163 ((CHANNEL) == DMA_CHANNEL_2) || \
164 ((CHANNEL) == DMA_CHANNEL_3) || \
165 ((CHANNEL) == DMA_CHANNEL_4) || \
166 ((CHANNEL) == DMA_CHANNEL_5) || \
167 ((CHANNEL) == DMA_CHANNEL_6) || \
168 ((CHANNEL) == DMA_CHANNEL_7))
169 #endif /* STM32F765xx || STM32F767xx || STM32F769xx || STM32F777xx || STM32F779xx */
174 /* Private functions ---------------------------------------------------------*/
175 /** @defgroup DMAEx_Private_Functions DMAEx Private Functions
176 * @brief DMAEx Private functions
195 #endif /* __STM32F7xx_HAL_DMA_H */
197 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/