Julien Cassette / mbed-dev

Fork of mbed-dev by mbed official

Committer:
jcassette
Date:
Mon Mar 14 14:20:17 2016 +0000
Revision:
79:9f34958201cc
Parent:
0:9b334a45a8ff
FRDM-K64F AnalogIn: add support for ADC channels with no mapped pins

Who changed what in which revision?

UserRevisionLine numberNew contents of line
bogdanm 0:9b334a45a8ff 1 /**
bogdanm 0:9b334a45a8ff 2 ******************************************************************************
bogdanm 0:9b334a45a8ff 3 * @file stm32f30x_dma.h
bogdanm 0:9b334a45a8ff 4 * @author MCD Application Team
bogdanm 0:9b334a45a8ff 5 * @version V1.1.0
bogdanm 0:9b334a45a8ff 6 * @date 27-February-2014
bogdanm 0:9b334a45a8ff 7 * @brief This file contains all the functions prototypes for the DMA firmware
bogdanm 0:9b334a45a8ff 8 * library.
bogdanm 0:9b334a45a8ff 9 ******************************************************************************
bogdanm 0:9b334a45a8ff 10 * @attention
bogdanm 0:9b334a45a8ff 11 *
bogdanm 0:9b334a45a8ff 12 * <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2>
bogdanm 0:9b334a45a8ff 13 *
bogdanm 0:9b334a45a8ff 14 * Redistribution and use in source and binary forms, with or without modification,
bogdanm 0:9b334a45a8ff 15 * are permitted provided that the following conditions are met:
bogdanm 0:9b334a45a8ff 16 * 1. Redistributions of source code must retain the above copyright notice,
bogdanm 0:9b334a45a8ff 17 * this list of conditions and the following disclaimer.
bogdanm 0:9b334a45a8ff 18 * 2. Redistributions in binary form must reproduce the above copyright notice,
bogdanm 0:9b334a45a8ff 19 * this list of conditions and the following disclaimer in the documentation
bogdanm 0:9b334a45a8ff 20 * and/or other materials provided with the distribution.
bogdanm 0:9b334a45a8ff 21 * 3. Neither the name of STMicroelectronics nor the names of its contributors
bogdanm 0:9b334a45a8ff 22 * may be used to endorse or promote products derived from this software
bogdanm 0:9b334a45a8ff 23 * without specific prior written permission.
bogdanm 0:9b334a45a8ff 24 *
bogdanm 0:9b334a45a8ff 25 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
bogdanm 0:9b334a45a8ff 26 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
bogdanm 0:9b334a45a8ff 27 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
bogdanm 0:9b334a45a8ff 28 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
bogdanm 0:9b334a45a8ff 29 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
bogdanm 0:9b334a45a8ff 30 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
bogdanm 0:9b334a45a8ff 31 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
bogdanm 0:9b334a45a8ff 32 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
bogdanm 0:9b334a45a8ff 33 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
bogdanm 0:9b334a45a8ff 34 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
bogdanm 0:9b334a45a8ff 35 *
bogdanm 0:9b334a45a8ff 36 ******************************************************************************
bogdanm 0:9b334a45a8ff 37 */
bogdanm 0:9b334a45a8ff 38
bogdanm 0:9b334a45a8ff 39 /* Define to prevent recursive inclusion -------------------------------------*/
bogdanm 0:9b334a45a8ff 40 #ifndef __STM32F30x_DMA_H
bogdanm 0:9b334a45a8ff 41 #define __STM32F30x_DMA_H
bogdanm 0:9b334a45a8ff 42
bogdanm 0:9b334a45a8ff 43 #ifdef __cplusplus
bogdanm 0:9b334a45a8ff 44 extern "C" {
bogdanm 0:9b334a45a8ff 45 #endif
bogdanm 0:9b334a45a8ff 46
bogdanm 0:9b334a45a8ff 47 /* Includes ------------------------------------------------------------------*/
bogdanm 0:9b334a45a8ff 48 #include "stm32f30x.h"
bogdanm 0:9b334a45a8ff 49
bogdanm 0:9b334a45a8ff 50 /** @addtogroup STM32F30x_StdPeriph_Driver
bogdanm 0:9b334a45a8ff 51 * @{
bogdanm 0:9b334a45a8ff 52 */
bogdanm 0:9b334a45a8ff 53
bogdanm 0:9b334a45a8ff 54 /** @addtogroup DMA
bogdanm 0:9b334a45a8ff 55 * @{
bogdanm 0:9b334a45a8ff 56 */
bogdanm 0:9b334a45a8ff 57
bogdanm 0:9b334a45a8ff 58 /* Exported types ------------------------------------------------------------*/
bogdanm 0:9b334a45a8ff 59
bogdanm 0:9b334a45a8ff 60 /**
bogdanm 0:9b334a45a8ff 61 * @brief DMA Init structures definition
bogdanm 0:9b334a45a8ff 62 */
bogdanm 0:9b334a45a8ff 63 typedef struct
bogdanm 0:9b334a45a8ff 64 {
bogdanm 0:9b334a45a8ff 65 uint32_t DMA_PeripheralBaseAddr; /*!< Specifies the peripheral base address for DMAy Channelx. */
bogdanm 0:9b334a45a8ff 66
bogdanm 0:9b334a45a8ff 67 uint32_t DMA_MemoryBaseAddr; /*!< Specifies the memory base address for DMAy Channelx. */
bogdanm 0:9b334a45a8ff 68
bogdanm 0:9b334a45a8ff 69 uint32_t DMA_DIR; /*!< Specifies if the peripheral is the source or destination.
bogdanm 0:9b334a45a8ff 70 This parameter can be a value of @ref DMA_data_transfer_direction */
bogdanm 0:9b334a45a8ff 71
bogdanm 0:9b334a45a8ff 72 uint16_t DMA_BufferSize; /*!< Specifies the buffer size, in data unit, of the specified Channel.
bogdanm 0:9b334a45a8ff 73 The data unit is equal to the configuration set in DMA_PeripheralDataSize
bogdanm 0:9b334a45a8ff 74 or DMA_MemoryDataSize members depending in the transfer direction. */
bogdanm 0:9b334a45a8ff 75
bogdanm 0:9b334a45a8ff 76 uint32_t DMA_PeripheralInc; /*!< Specifies whether the Peripheral address register is incremented or not.
bogdanm 0:9b334a45a8ff 77 This parameter can be a value of @ref DMA_peripheral_incremented_mode */
bogdanm 0:9b334a45a8ff 78
bogdanm 0:9b334a45a8ff 79 uint32_t DMA_MemoryInc; /*!< Specifies whether the memory address register is incremented or not.
bogdanm 0:9b334a45a8ff 80 This parameter can be a value of @ref DMA_memory_incremented_mode */
bogdanm 0:9b334a45a8ff 81
bogdanm 0:9b334a45a8ff 82 uint32_t DMA_PeripheralDataSize; /*!< Specifies the Peripheral data width.
bogdanm 0:9b334a45a8ff 83 This parameter can be a value of @ref DMA_peripheral_data_size */
bogdanm 0:9b334a45a8ff 84
bogdanm 0:9b334a45a8ff 85 uint32_t DMA_MemoryDataSize; /*!< Specifies the Memory data width.
bogdanm 0:9b334a45a8ff 86 This parameter can be a value of @ref DMA_memory_data_size */
bogdanm 0:9b334a45a8ff 87
bogdanm 0:9b334a45a8ff 88 uint32_t DMA_Mode; /*!< Specifies the operation mode of the DMAy Channelx.
bogdanm 0:9b334a45a8ff 89 This parameter can be a value of @ref DMA_circular_normal_mode
bogdanm 0:9b334a45a8ff 90 @note: The circular buffer mode cannot be used if the memory-to-memory
bogdanm 0:9b334a45a8ff 91 data transfer is configured on the selected Channel */
bogdanm 0:9b334a45a8ff 92
bogdanm 0:9b334a45a8ff 93 uint32_t DMA_Priority; /*!< Specifies the software priority for the DMAy Channelx.
bogdanm 0:9b334a45a8ff 94 This parameter can be a value of @ref DMA_priority_level */
bogdanm 0:9b334a45a8ff 95
bogdanm 0:9b334a45a8ff 96 uint32_t DMA_M2M; /*!< Specifies if the DMAy Channelx will be used in memory-to-memory transfer.
bogdanm 0:9b334a45a8ff 97 This parameter can be a value of @ref DMA_memory_to_memory */
bogdanm 0:9b334a45a8ff 98 }DMA_InitTypeDef;
bogdanm 0:9b334a45a8ff 99
bogdanm 0:9b334a45a8ff 100 /* Exported constants --------------------------------------------------------*/
bogdanm 0:9b334a45a8ff 101
bogdanm 0:9b334a45a8ff 102 /** @defgroup DMA_Exported_Constants
bogdanm 0:9b334a45a8ff 103 * @{
bogdanm 0:9b334a45a8ff 104 */
bogdanm 0:9b334a45a8ff 105
bogdanm 0:9b334a45a8ff 106 #define IS_DMA_ALL_PERIPH(PERIPH) (((PERIPH) == DMA1_Channel1) || \
bogdanm 0:9b334a45a8ff 107 ((PERIPH) == DMA1_Channel2) || \
bogdanm 0:9b334a45a8ff 108 ((PERIPH) == DMA1_Channel3) || \
bogdanm 0:9b334a45a8ff 109 ((PERIPH) == DMA1_Channel4) || \
bogdanm 0:9b334a45a8ff 110 ((PERIPH) == DMA1_Channel5) || \
bogdanm 0:9b334a45a8ff 111 ((PERIPH) == DMA1_Channel6) || \
bogdanm 0:9b334a45a8ff 112 ((PERIPH) == DMA1_Channel7) || \
bogdanm 0:9b334a45a8ff 113 ((PERIPH) == DMA2_Channel1) || \
bogdanm 0:9b334a45a8ff 114 ((PERIPH) == DMA2_Channel2) || \
bogdanm 0:9b334a45a8ff 115 ((PERIPH) == DMA2_Channel3) || \
bogdanm 0:9b334a45a8ff 116 ((PERIPH) == DMA2_Channel4) || \
bogdanm 0:9b334a45a8ff 117 ((PERIPH) == DMA2_Channel5))
bogdanm 0:9b334a45a8ff 118
bogdanm 0:9b334a45a8ff 119 /** @defgroup DMA_data_transfer_direction
bogdanm 0:9b334a45a8ff 120 * @{
bogdanm 0:9b334a45a8ff 121 */
bogdanm 0:9b334a45a8ff 122
bogdanm 0:9b334a45a8ff 123 #define DMA_DIR_PeripheralSRC ((uint32_t)0x00000000)
bogdanm 0:9b334a45a8ff 124 #define DMA_DIR_PeripheralDST DMA_CCR_DIR
bogdanm 0:9b334a45a8ff 125
bogdanm 0:9b334a45a8ff 126 #define IS_DMA_DIR(DIR) (((DIR) == DMA_DIR_PeripheralSRC) || \
bogdanm 0:9b334a45a8ff 127 ((DIR) == DMA_DIR_PeripheralDST))
bogdanm 0:9b334a45a8ff 128 /**
bogdanm 0:9b334a45a8ff 129 * @}
bogdanm 0:9b334a45a8ff 130 */
bogdanm 0:9b334a45a8ff 131
bogdanm 0:9b334a45a8ff 132
bogdanm 0:9b334a45a8ff 133 /** @defgroup DMA_peripheral_incremented_mode
bogdanm 0:9b334a45a8ff 134 * @{
bogdanm 0:9b334a45a8ff 135 */
bogdanm 0:9b334a45a8ff 136
bogdanm 0:9b334a45a8ff 137 #define DMA_PeripheralInc_Disable ((uint32_t)0x00000000)
bogdanm 0:9b334a45a8ff 138 #define DMA_PeripheralInc_Enable DMA_CCR_PINC
bogdanm 0:9b334a45a8ff 139
bogdanm 0:9b334a45a8ff 140 #define IS_DMA_PERIPHERAL_INC_STATE(STATE) (((STATE) == DMA_PeripheralInc_Disable) || \
bogdanm 0:9b334a45a8ff 141 ((STATE) == DMA_PeripheralInc_Enable))
bogdanm 0:9b334a45a8ff 142 /**
bogdanm 0:9b334a45a8ff 143 * @}
bogdanm 0:9b334a45a8ff 144 */
bogdanm 0:9b334a45a8ff 145
bogdanm 0:9b334a45a8ff 146 /** @defgroup DMA_memory_incremented_mode
bogdanm 0:9b334a45a8ff 147 * @{
bogdanm 0:9b334a45a8ff 148 */
bogdanm 0:9b334a45a8ff 149
bogdanm 0:9b334a45a8ff 150 #define DMA_MemoryInc_Disable ((uint32_t)0x00000000)
bogdanm 0:9b334a45a8ff 151 #define DMA_MemoryInc_Enable DMA_CCR_MINC
bogdanm 0:9b334a45a8ff 152
bogdanm 0:9b334a45a8ff 153 #define IS_DMA_MEMORY_INC_STATE(STATE) (((STATE) == DMA_MemoryInc_Disable) || \
bogdanm 0:9b334a45a8ff 154 ((STATE) == DMA_MemoryInc_Enable))
bogdanm 0:9b334a45a8ff 155 /**
bogdanm 0:9b334a45a8ff 156 * @}
bogdanm 0:9b334a45a8ff 157 */
bogdanm 0:9b334a45a8ff 158
bogdanm 0:9b334a45a8ff 159 /** @defgroup DMA_peripheral_data_size
bogdanm 0:9b334a45a8ff 160 * @{
bogdanm 0:9b334a45a8ff 161 */
bogdanm 0:9b334a45a8ff 162
bogdanm 0:9b334a45a8ff 163 #define DMA_PeripheralDataSize_Byte ((uint32_t)0x00000000)
bogdanm 0:9b334a45a8ff 164 #define DMA_PeripheralDataSize_HalfWord DMA_CCR_PSIZE_0
bogdanm 0:9b334a45a8ff 165 #define DMA_PeripheralDataSize_Word DMA_CCR_PSIZE_1
bogdanm 0:9b334a45a8ff 166
bogdanm 0:9b334a45a8ff 167 #define IS_DMA_PERIPHERAL_DATA_SIZE(SIZE) (((SIZE) == DMA_PeripheralDataSize_Byte) || \
bogdanm 0:9b334a45a8ff 168 ((SIZE) == DMA_PeripheralDataSize_HalfWord) || \
bogdanm 0:9b334a45a8ff 169 ((SIZE) == DMA_PeripheralDataSize_Word))
bogdanm 0:9b334a45a8ff 170 /**
bogdanm 0:9b334a45a8ff 171 * @}
bogdanm 0:9b334a45a8ff 172 */
bogdanm 0:9b334a45a8ff 173
bogdanm 0:9b334a45a8ff 174 /** @defgroup DMA_memory_data_size
bogdanm 0:9b334a45a8ff 175 * @{
bogdanm 0:9b334a45a8ff 176 */
bogdanm 0:9b334a45a8ff 177
bogdanm 0:9b334a45a8ff 178 #define DMA_MemoryDataSize_Byte ((uint32_t)0x00000000)
bogdanm 0:9b334a45a8ff 179 #define DMA_MemoryDataSize_HalfWord DMA_CCR_MSIZE_0
bogdanm 0:9b334a45a8ff 180 #define DMA_MemoryDataSize_Word DMA_CCR_MSIZE_1
bogdanm 0:9b334a45a8ff 181
bogdanm 0:9b334a45a8ff 182 #define IS_DMA_MEMORY_DATA_SIZE(SIZE) (((SIZE) == DMA_MemoryDataSize_Byte) || \
bogdanm 0:9b334a45a8ff 183 ((SIZE) == DMA_MemoryDataSize_HalfWord) || \
bogdanm 0:9b334a45a8ff 184 ((SIZE) == DMA_MemoryDataSize_Word))
bogdanm 0:9b334a45a8ff 185 /**
bogdanm 0:9b334a45a8ff 186 * @}
bogdanm 0:9b334a45a8ff 187 */
bogdanm 0:9b334a45a8ff 188
bogdanm 0:9b334a45a8ff 189 /** @defgroup DMA_circular_normal_mode
bogdanm 0:9b334a45a8ff 190 * @{
bogdanm 0:9b334a45a8ff 191 */
bogdanm 0:9b334a45a8ff 192
bogdanm 0:9b334a45a8ff 193 #define DMA_Mode_Normal ((uint32_t)0x00000000)
bogdanm 0:9b334a45a8ff 194 #define DMA_Mode_Circular DMA_CCR_CIRC
bogdanm 0:9b334a45a8ff 195
bogdanm 0:9b334a45a8ff 196 #define IS_DMA_MODE(MODE) (((MODE) == DMA_Mode_Normal) || ((MODE) == DMA_Mode_Circular))
bogdanm 0:9b334a45a8ff 197 /**
bogdanm 0:9b334a45a8ff 198 * @}
bogdanm 0:9b334a45a8ff 199 */
bogdanm 0:9b334a45a8ff 200
bogdanm 0:9b334a45a8ff 201 /** @defgroup DMA_priority_level
bogdanm 0:9b334a45a8ff 202 * @{
bogdanm 0:9b334a45a8ff 203 */
bogdanm 0:9b334a45a8ff 204
bogdanm 0:9b334a45a8ff 205 #define DMA_Priority_VeryHigh DMA_CCR_PL
bogdanm 0:9b334a45a8ff 206 #define DMA_Priority_High DMA_CCR_PL_1
bogdanm 0:9b334a45a8ff 207 #define DMA_Priority_Medium DMA_CCR_PL_0
bogdanm 0:9b334a45a8ff 208 #define DMA_Priority_Low ((uint32_t)0x00000000)
bogdanm 0:9b334a45a8ff 209
bogdanm 0:9b334a45a8ff 210 #define IS_DMA_PRIORITY(PRIORITY) (((PRIORITY) == DMA_Priority_VeryHigh) || \
bogdanm 0:9b334a45a8ff 211 ((PRIORITY) == DMA_Priority_High) || \
bogdanm 0:9b334a45a8ff 212 ((PRIORITY) == DMA_Priority_Medium) || \
bogdanm 0:9b334a45a8ff 213 ((PRIORITY) == DMA_Priority_Low))
bogdanm 0:9b334a45a8ff 214 /**
bogdanm 0:9b334a45a8ff 215 * @}
bogdanm 0:9b334a45a8ff 216 */
bogdanm 0:9b334a45a8ff 217
bogdanm 0:9b334a45a8ff 218 /** @defgroup DMA_memory_to_memory
bogdanm 0:9b334a45a8ff 219 * @{
bogdanm 0:9b334a45a8ff 220 */
bogdanm 0:9b334a45a8ff 221
bogdanm 0:9b334a45a8ff 222 #define DMA_M2M_Disable ((uint32_t)0x00000000)
bogdanm 0:9b334a45a8ff 223 #define DMA_M2M_Enable DMA_CCR_MEM2MEM
bogdanm 0:9b334a45a8ff 224
bogdanm 0:9b334a45a8ff 225 #define IS_DMA_M2M_STATE(STATE) (((STATE) == DMA_M2M_Disable) || ((STATE) == DMA_M2M_Enable))
bogdanm 0:9b334a45a8ff 226
bogdanm 0:9b334a45a8ff 227 /**
bogdanm 0:9b334a45a8ff 228 * @}
bogdanm 0:9b334a45a8ff 229 */
bogdanm 0:9b334a45a8ff 230
bogdanm 0:9b334a45a8ff 231 /** @defgroup DMA_interrupts_definition
bogdanm 0:9b334a45a8ff 232 * @{
bogdanm 0:9b334a45a8ff 233 */
bogdanm 0:9b334a45a8ff 234
bogdanm 0:9b334a45a8ff 235 #define DMA_IT_TC ((uint32_t)0x00000002)
bogdanm 0:9b334a45a8ff 236 #define DMA_IT_HT ((uint32_t)0x00000004)
bogdanm 0:9b334a45a8ff 237 #define DMA_IT_TE ((uint32_t)0x00000008)
bogdanm 0:9b334a45a8ff 238 #define IS_DMA_CONFIG_IT(IT) ((((IT) & 0xFFFFFFF1) == 0x00) && ((IT) != 0x00))
bogdanm 0:9b334a45a8ff 239
bogdanm 0:9b334a45a8ff 240 #define DMA1_IT_GL1 ((uint32_t)0x00000001)
bogdanm 0:9b334a45a8ff 241 #define DMA1_IT_TC1 ((uint32_t)0x00000002)
bogdanm 0:9b334a45a8ff 242 #define DMA1_IT_HT1 ((uint32_t)0x00000004)
bogdanm 0:9b334a45a8ff 243 #define DMA1_IT_TE1 ((uint32_t)0x00000008)
bogdanm 0:9b334a45a8ff 244 #define DMA1_IT_GL2 ((uint32_t)0x00000010)
bogdanm 0:9b334a45a8ff 245 #define DMA1_IT_TC2 ((uint32_t)0x00000020)
bogdanm 0:9b334a45a8ff 246 #define DMA1_IT_HT2 ((uint32_t)0x00000040)
bogdanm 0:9b334a45a8ff 247 #define DMA1_IT_TE2 ((uint32_t)0x00000080)
bogdanm 0:9b334a45a8ff 248 #define DMA1_IT_GL3 ((uint32_t)0x00000100)
bogdanm 0:9b334a45a8ff 249 #define DMA1_IT_TC3 ((uint32_t)0x00000200)
bogdanm 0:9b334a45a8ff 250 #define DMA1_IT_HT3 ((uint32_t)0x00000400)
bogdanm 0:9b334a45a8ff 251 #define DMA1_IT_TE3 ((uint32_t)0x00000800)
bogdanm 0:9b334a45a8ff 252 #define DMA1_IT_GL4 ((uint32_t)0x00001000)
bogdanm 0:9b334a45a8ff 253 #define DMA1_IT_TC4 ((uint32_t)0x00002000)
bogdanm 0:9b334a45a8ff 254 #define DMA1_IT_HT4 ((uint32_t)0x00004000)
bogdanm 0:9b334a45a8ff 255 #define DMA1_IT_TE4 ((uint32_t)0x00008000)
bogdanm 0:9b334a45a8ff 256 #define DMA1_IT_GL5 ((uint32_t)0x00010000)
bogdanm 0:9b334a45a8ff 257 #define DMA1_IT_TC5 ((uint32_t)0x00020000)
bogdanm 0:9b334a45a8ff 258 #define DMA1_IT_HT5 ((uint32_t)0x00040000)
bogdanm 0:9b334a45a8ff 259 #define DMA1_IT_TE5 ((uint32_t)0x00080000)
bogdanm 0:9b334a45a8ff 260 #define DMA1_IT_GL6 ((uint32_t)0x00100000)
bogdanm 0:9b334a45a8ff 261 #define DMA1_IT_TC6 ((uint32_t)0x00200000)
bogdanm 0:9b334a45a8ff 262 #define DMA1_IT_HT6 ((uint32_t)0x00400000)
bogdanm 0:9b334a45a8ff 263 #define DMA1_IT_TE6 ((uint32_t)0x00800000)
bogdanm 0:9b334a45a8ff 264 #define DMA1_IT_GL7 ((uint32_t)0x01000000)
bogdanm 0:9b334a45a8ff 265 #define DMA1_IT_TC7 ((uint32_t)0x02000000)
bogdanm 0:9b334a45a8ff 266 #define DMA1_IT_HT7 ((uint32_t)0x04000000)
bogdanm 0:9b334a45a8ff 267 #define DMA1_IT_TE7 ((uint32_t)0x08000000)
bogdanm 0:9b334a45a8ff 268
bogdanm 0:9b334a45a8ff 269 #define DMA2_IT_GL1 ((uint32_t)0x10000001)
bogdanm 0:9b334a45a8ff 270 #define DMA2_IT_TC1 ((uint32_t)0x10000002)
bogdanm 0:9b334a45a8ff 271 #define DMA2_IT_HT1 ((uint32_t)0x10000004)
bogdanm 0:9b334a45a8ff 272 #define DMA2_IT_TE1 ((uint32_t)0x10000008)
bogdanm 0:9b334a45a8ff 273 #define DMA2_IT_GL2 ((uint32_t)0x10000010)
bogdanm 0:9b334a45a8ff 274 #define DMA2_IT_TC2 ((uint32_t)0x10000020)
bogdanm 0:9b334a45a8ff 275 #define DMA2_IT_HT2 ((uint32_t)0x10000040)
bogdanm 0:9b334a45a8ff 276 #define DMA2_IT_TE2 ((uint32_t)0x10000080)
bogdanm 0:9b334a45a8ff 277 #define DMA2_IT_GL3 ((uint32_t)0x10000100)
bogdanm 0:9b334a45a8ff 278 #define DMA2_IT_TC3 ((uint32_t)0x10000200)
bogdanm 0:9b334a45a8ff 279 #define DMA2_IT_HT3 ((uint32_t)0x10000400)
bogdanm 0:9b334a45a8ff 280 #define DMA2_IT_TE3 ((uint32_t)0x10000800)
bogdanm 0:9b334a45a8ff 281 #define DMA2_IT_GL4 ((uint32_t)0x10001000)
bogdanm 0:9b334a45a8ff 282 #define DMA2_IT_TC4 ((uint32_t)0x10002000)
bogdanm 0:9b334a45a8ff 283 #define DMA2_IT_HT4 ((uint32_t)0x10004000)
bogdanm 0:9b334a45a8ff 284 #define DMA2_IT_TE4 ((uint32_t)0x10008000)
bogdanm 0:9b334a45a8ff 285 #define DMA2_IT_GL5 ((uint32_t)0x10010000)
bogdanm 0:9b334a45a8ff 286 #define DMA2_IT_TC5 ((uint32_t)0x10020000)
bogdanm 0:9b334a45a8ff 287 #define DMA2_IT_HT5 ((uint32_t)0x10040000)
bogdanm 0:9b334a45a8ff 288 #define DMA2_IT_TE5 ((uint32_t)0x10080000)
bogdanm 0:9b334a45a8ff 289
bogdanm 0:9b334a45a8ff 290 #define IS_DMA_CLEAR_IT(IT) (((((IT) & 0xF0000000) == 0x00) || (((IT) & 0xEFF00000) == 0x00)) && ((IT) != 0x00))
bogdanm 0:9b334a45a8ff 291
bogdanm 0:9b334a45a8ff 292 #define IS_DMA_GET_IT(IT) (((IT) == DMA1_IT_GL1) || ((IT) == DMA1_IT_TC1) || \
bogdanm 0:9b334a45a8ff 293 ((IT) == DMA1_IT_HT1) || ((IT) == DMA1_IT_TE1) || \
bogdanm 0:9b334a45a8ff 294 ((IT) == DMA1_IT_GL2) || ((IT) == DMA1_IT_TC2) || \
bogdanm 0:9b334a45a8ff 295 ((IT) == DMA1_IT_HT2) || ((IT) == DMA1_IT_TE2) || \
bogdanm 0:9b334a45a8ff 296 ((IT) == DMA1_IT_GL3) || ((IT) == DMA1_IT_TC3) || \
bogdanm 0:9b334a45a8ff 297 ((IT) == DMA1_IT_HT3) || ((IT) == DMA1_IT_TE3) || \
bogdanm 0:9b334a45a8ff 298 ((IT) == DMA1_IT_GL4) || ((IT) == DMA1_IT_TC4) || \
bogdanm 0:9b334a45a8ff 299 ((IT) == DMA1_IT_HT4) || ((IT) == DMA1_IT_TE4) || \
bogdanm 0:9b334a45a8ff 300 ((IT) == DMA1_IT_GL5) || ((IT) == DMA1_IT_TC5) || \
bogdanm 0:9b334a45a8ff 301 ((IT) == DMA1_IT_HT5) || ((IT) == DMA1_IT_TE5) || \
bogdanm 0:9b334a45a8ff 302 ((IT) == DMA1_IT_GL6) || ((IT) == DMA1_IT_TC6) || \
bogdanm 0:9b334a45a8ff 303 ((IT) == DMA1_IT_HT6) || ((IT) == DMA1_IT_TE6) || \
bogdanm 0:9b334a45a8ff 304 ((IT) == DMA1_IT_GL7) || ((IT) == DMA1_IT_TC7) || \
bogdanm 0:9b334a45a8ff 305 ((IT) == DMA1_IT_HT7) || ((IT) == DMA1_IT_TE7) || \
bogdanm 0:9b334a45a8ff 306 ((IT) == DMA2_IT_GL1) || ((IT) == DMA2_IT_TC1) || \
bogdanm 0:9b334a45a8ff 307 ((IT) == DMA2_IT_HT1) || ((IT) == DMA2_IT_TE1) || \
bogdanm 0:9b334a45a8ff 308 ((IT) == DMA2_IT_GL2) || ((IT) == DMA2_IT_TC2) || \
bogdanm 0:9b334a45a8ff 309 ((IT) == DMA2_IT_HT2) || ((IT) == DMA2_IT_TE2) || \
bogdanm 0:9b334a45a8ff 310 ((IT) == DMA2_IT_GL3) || ((IT) == DMA2_IT_TC3) || \
bogdanm 0:9b334a45a8ff 311 ((IT) == DMA2_IT_HT3) || ((IT) == DMA2_IT_TE3) || \
bogdanm 0:9b334a45a8ff 312 ((IT) == DMA2_IT_GL4) || ((IT) == DMA2_IT_TC4) || \
bogdanm 0:9b334a45a8ff 313 ((IT) == DMA2_IT_HT4) || ((IT) == DMA2_IT_TE4) || \
bogdanm 0:9b334a45a8ff 314 ((IT) == DMA2_IT_GL5) || ((IT) == DMA2_IT_TC5) || \
bogdanm 0:9b334a45a8ff 315 ((IT) == DMA2_IT_HT5) || ((IT) == DMA2_IT_TE5))
bogdanm 0:9b334a45a8ff 316
bogdanm 0:9b334a45a8ff 317 /**
bogdanm 0:9b334a45a8ff 318 * @}
bogdanm 0:9b334a45a8ff 319 */
bogdanm 0:9b334a45a8ff 320
bogdanm 0:9b334a45a8ff 321 /** @defgroup DMA_flags_definition
bogdanm 0:9b334a45a8ff 322 * @{
bogdanm 0:9b334a45a8ff 323 */
bogdanm 0:9b334a45a8ff 324
bogdanm 0:9b334a45a8ff 325 #define DMA1_FLAG_GL1 ((uint32_t)0x00000001)
bogdanm 0:9b334a45a8ff 326 #define DMA1_FLAG_TC1 ((uint32_t)0x00000002)
bogdanm 0:9b334a45a8ff 327 #define DMA1_FLAG_HT1 ((uint32_t)0x00000004)
bogdanm 0:9b334a45a8ff 328 #define DMA1_FLAG_TE1 ((uint32_t)0x00000008)
bogdanm 0:9b334a45a8ff 329 #define DMA1_FLAG_GL2 ((uint32_t)0x00000010)
bogdanm 0:9b334a45a8ff 330 #define DMA1_FLAG_TC2 ((uint32_t)0x00000020)
bogdanm 0:9b334a45a8ff 331 #define DMA1_FLAG_HT2 ((uint32_t)0x00000040)
bogdanm 0:9b334a45a8ff 332 #define DMA1_FLAG_TE2 ((uint32_t)0x00000080)
bogdanm 0:9b334a45a8ff 333 #define DMA1_FLAG_GL3 ((uint32_t)0x00000100)
bogdanm 0:9b334a45a8ff 334 #define DMA1_FLAG_TC3 ((uint32_t)0x00000200)
bogdanm 0:9b334a45a8ff 335 #define DMA1_FLAG_HT3 ((uint32_t)0x00000400)
bogdanm 0:9b334a45a8ff 336 #define DMA1_FLAG_TE3 ((uint32_t)0x00000800)
bogdanm 0:9b334a45a8ff 337 #define DMA1_FLAG_GL4 ((uint32_t)0x00001000)
bogdanm 0:9b334a45a8ff 338 #define DMA1_FLAG_TC4 ((uint32_t)0x00002000)
bogdanm 0:9b334a45a8ff 339 #define DMA1_FLAG_HT4 ((uint32_t)0x00004000)
bogdanm 0:9b334a45a8ff 340 #define DMA1_FLAG_TE4 ((uint32_t)0x00008000)
bogdanm 0:9b334a45a8ff 341 #define DMA1_FLAG_GL5 ((uint32_t)0x00010000)
bogdanm 0:9b334a45a8ff 342 #define DMA1_FLAG_TC5 ((uint32_t)0x00020000)
bogdanm 0:9b334a45a8ff 343 #define DMA1_FLAG_HT5 ((uint32_t)0x00040000)
bogdanm 0:9b334a45a8ff 344 #define DMA1_FLAG_TE5 ((uint32_t)0x00080000)
bogdanm 0:9b334a45a8ff 345 #define DMA1_FLAG_GL6 ((uint32_t)0x00100000)
bogdanm 0:9b334a45a8ff 346 #define DMA1_FLAG_TC6 ((uint32_t)0x00200000)
bogdanm 0:9b334a45a8ff 347 #define DMA1_FLAG_HT6 ((uint32_t)0x00400000)
bogdanm 0:9b334a45a8ff 348 #define DMA1_FLAG_TE6 ((uint32_t)0x00800000)
bogdanm 0:9b334a45a8ff 349 #define DMA1_FLAG_GL7 ((uint32_t)0x01000000)
bogdanm 0:9b334a45a8ff 350 #define DMA1_FLAG_TC7 ((uint32_t)0x02000000)
bogdanm 0:9b334a45a8ff 351 #define DMA1_FLAG_HT7 ((uint32_t)0x04000000)
bogdanm 0:9b334a45a8ff 352 #define DMA1_FLAG_TE7 ((uint32_t)0x08000000)
bogdanm 0:9b334a45a8ff 353
bogdanm 0:9b334a45a8ff 354 #define DMA2_FLAG_GL1 ((uint32_t)0x10000001)
bogdanm 0:9b334a45a8ff 355 #define DMA2_FLAG_TC1 ((uint32_t)0x10000002)
bogdanm 0:9b334a45a8ff 356 #define DMA2_FLAG_HT1 ((uint32_t)0x10000004)
bogdanm 0:9b334a45a8ff 357 #define DMA2_FLAG_TE1 ((uint32_t)0x10000008)
bogdanm 0:9b334a45a8ff 358 #define DMA2_FLAG_GL2 ((uint32_t)0x10000010)
bogdanm 0:9b334a45a8ff 359 #define DMA2_FLAG_TC2 ((uint32_t)0x10000020)
bogdanm 0:9b334a45a8ff 360 #define DMA2_FLAG_HT2 ((uint32_t)0x10000040)
bogdanm 0:9b334a45a8ff 361 #define DMA2_FLAG_TE2 ((uint32_t)0x10000080)
bogdanm 0:9b334a45a8ff 362 #define DMA2_FLAG_GL3 ((uint32_t)0x10000100)
bogdanm 0:9b334a45a8ff 363 #define DMA2_FLAG_TC3 ((uint32_t)0x10000200)
bogdanm 0:9b334a45a8ff 364 #define DMA2_FLAG_HT3 ((uint32_t)0x10000400)
bogdanm 0:9b334a45a8ff 365 #define DMA2_FLAG_TE3 ((uint32_t)0x10000800)
bogdanm 0:9b334a45a8ff 366 #define DMA2_FLAG_GL4 ((uint32_t)0x10001000)
bogdanm 0:9b334a45a8ff 367 #define DMA2_FLAG_TC4 ((uint32_t)0x10002000)
bogdanm 0:9b334a45a8ff 368 #define DMA2_FLAG_HT4 ((uint32_t)0x10004000)
bogdanm 0:9b334a45a8ff 369 #define DMA2_FLAG_TE4 ((uint32_t)0x10008000)
bogdanm 0:9b334a45a8ff 370 #define DMA2_FLAG_GL5 ((uint32_t)0x10010000)
bogdanm 0:9b334a45a8ff 371 #define DMA2_FLAG_TC5 ((uint32_t)0x10020000)
bogdanm 0:9b334a45a8ff 372 #define DMA2_FLAG_HT5 ((uint32_t)0x10040000)
bogdanm 0:9b334a45a8ff 373 #define DMA2_FLAG_TE5 ((uint32_t)0x10080000)
bogdanm 0:9b334a45a8ff 374
bogdanm 0:9b334a45a8ff 375 #define IS_DMA_CLEAR_FLAG(FLAG) (((((FLAG) & 0xF0000000) == 0x00) || (((FLAG) & 0xEFF00000) == 0x00)) && ((FLAG) != 0x00))
bogdanm 0:9b334a45a8ff 376
bogdanm 0:9b334a45a8ff 377 #define IS_DMA_GET_FLAG(FLAG) (((FLAG) == DMA1_FLAG_GL1) || ((FLAG) == DMA1_FLAG_TC1) || \
bogdanm 0:9b334a45a8ff 378 ((FLAG) == DMA1_FLAG_HT1) || ((FLAG) == DMA1_FLAG_TE1) || \
bogdanm 0:9b334a45a8ff 379 ((FLAG) == DMA1_FLAG_GL2) || ((FLAG) == DMA1_FLAG_TC2) || \
bogdanm 0:9b334a45a8ff 380 ((FLAG) == DMA1_FLAG_HT2) || ((FLAG) == DMA1_FLAG_TE2) || \
bogdanm 0:9b334a45a8ff 381 ((FLAG) == DMA1_FLAG_GL3) || ((FLAG) == DMA1_FLAG_TC3) || \
bogdanm 0:9b334a45a8ff 382 ((FLAG) == DMA1_FLAG_HT3) || ((FLAG) == DMA1_FLAG_TE3) || \
bogdanm 0:9b334a45a8ff 383 ((FLAG) == DMA1_FLAG_GL4) || ((FLAG) == DMA1_FLAG_TC4) || \
bogdanm 0:9b334a45a8ff 384 ((FLAG) == DMA1_FLAG_HT4) || ((FLAG) == DMA1_FLAG_TE4) || \
bogdanm 0:9b334a45a8ff 385 ((FLAG) == DMA1_FLAG_GL5) || ((FLAG) == DMA1_FLAG_TC5) || \
bogdanm 0:9b334a45a8ff 386 ((FLAG) == DMA1_FLAG_HT5) || ((FLAG) == DMA1_FLAG_TE5) || \
bogdanm 0:9b334a45a8ff 387 ((FLAG) == DMA1_FLAG_GL6) || ((FLAG) == DMA1_FLAG_TC6) || \
bogdanm 0:9b334a45a8ff 388 ((FLAG) == DMA1_FLAG_HT6) || ((FLAG) == DMA1_FLAG_TE6) || \
bogdanm 0:9b334a45a8ff 389 ((FLAG) == DMA1_FLAG_GL7) || ((FLAG) == DMA1_FLAG_TC7) || \
bogdanm 0:9b334a45a8ff 390 ((FLAG) == DMA1_FLAG_HT7) || ((FLAG) == DMA1_FLAG_TE7) || \
bogdanm 0:9b334a45a8ff 391 ((FLAG) == DMA2_FLAG_GL1) || ((FLAG) == DMA2_FLAG_TC1) || \
bogdanm 0:9b334a45a8ff 392 ((FLAG) == DMA2_FLAG_HT1) || ((FLAG) == DMA2_FLAG_TE1) || \
bogdanm 0:9b334a45a8ff 393 ((FLAG) == DMA2_FLAG_GL2) || ((FLAG) == DMA2_FLAG_TC2) || \
bogdanm 0:9b334a45a8ff 394 ((FLAG) == DMA2_FLAG_HT2) || ((FLAG) == DMA2_FLAG_TE2) || \
bogdanm 0:9b334a45a8ff 395 ((FLAG) == DMA2_FLAG_GL3) || ((FLAG) == DMA2_FLAG_TC3) || \
bogdanm 0:9b334a45a8ff 396 ((FLAG) == DMA2_FLAG_HT3) || ((FLAG) == DMA2_FLAG_TE3) || \
bogdanm 0:9b334a45a8ff 397 ((FLAG) == DMA2_FLAG_GL4) || ((FLAG) == DMA2_FLAG_TC4) || \
bogdanm 0:9b334a45a8ff 398 ((FLAG) == DMA2_FLAG_HT4) || ((FLAG) == DMA2_FLAG_TE4) || \
bogdanm 0:9b334a45a8ff 399 ((FLAG) == DMA2_FLAG_GL5) || ((FLAG) == DMA2_FLAG_TC5) || \
bogdanm 0:9b334a45a8ff 400 ((FLAG) == DMA2_FLAG_HT5) || ((FLAG) == DMA2_FLAG_TE5))
bogdanm 0:9b334a45a8ff 401
bogdanm 0:9b334a45a8ff 402 /**
bogdanm 0:9b334a45a8ff 403 * @}
bogdanm 0:9b334a45a8ff 404 */
bogdanm 0:9b334a45a8ff 405
bogdanm 0:9b334a45a8ff 406 /**
bogdanm 0:9b334a45a8ff 407 * @}
bogdanm 0:9b334a45a8ff 408 */
bogdanm 0:9b334a45a8ff 409
bogdanm 0:9b334a45a8ff 410 /* Exported macro ------------------------------------------------------------*/
bogdanm 0:9b334a45a8ff 411 /* Exported functions ------------------------------------------------------- */
bogdanm 0:9b334a45a8ff 412
bogdanm 0:9b334a45a8ff 413 /* Function used to set the DMA configuration to the default reset state ******/
bogdanm 0:9b334a45a8ff 414 void DMA_DeInit(DMA_Channel_TypeDef* DMAy_Channelx);
bogdanm 0:9b334a45a8ff 415
bogdanm 0:9b334a45a8ff 416 /* Initialization and Configuration functions *********************************/
bogdanm 0:9b334a45a8ff 417 void DMA_Init(DMA_Channel_TypeDef* DMAy_Channelx, DMA_InitTypeDef* DMA_InitStruct);
bogdanm 0:9b334a45a8ff 418 void DMA_StructInit(DMA_InitTypeDef* DMA_InitStruct);
bogdanm 0:9b334a45a8ff 419 void DMA_Cmd(DMA_Channel_TypeDef* DMAy_Channelx, FunctionalState NewState);
bogdanm 0:9b334a45a8ff 420
bogdanm 0:9b334a45a8ff 421 /* Data Counter functions******************************************************/
bogdanm 0:9b334a45a8ff 422 void DMA_SetCurrDataCounter(DMA_Channel_TypeDef* DMAy_Channelx, uint16_t DataNumber);
bogdanm 0:9b334a45a8ff 423 uint16_t DMA_GetCurrDataCounter(DMA_Channel_TypeDef* DMAy_Channelx);
bogdanm 0:9b334a45a8ff 424
bogdanm 0:9b334a45a8ff 425 /* Interrupts and flags management functions **********************************/
bogdanm 0:9b334a45a8ff 426 void DMA_ITConfig(DMA_Channel_TypeDef* DMAy_Channelx, uint32_t DMA_IT, FunctionalState NewState);
bogdanm 0:9b334a45a8ff 427 FlagStatus DMA_GetFlagStatus(uint32_t DMAy_FLAG);
bogdanm 0:9b334a45a8ff 428 void DMA_ClearFlag(uint32_t DMAy_FLAG);
bogdanm 0:9b334a45a8ff 429 ITStatus DMA_GetITStatus(uint32_t DMAy_IT);
bogdanm 0:9b334a45a8ff 430 void DMA_ClearITPendingBit(uint32_t DMAy_IT);
bogdanm 0:9b334a45a8ff 431
bogdanm 0:9b334a45a8ff 432 #ifdef __cplusplus
bogdanm 0:9b334a45a8ff 433 }
bogdanm 0:9b334a45a8ff 434 #endif
bogdanm 0:9b334a45a8ff 435
bogdanm 0:9b334a45a8ff 436 #endif /*__STM32F30x_DMA_H */
bogdanm 0:9b334a45a8ff 437
bogdanm 0:9b334a45a8ff 438 /**
bogdanm 0:9b334a45a8ff 439 * @}
bogdanm 0:9b334a45a8ff 440 */
bogdanm 0:9b334a45a8ff 441
bogdanm 0:9b334a45a8ff 442 /**
bogdanm 0:9b334a45a8ff 443 * @}
bogdanm 0:9b334a45a8ff 444 */
bogdanm 0:9b334a45a8ff 445
bogdanm 0:9b334a45a8ff 446 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/