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