STM32L4xx_HAL_Driver  1.14.0
stm32l4xx_ll_dma.h
Go to the documentation of this file.
1 
20 /* Define to prevent recursive inclusion -------------------------------------*/
21 #ifndef STM32L4xx_LL_DMA_H
22 #define STM32L4xx_LL_DMA_H
23 
24 #ifdef __cplusplus
25 extern "C" {
26 #endif
27 
28 /* Includes ------------------------------------------------------------------*/
29 #include "stm32l4xx.h"
30 #if defined(DMAMUX1)
31 #include "stm32l4xx_ll_dmamux.h"
32 #endif /* DMAMUX1 */
33 
38 #if defined (DMA1) || defined (DMA2)
39 
44 /* Private types -------------------------------------------------------------*/
45 /* Private variables ---------------------------------------------------------*/
49 /* Array used to get the DMA channel register offset versus channel index LL_DMA_CHANNEL_x */
50 static const uint8_t CHANNEL_OFFSET_TAB[] =
51 {
52  (uint8_t)(DMA1_Channel1_BASE - DMA1_BASE),
53  (uint8_t)(DMA1_Channel2_BASE - DMA1_BASE),
54  (uint8_t)(DMA1_Channel3_BASE - DMA1_BASE),
55  (uint8_t)(DMA1_Channel4_BASE - DMA1_BASE),
56  (uint8_t)(DMA1_Channel5_BASE - DMA1_BASE),
57  (uint8_t)(DMA1_Channel6_BASE - DMA1_BASE),
58  (uint8_t)(DMA1_Channel7_BASE - DMA1_BASE)
59 };
64 /* Private constants ---------------------------------------------------------*/
65 #if defined(DMAMUX1)
66 #else
67 
70 /* Define used to get CSELR register offset */
71 #define DMA_CSELR_OFFSET (uint32_t)(DMA1_CSELR_BASE - DMA1_BASE)
72 
73 /* Defines used for the bit position in the register and perform offsets */
74 #define DMA_POSITION_CSELR_CXS POSITION_VAL(DMA_CSELR_C1S << (Channel*4U))
75 
78 #endif /* DMAMUX1 */
79 
80 /* Private constants ---------------------------------------------------------*/
81 /* Private macros ------------------------------------------------------------*/
82 #if defined(DMAMUX1)
83 
93 #define __LL_DMA_INSTANCE_TO_DMAMUX_CHANNEL(__DMA_INSTANCE__) \
94 (((__DMA_INSTANCE__) == DMA1) ? 0x00000000U : LL_DMA_CHANNEL_7)
95 
99 #else
100 #if defined(USE_FULL_LL_DRIVER)
101 
107 #endif /*USE_FULL_LL_DRIVER*/
108 #endif /* DMAMUX1 */
109 
110 /* Exported types ------------------------------------------------------------*/
111 #if defined(USE_FULL_LL_DRIVER)
112 
115 typedef struct
116 {
127  uint32_t Direction;
133  uint32_t Mode;
164  uint32_t NbData;
170 #if defined(DMAMUX1)
171 
172  uint32_t PeriphRequest;
176 #else
177 
178  uint32_t PeriphRequest;
182 #endif /* DMAMUX1 */
183 
184  uint32_t Priority;
193 #endif /*USE_FULL_LL_DRIVER*/
194 
195 /* Exported constants --------------------------------------------------------*/
203 #define LL_DMA_IFCR_CGIF1 DMA_IFCR_CGIF1
204 #define LL_DMA_IFCR_CTCIF1 DMA_IFCR_CTCIF1
205 #define LL_DMA_IFCR_CHTIF1 DMA_IFCR_CHTIF1
206 #define LL_DMA_IFCR_CTEIF1 DMA_IFCR_CTEIF1
207 #define LL_DMA_IFCR_CGIF2 DMA_IFCR_CGIF2
208 #define LL_DMA_IFCR_CTCIF2 DMA_IFCR_CTCIF2
209 #define LL_DMA_IFCR_CHTIF2 DMA_IFCR_CHTIF2
210 #define LL_DMA_IFCR_CTEIF2 DMA_IFCR_CTEIF2
211 #define LL_DMA_IFCR_CGIF3 DMA_IFCR_CGIF3
212 #define LL_DMA_IFCR_CTCIF3 DMA_IFCR_CTCIF3
213 #define LL_DMA_IFCR_CHTIF3 DMA_IFCR_CHTIF3
214 #define LL_DMA_IFCR_CTEIF3 DMA_IFCR_CTEIF3
215 #define LL_DMA_IFCR_CGIF4 DMA_IFCR_CGIF4
216 #define LL_DMA_IFCR_CTCIF4 DMA_IFCR_CTCIF4
217 #define LL_DMA_IFCR_CHTIF4 DMA_IFCR_CHTIF4
218 #define LL_DMA_IFCR_CTEIF4 DMA_IFCR_CTEIF4
219 #define LL_DMA_IFCR_CGIF5 DMA_IFCR_CGIF5
220 #define LL_DMA_IFCR_CTCIF5 DMA_IFCR_CTCIF5
221 #define LL_DMA_IFCR_CHTIF5 DMA_IFCR_CHTIF5
222 #define LL_DMA_IFCR_CTEIF5 DMA_IFCR_CTEIF5
223 #define LL_DMA_IFCR_CGIF6 DMA_IFCR_CGIF6
224 #define LL_DMA_IFCR_CTCIF6 DMA_IFCR_CTCIF6
225 #define LL_DMA_IFCR_CHTIF6 DMA_IFCR_CHTIF6
226 #define LL_DMA_IFCR_CTEIF6 DMA_IFCR_CTEIF6
227 #define LL_DMA_IFCR_CGIF7 DMA_IFCR_CGIF7
228 #define LL_DMA_IFCR_CTCIF7 DMA_IFCR_CTCIF7
229 #define LL_DMA_IFCR_CHTIF7 DMA_IFCR_CHTIF7
230 #define LL_DMA_IFCR_CTEIF7 DMA_IFCR_CTEIF7
239 #define LL_DMA_ISR_GIF1 DMA_ISR_GIF1
240 #define LL_DMA_ISR_TCIF1 DMA_ISR_TCIF1
241 #define LL_DMA_ISR_HTIF1 DMA_ISR_HTIF1
242 #define LL_DMA_ISR_TEIF1 DMA_ISR_TEIF1
243 #define LL_DMA_ISR_GIF2 DMA_ISR_GIF2
244 #define LL_DMA_ISR_TCIF2 DMA_ISR_TCIF2
245 #define LL_DMA_ISR_HTIF2 DMA_ISR_HTIF2
246 #define LL_DMA_ISR_TEIF2 DMA_ISR_TEIF2
247 #define LL_DMA_ISR_GIF3 DMA_ISR_GIF3
248 #define LL_DMA_ISR_TCIF3 DMA_ISR_TCIF3
249 #define LL_DMA_ISR_HTIF3 DMA_ISR_HTIF3
250 #define LL_DMA_ISR_TEIF3 DMA_ISR_TEIF3
251 #define LL_DMA_ISR_GIF4 DMA_ISR_GIF4
252 #define LL_DMA_ISR_TCIF4 DMA_ISR_TCIF4
253 #define LL_DMA_ISR_HTIF4 DMA_ISR_HTIF4
254 #define LL_DMA_ISR_TEIF4 DMA_ISR_TEIF4
255 #define LL_DMA_ISR_GIF5 DMA_ISR_GIF5
256 #define LL_DMA_ISR_TCIF5 DMA_ISR_TCIF5
257 #define LL_DMA_ISR_HTIF5 DMA_ISR_HTIF5
258 #define LL_DMA_ISR_TEIF5 DMA_ISR_TEIF5
259 #define LL_DMA_ISR_GIF6 DMA_ISR_GIF6
260 #define LL_DMA_ISR_TCIF6 DMA_ISR_TCIF6
261 #define LL_DMA_ISR_HTIF6 DMA_ISR_HTIF6
262 #define LL_DMA_ISR_TEIF6 DMA_ISR_TEIF6
263 #define LL_DMA_ISR_GIF7 DMA_ISR_GIF7
264 #define LL_DMA_ISR_TCIF7 DMA_ISR_TCIF7
265 #define LL_DMA_ISR_HTIF7 DMA_ISR_HTIF7
266 #define LL_DMA_ISR_TEIF7 DMA_ISR_TEIF7
275 #define LL_DMA_CCR_TCIE DMA_CCR_TCIE
276 #define LL_DMA_CCR_HTIE DMA_CCR_HTIE
277 #define LL_DMA_CCR_TEIE DMA_CCR_TEIE
285 #define LL_DMA_CHANNEL_1 0x00000000U
286 #define LL_DMA_CHANNEL_2 0x00000001U
287 #define LL_DMA_CHANNEL_3 0x00000002U
288 #define LL_DMA_CHANNEL_4 0x00000003U
289 #define LL_DMA_CHANNEL_5 0x00000004U
290 #define LL_DMA_CHANNEL_6 0x00000005U
291 #define LL_DMA_CHANNEL_7 0x00000006U
292 #if defined(USE_FULL_LL_DRIVER)
293 #define LL_DMA_CHANNEL_ALL 0xFFFF0000U
294 #endif /*USE_FULL_LL_DRIVER*/
295 
302 #define LL_DMA_DIRECTION_PERIPH_TO_MEMORY 0x00000000U
303 #define LL_DMA_DIRECTION_MEMORY_TO_PERIPH DMA_CCR_DIR
304 #define LL_DMA_DIRECTION_MEMORY_TO_MEMORY DMA_CCR_MEM2MEM
312 #define LL_DMA_MODE_NORMAL 0x00000000U
313 #define LL_DMA_MODE_CIRCULAR DMA_CCR_CIRC
321 #define LL_DMA_PERIPH_INCREMENT DMA_CCR_PINC
322 #define LL_DMA_PERIPH_NOINCREMENT 0x00000000U
330 #define LL_DMA_MEMORY_INCREMENT DMA_CCR_MINC
331 #define LL_DMA_MEMORY_NOINCREMENT 0x00000000U
339 #define LL_DMA_PDATAALIGN_BYTE 0x00000000U
340 #define LL_DMA_PDATAALIGN_HALFWORD DMA_CCR_PSIZE_0
341 #define LL_DMA_PDATAALIGN_WORD DMA_CCR_PSIZE_1
349 #define LL_DMA_MDATAALIGN_BYTE 0x00000000U
350 #define LL_DMA_MDATAALIGN_HALFWORD DMA_CCR_MSIZE_0
351 #define LL_DMA_MDATAALIGN_WORD DMA_CCR_MSIZE_1
359 #define LL_DMA_PRIORITY_LOW 0x00000000U
360 #define LL_DMA_PRIORITY_MEDIUM DMA_CCR_PL_0
361 #define LL_DMA_PRIORITY_HIGH DMA_CCR_PL_1
362 #define LL_DMA_PRIORITY_VERYHIGH DMA_CCR_PL
367 #if !defined (DMAMUX1)
368 
371 #define LL_DMA_REQUEST_0 0x00000000U
372 #define LL_DMA_REQUEST_1 0x00000001U
373 #define LL_DMA_REQUEST_2 0x00000002U
374 #define LL_DMA_REQUEST_3 0x00000003U
375 #define LL_DMA_REQUEST_4 0x00000004U
376 #define LL_DMA_REQUEST_5 0x00000005U
377 #define LL_DMA_REQUEST_6 0x00000006U
378 #define LL_DMA_REQUEST_7 0x00000007U
382 #endif /* !defined DMAMUX1 */
383 
388 /* Exported macro ------------------------------------------------------------*/
403 #define LL_DMA_WriteReg(__INSTANCE__, __REG__, __VALUE__) WRITE_REG(__INSTANCE__->__REG__, (__VALUE__))
404 
411 #define LL_DMA_ReadReg(__INSTANCE__, __REG__) READ_REG(__INSTANCE__->__REG__)
412 
424 #if defined(DMA2)
425 #define __LL_DMA_GET_INSTANCE(__CHANNEL_INSTANCE__) \
426 (((uint32_t)(__CHANNEL_INSTANCE__) > ((uint32_t)DMA1_Channel7)) ? DMA2 : DMA1)
427 #else
428 #define __LL_DMA_GET_INSTANCE(__CHANNEL_INSTANCE__) (DMA1)
429 #endif
430 
436 #if defined (DMA2)
437 #if defined (DMA2_Channel6) && defined (DMA2_Channel7)
438 #define __LL_DMA_GET_CHANNEL(__CHANNEL_INSTANCE__) \
439 (((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA1_Channel1)) ? LL_DMA_CHANNEL_1 : \
440  ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA2_Channel1)) ? LL_DMA_CHANNEL_1 : \
441  ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA1_Channel2)) ? LL_DMA_CHANNEL_2 : \
442  ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA2_Channel2)) ? LL_DMA_CHANNEL_2 : \
443  ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA1_Channel3)) ? LL_DMA_CHANNEL_3 : \
444  ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA2_Channel3)) ? LL_DMA_CHANNEL_3 : \
445  ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA1_Channel4)) ? LL_DMA_CHANNEL_4 : \
446  ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA2_Channel4)) ? LL_DMA_CHANNEL_4 : \
447  ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA1_Channel5)) ? LL_DMA_CHANNEL_5 : \
448  ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA2_Channel5)) ? LL_DMA_CHANNEL_5 : \
449  ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA1_Channel6)) ? LL_DMA_CHANNEL_6 : \
450  ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA2_Channel6)) ? LL_DMA_CHANNEL_6 : \
451  LL_DMA_CHANNEL_7)
452 #else
453 #define __LL_DMA_GET_CHANNEL(__CHANNEL_INSTANCE__) \
454 (((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA1_Channel1)) ? LL_DMA_CHANNEL_1 : \
455  ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA2_Channel1)) ? LL_DMA_CHANNEL_1 : \
456  ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA1_Channel2)) ? LL_DMA_CHANNEL_2 : \
457  ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA2_Channel2)) ? LL_DMA_CHANNEL_2 : \
458  ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA1_Channel3)) ? LL_DMA_CHANNEL_3 : \
459  ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA2_Channel3)) ? LL_DMA_CHANNEL_3 : \
460  ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA1_Channel4)) ? LL_DMA_CHANNEL_4 : \
461  ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA2_Channel4)) ? LL_DMA_CHANNEL_4 : \
462  ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA1_Channel5)) ? LL_DMA_CHANNEL_5 : \
463  ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA2_Channel5)) ? LL_DMA_CHANNEL_5 : \
464  ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA1_Channel6)) ? LL_DMA_CHANNEL_6 : \
465  LL_DMA_CHANNEL_7)
466 #endif
467 #else
468 #define __LL_DMA_GET_CHANNEL(__CHANNEL_INSTANCE__) \
469 (((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA1_Channel1)) ? LL_DMA_CHANNEL_1 : \
470  ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA1_Channel2)) ? LL_DMA_CHANNEL_2 : \
471  ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA1_Channel3)) ? LL_DMA_CHANNEL_3 : \
472  ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA1_Channel4)) ? LL_DMA_CHANNEL_4 : \
473  ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA1_Channel5)) ? LL_DMA_CHANNEL_5 : \
474  ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA1_Channel6)) ? LL_DMA_CHANNEL_6 : \
475  LL_DMA_CHANNEL_7)
476 #endif
477 
484 #if defined (DMA2)
485 #if defined (DMA2_Channel6) && defined (DMA2_Channel7)
486 #define __LL_DMA_GET_CHANNEL_INSTANCE(__DMA_INSTANCE__, __CHANNEL__) \
487 ((((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA1)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_1))) ? DMA1_Channel1 : \
488  (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA2)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_1))) ? DMA2_Channel1 : \
489  (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA1)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_2))) ? DMA1_Channel2 : \
490  (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA2)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_2))) ? DMA2_Channel2 : \
491  (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA1)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_3))) ? DMA1_Channel3 : \
492  (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA2)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_3))) ? DMA2_Channel3 : \
493  (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA1)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_4))) ? DMA1_Channel4 : \
494  (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA2)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_4))) ? DMA2_Channel4 : \
495  (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA1)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_5))) ? DMA1_Channel5 : \
496  (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA2)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_5))) ? DMA2_Channel5 : \
497  (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA1)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_6))) ? DMA1_Channel6 : \
498  (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA2)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_6))) ? DMA2_Channel6 : \
499  (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA1)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_7))) ? DMA1_Channel7 : \
500  DMA2_Channel7)
501 #else
502 #define __LL_DMA_GET_CHANNEL_INSTANCE(__DMA_INSTANCE__, __CHANNEL__) \
503 ((((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA1)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_1))) ? DMA1_Channel1 : \
504  (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA2)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_1))) ? DMA2_Channel1 : \
505  (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA1)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_2))) ? DMA1_Channel2 : \
506  (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA2)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_2))) ? DMA2_Channel2 : \
507  (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA1)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_3))) ? DMA1_Channel3 : \
508  (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA2)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_3))) ? DMA2_Channel3 : \
509  (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA1)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_4))) ? DMA1_Channel4 : \
510  (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA2)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_4))) ? DMA2_Channel4 : \
511  (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA1)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_5))) ? DMA1_Channel5 : \
512  (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA2)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_5))) ? DMA2_Channel5 : \
513  (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA1)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_6))) ? DMA1_Channel6 : \
514  DMA1_Channel7)
515 #endif
516 #else
517 #define __LL_DMA_GET_CHANNEL_INSTANCE(__DMA_INSTANCE__, __CHANNEL__) \
518 ((((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA1)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_1))) ? DMA1_Channel1 : \
519  (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA1)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_2))) ? DMA1_Channel2 : \
520  (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA1)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_3))) ? DMA1_Channel3 : \
521  (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA1)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_4))) ? DMA1_Channel4 : \
522  (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA1)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_5))) ? DMA1_Channel5 : \
523  (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA1)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_6))) ? DMA1_Channel6 : \
524  DMA1_Channel7)
525 #endif
526 
535 /* Exported functions --------------------------------------------------------*/
557 __STATIC_INLINE void LL_DMA_EnableChannel(DMA_TypeDef *DMAx, uint32_t Channel)
558 {
559  uint32_t dma_base_addr = (uint32_t)DMAx;
560  SET_BIT(((DMA_Channel_TypeDef *)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel]))->CCR, DMA_CCR_EN);
561 }
562 
577 __STATIC_INLINE void LL_DMA_DisableChannel(DMA_TypeDef *DMAx, uint32_t Channel)
578 {
579  uint32_t dma_base_addr = (uint32_t)DMAx;
580  CLEAR_BIT(((DMA_Channel_TypeDef *)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel]))->CCR, DMA_CCR_EN);
581 }
582 
597 __STATIC_INLINE uint32_t LL_DMA_IsEnabledChannel(DMA_TypeDef *DMAx, uint32_t Channel)
598 {
599  uint32_t dma_base_addr = (uint32_t)DMAx;
600  return ((READ_BIT(((DMA_Channel_TypeDef *)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel]))->CCR,
601  DMA_CCR_EN) == (DMA_CCR_EN)) ? 1UL : 0UL);
602 }
603 
633 __STATIC_INLINE void LL_DMA_ConfigTransfer(DMA_TypeDef *DMAx, uint32_t Channel, uint32_t Configuration)
634 {
635  uint32_t dma_base_addr = (uint32_t)DMAx;
636  MODIFY_REG(((DMA_Channel_TypeDef *)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel]))->CCR,
637  DMA_CCR_DIR | DMA_CCR_MEM2MEM | DMA_CCR_CIRC | DMA_CCR_PINC | DMA_CCR_MINC | DMA_CCR_PSIZE | DMA_CCR_MSIZE | DMA_CCR_PL,
638  Configuration);
639 }
640 
660 __STATIC_INLINE void LL_DMA_SetDataTransferDirection(DMA_TypeDef *DMAx, uint32_t Channel, uint32_t Direction)
661 {
662  uint32_t dma_base_addr = (uint32_t)DMAx;
663  MODIFY_REG(((DMA_Channel_TypeDef *)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel]))->CCR,
664  DMA_CCR_DIR | DMA_CCR_MEM2MEM, Direction);
665 }
666 
685 __STATIC_INLINE uint32_t LL_DMA_GetDataTransferDirection(DMA_TypeDef *DMAx, uint32_t Channel)
686 {
687  uint32_t dma_base_addr = (uint32_t)DMAx;
688  return (READ_BIT(((DMA_Channel_TypeDef *)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel]))->CCR,
689  DMA_CCR_DIR | DMA_CCR_MEM2MEM));
690 }
691 
711 __STATIC_INLINE void LL_DMA_SetMode(DMA_TypeDef *DMAx, uint32_t Channel, uint32_t Mode)
712 {
713  uint32_t dma_base_addr = (uint32_t)DMAx;
714  MODIFY_REG(((DMA_Channel_TypeDef *)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel]))->CCR, DMA_CCR_CIRC,
715  Mode);
716 }
717 
734 __STATIC_INLINE uint32_t LL_DMA_GetMode(DMA_TypeDef *DMAx, uint32_t Channel)
735 {
736  uint32_t dma_base_addr = (uint32_t)DMAx;
737  return (READ_BIT(((DMA_Channel_TypeDef *)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel]))->CCR,
738  DMA_CCR_CIRC));
739 }
740 
758 __STATIC_INLINE void LL_DMA_SetPeriphIncMode(DMA_TypeDef *DMAx, uint32_t Channel, uint32_t PeriphOrM2MSrcIncMode)
759 {
760  uint32_t dma_base_addr = (uint32_t)DMAx;
761  MODIFY_REG(((DMA_Channel_TypeDef *)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel]))->CCR, DMA_CCR_PINC,
762  PeriphOrM2MSrcIncMode);
763 }
764 
781 __STATIC_INLINE uint32_t LL_DMA_GetPeriphIncMode(DMA_TypeDef *DMAx, uint32_t Channel)
782 {
783  uint32_t dma_base_addr = (uint32_t)DMAx;
784  return (READ_BIT(((DMA_Channel_TypeDef *)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel]))->CCR,
785  DMA_CCR_PINC));
786 }
787 
805 __STATIC_INLINE void LL_DMA_SetMemoryIncMode(DMA_TypeDef *DMAx, uint32_t Channel, uint32_t MemoryOrM2MDstIncMode)
806 {
807  uint32_t dma_base_addr = (uint32_t)DMAx;
808  MODIFY_REG(((DMA_Channel_TypeDef *)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel]))->CCR, DMA_CCR_MINC,
809  MemoryOrM2MDstIncMode);
810 }
811 
828 __STATIC_INLINE uint32_t LL_DMA_GetMemoryIncMode(DMA_TypeDef *DMAx, uint32_t Channel)
829 {
830  uint32_t dma_base_addr = (uint32_t)DMAx;
831  return (READ_BIT(((DMA_Channel_TypeDef *)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel]))->CCR,
832  DMA_CCR_MINC));
833 }
834 
853 __STATIC_INLINE void LL_DMA_SetPeriphSize(DMA_TypeDef *DMAx, uint32_t Channel, uint32_t PeriphOrM2MSrcDataSize)
854 {
855  uint32_t dma_base_addr = (uint32_t)DMAx;
856  MODIFY_REG(((DMA_Channel_TypeDef *)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel]))->CCR, DMA_CCR_PSIZE,
857  PeriphOrM2MSrcDataSize);
858 }
859 
877 __STATIC_INLINE uint32_t LL_DMA_GetPeriphSize(DMA_TypeDef *DMAx, uint32_t Channel)
878 {
879  uint32_t dma_base_addr = (uint32_t)DMAx;
880  return (READ_BIT(((DMA_Channel_TypeDef *)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel]))->CCR,
881  DMA_CCR_PSIZE));
882 }
883 
902 __STATIC_INLINE void LL_DMA_SetMemorySize(DMA_TypeDef *DMAx, uint32_t Channel, uint32_t MemoryOrM2MDstDataSize)
903 {
904  uint32_t dma_base_addr = (uint32_t)DMAx;
905  MODIFY_REG(((DMA_Channel_TypeDef *)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel]))->CCR, DMA_CCR_MSIZE,
906  MemoryOrM2MDstDataSize);
907 }
908 
926 __STATIC_INLINE uint32_t LL_DMA_GetMemorySize(DMA_TypeDef *DMAx, uint32_t Channel)
927 {
928  uint32_t dma_base_addr = (uint32_t)DMAx;
929  return (READ_BIT(((DMA_Channel_TypeDef *)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel]))->CCR,
930  DMA_CCR_MSIZE));
931 }
932 
952 __STATIC_INLINE void LL_DMA_SetChannelPriorityLevel(DMA_TypeDef *DMAx, uint32_t Channel, uint32_t Priority)
953 {
954  uint32_t dma_base_addr = (uint32_t)DMAx;
955  MODIFY_REG(((DMA_Channel_TypeDef *)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel]))->CCR, DMA_CCR_PL,
956  Priority);
957 }
958 
977 __STATIC_INLINE uint32_t LL_DMA_GetChannelPriorityLevel(DMA_TypeDef *DMAx, uint32_t Channel)
978 {
979  uint32_t dma_base_addr = (uint32_t)DMAx;
980  return (READ_BIT(((DMA_Channel_TypeDef *)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel]))->CCR,
981  DMA_CCR_PL));
982 }
983 
1001 __STATIC_INLINE void LL_DMA_SetDataLength(DMA_TypeDef *DMAx, uint32_t Channel, uint32_t NbData)
1002 {
1003  uint32_t dma_base_addr = (uint32_t)DMAx;
1004  MODIFY_REG(((DMA_Channel_TypeDef *)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel]))->CNDTR,
1005  DMA_CNDTR_NDT, NbData);
1006 }
1007 
1024 __STATIC_INLINE uint32_t LL_DMA_GetDataLength(DMA_TypeDef *DMAx, uint32_t Channel)
1025 {
1026  uint32_t dma_base_addr = (uint32_t)DMAx;
1027  return (READ_BIT(((DMA_Channel_TypeDef *)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel]))->CNDTR,
1028  DMA_CNDTR_NDT));
1029 }
1030 
1054 __STATIC_INLINE void LL_DMA_ConfigAddresses(DMA_TypeDef *DMAx, uint32_t Channel, uint32_t SrcAddress,
1055  uint32_t DstAddress, uint32_t Direction)
1056 {
1057  uint32_t dma_base_addr = (uint32_t)DMAx;
1058  /* Direction Memory to Periph */
1059  if (Direction == LL_DMA_DIRECTION_MEMORY_TO_PERIPH)
1060  {
1061  WRITE_REG(((DMA_Channel_TypeDef *)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel]))->CMAR, SrcAddress);
1062  WRITE_REG(((DMA_Channel_TypeDef *)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel]))->CPAR, DstAddress);
1063  }
1064  /* Direction Periph to Memory and Memory to Memory */
1065  else
1066  {
1067  WRITE_REG(((DMA_Channel_TypeDef *)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel]))->CPAR, SrcAddress);
1068  WRITE_REG(((DMA_Channel_TypeDef *)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel]))->CMAR, DstAddress);
1069  }
1070 }
1071 
1089 __STATIC_INLINE void LL_DMA_SetMemoryAddress(DMA_TypeDef *DMAx, uint32_t Channel, uint32_t MemoryAddress)
1090 {
1091  uint32_t dma_base_addr = (uint32_t)DMAx;
1092  WRITE_REG(((DMA_Channel_TypeDef *)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel]))->CMAR, MemoryAddress);
1093 }
1094 
1112 __STATIC_INLINE void LL_DMA_SetPeriphAddress(DMA_TypeDef *DMAx, uint32_t Channel, uint32_t PeriphAddress)
1113 {
1114  uint32_t dma_base_addr = (uint32_t)DMAx;
1115  WRITE_REG(((DMA_Channel_TypeDef *)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel]))->CPAR, PeriphAddress);
1116 }
1117 
1133 __STATIC_INLINE uint32_t LL_DMA_GetMemoryAddress(DMA_TypeDef *DMAx, uint32_t Channel)
1134 {
1135  uint32_t dma_base_addr = (uint32_t)DMAx;
1136  return (READ_REG(((DMA_Channel_TypeDef *)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel]))->CMAR));
1137 }
1138 
1154 __STATIC_INLINE uint32_t LL_DMA_GetPeriphAddress(DMA_TypeDef *DMAx, uint32_t Channel)
1155 {
1156  uint32_t dma_base_addr = (uint32_t)DMAx;
1157  return (READ_REG(((DMA_Channel_TypeDef *)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel]))->CPAR));
1158 }
1159 
1177 __STATIC_INLINE void LL_DMA_SetM2MSrcAddress(DMA_TypeDef *DMAx, uint32_t Channel, uint32_t MemoryAddress)
1178 {
1179  uint32_t dma_base_addr = (uint32_t)DMAx;
1180  WRITE_REG(((DMA_Channel_TypeDef *)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel]))->CPAR, MemoryAddress);
1181 }
1182 
1200 __STATIC_INLINE void LL_DMA_SetM2MDstAddress(DMA_TypeDef *DMAx, uint32_t Channel, uint32_t MemoryAddress)
1201 {
1202  uint32_t dma_base_addr = (uint32_t)DMAx;
1203  WRITE_REG(((DMA_Channel_TypeDef *)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel]))->CMAR, MemoryAddress);
1204 }
1205 
1221 __STATIC_INLINE uint32_t LL_DMA_GetM2MSrcAddress(DMA_TypeDef *DMAx, uint32_t Channel)
1222 {
1223  uint32_t dma_base_addr = (uint32_t)DMAx;
1224  return (READ_REG(((DMA_Channel_TypeDef *)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel]))->CPAR));
1225 }
1226 
1242 __STATIC_INLINE uint32_t LL_DMA_GetM2MDstAddress(DMA_TypeDef *DMAx, uint32_t Channel)
1243 {
1244  uint32_t dma_base_addr = (uint32_t)DMAx;
1245  return (READ_REG(((DMA_Channel_TypeDef *)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel]))->CMAR));
1246 }
1247 
1248 #if defined(DMAMUX1)
1249 
1360 __STATIC_INLINE void LL_DMA_SetPeriphRequest(DMA_TypeDef *DMAx, uint32_t Channel, uint32_t Request)
1361 {
1362  uint32_t dmamux_ccr_offset = ((((uint32_t)DMAx ^ (uint32_t)DMA1) >> 10U) * 7U);
1363  MODIFY_REG((DMAMUX1_Channel0 + Channel + dmamux_ccr_offset)->CCR, DMAMUX_CxCR_DMAREQ_ID, Request);
1364 }
1365 
1476 __STATIC_INLINE uint32_t LL_DMA_GetPeriphRequest(DMA_TypeDef *DMAx, uint32_t Channel)
1477 {
1478  uint32_t dmamux_ccr_offset = ((((uint32_t)DMAx ^ (uint32_t)DMA1) >> 10U) * 7U);
1479  return (READ_BIT((DMAMUX1_Channel0 + Channel + dmamux_ccr_offset)->CCR, DMAMUX_CxCR_DMAREQ_ID));
1480 }
1481 #else
1482 
1512 __STATIC_INLINE void LL_DMA_SetPeriphRequest(DMA_TypeDef *DMAx, uint32_t Channel, uint32_t PeriphRequest)
1513 {
1514  MODIFY_REG(((DMA_Request_TypeDef *)((uint32_t)((uint32_t)DMAx + DMA_CSELR_OFFSET)))->CSELR,
1515  DMA_CSELR_C1S << ((Channel) * 4U), PeriphRequest << DMA_POSITION_CSELR_CXS);
1516 }
1517 
1546 __STATIC_INLINE uint32_t LL_DMA_GetPeriphRequest(DMA_TypeDef *DMAx, uint32_t Channel)
1547 {
1548  return (READ_BIT(((DMA_Request_TypeDef *)((uint32_t)((uint32_t)DMAx + DMA_CSELR_OFFSET)))->CSELR,
1549  DMA_CSELR_C1S << ((Channel) * 4U)) >> DMA_POSITION_CSELR_CXS);
1550 }
1551 #endif /* DMAMUX1 */
1552 
1567 __STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_GI1(DMA_TypeDef *DMAx)
1568 {
1569  return ((READ_BIT(DMAx->ISR, DMA_ISR_GIF1) == (DMA_ISR_GIF1)) ? 1UL : 0UL);
1570 }
1571 
1578 __STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_GI2(DMA_TypeDef *DMAx)
1579 {
1580  return ((READ_BIT(DMAx->ISR, DMA_ISR_GIF2) == (DMA_ISR_GIF2)) ? 1UL : 0UL);
1581 }
1582 
1589 __STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_GI3(DMA_TypeDef *DMAx)
1590 {
1591  return ((READ_BIT(DMAx->ISR, DMA_ISR_GIF3) == (DMA_ISR_GIF3)) ? 1UL : 0UL);
1592 }
1593 
1600 __STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_GI4(DMA_TypeDef *DMAx)
1601 {
1602  return ((READ_BIT(DMAx->ISR, DMA_ISR_GIF4) == (DMA_ISR_GIF4)) ? 1UL : 0UL);
1603 }
1604 
1611 __STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_GI5(DMA_TypeDef *DMAx)
1612 {
1613  return ((READ_BIT(DMAx->ISR, DMA_ISR_GIF5) == (DMA_ISR_GIF5)) ? 1UL : 0UL);
1614 }
1615 
1622 __STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_GI6(DMA_TypeDef *DMAx)
1623 {
1624  return ((READ_BIT(DMAx->ISR, DMA_ISR_GIF6) == (DMA_ISR_GIF6)) ? 1UL : 0UL);
1625 }
1626 
1633 __STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_GI7(DMA_TypeDef *DMAx)
1634 {
1635  return ((READ_BIT(DMAx->ISR, DMA_ISR_GIF7) == (DMA_ISR_GIF7)) ? 1UL : 0UL);
1636 }
1637 
1644 __STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_TC1(DMA_TypeDef *DMAx)
1645 {
1646  return ((READ_BIT(DMAx->ISR, DMA_ISR_TCIF1) == (DMA_ISR_TCIF1)) ? 1UL : 0UL);
1647 }
1648 
1655 __STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_TC2(DMA_TypeDef *DMAx)
1656 {
1657  return ((READ_BIT(DMAx->ISR, DMA_ISR_TCIF2) == (DMA_ISR_TCIF2)) ? 1UL : 0UL);
1658 }
1659 
1666 __STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_TC3(DMA_TypeDef *DMAx)
1667 {
1668  return ((READ_BIT(DMAx->ISR, DMA_ISR_TCIF3) == (DMA_ISR_TCIF3)) ? 1UL : 0UL);
1669 }
1670 
1677 __STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_TC4(DMA_TypeDef *DMAx)
1678 {
1679  return ((READ_BIT(DMAx->ISR, DMA_ISR_TCIF4) == (DMA_ISR_TCIF4)) ? 1UL : 0UL);
1680 }
1681 
1688 __STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_TC5(DMA_TypeDef *DMAx)
1689 {
1690  return ((READ_BIT(DMAx->ISR, DMA_ISR_TCIF5) == (DMA_ISR_TCIF5)) ? 1UL : 0UL);
1691 }
1692 
1699 __STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_TC6(DMA_TypeDef *DMAx)
1700 {
1701  return ((READ_BIT(DMAx->ISR, DMA_ISR_TCIF6) == (DMA_ISR_TCIF6)) ? 1UL : 0UL);
1702 }
1703 
1710 __STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_TC7(DMA_TypeDef *DMAx)
1711 {
1712  return ((READ_BIT(DMAx->ISR, DMA_ISR_TCIF7) == (DMA_ISR_TCIF7)) ? 1UL : 0UL);
1713 }
1714 
1721 __STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_HT1(DMA_TypeDef *DMAx)
1722 {
1723  return ((READ_BIT(DMAx->ISR, DMA_ISR_HTIF1) == (DMA_ISR_HTIF1)) ? 1UL : 0UL);
1724 }
1725 
1732 __STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_HT2(DMA_TypeDef *DMAx)
1733 {
1734  return ((READ_BIT(DMAx->ISR, DMA_ISR_HTIF2) == (DMA_ISR_HTIF2)) ? 1UL : 0UL);
1735 }
1736 
1743 __STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_HT3(DMA_TypeDef *DMAx)
1744 {
1745  return ((READ_BIT(DMAx->ISR, DMA_ISR_HTIF3) == (DMA_ISR_HTIF3)) ? 1UL : 0UL);
1746 }
1747 
1754 __STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_HT4(DMA_TypeDef *DMAx)
1755 {
1756  return ((READ_BIT(DMAx->ISR, DMA_ISR_HTIF4) == (DMA_ISR_HTIF4)) ? 1UL : 0UL);
1757 }
1758 
1765 __STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_HT5(DMA_TypeDef *DMAx)
1766 {
1767  return ((READ_BIT(DMAx->ISR, DMA_ISR_HTIF5) == (DMA_ISR_HTIF5)) ? 1UL : 0UL);
1768 }
1769 
1776 __STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_HT6(DMA_TypeDef *DMAx)
1777 {
1778  return ((READ_BIT(DMAx->ISR, DMA_ISR_HTIF6) == (DMA_ISR_HTIF6)) ? 1UL : 0UL);
1779 }
1780 
1787 __STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_HT7(DMA_TypeDef *DMAx)
1788 {
1789  return ((READ_BIT(DMAx->ISR, DMA_ISR_HTIF7) == (DMA_ISR_HTIF7)) ? 1UL : 0UL);
1790 }
1791 
1798 __STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_TE1(DMA_TypeDef *DMAx)
1799 {
1800  return ((READ_BIT(DMAx->ISR, DMA_ISR_TEIF1) == (DMA_ISR_TEIF1)) ? 1UL : 0UL);
1801 }
1802 
1809 __STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_TE2(DMA_TypeDef *DMAx)
1810 {
1811  return ((READ_BIT(DMAx->ISR, DMA_ISR_TEIF2) == (DMA_ISR_TEIF2)) ? 1UL : 0UL);
1812 }
1813 
1820 __STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_TE3(DMA_TypeDef *DMAx)
1821 {
1822  return ((READ_BIT(DMAx->ISR, DMA_ISR_TEIF3) == (DMA_ISR_TEIF3)) ? 1UL : 0UL);
1823 }
1824 
1831 __STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_TE4(DMA_TypeDef *DMAx)
1832 {
1833  return ((READ_BIT(DMAx->ISR, DMA_ISR_TEIF4) == (DMA_ISR_TEIF4)) ? 1UL : 0UL);
1834 }
1835 
1842 __STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_TE5(DMA_TypeDef *DMAx)
1843 {
1844  return ((READ_BIT(DMAx->ISR, DMA_ISR_TEIF5) == (DMA_ISR_TEIF5)) ? 1UL : 0UL);
1845 }
1846 
1853 __STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_TE6(DMA_TypeDef *DMAx)
1854 {
1855  return ((READ_BIT(DMAx->ISR, DMA_ISR_TEIF6) == (DMA_ISR_TEIF6)) ? 1UL : 0UL);
1856 }
1857 
1864 __STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_TE7(DMA_TypeDef *DMAx)
1865 {
1866  return ((READ_BIT(DMAx->ISR, DMA_ISR_TEIF7) == (DMA_ISR_TEIF7)) ? 1UL : 0UL);
1867 }
1868 
1875 __STATIC_INLINE void LL_DMA_ClearFlag_GI1(DMA_TypeDef *DMAx)
1876 {
1877  WRITE_REG(DMAx->IFCR, DMA_IFCR_CGIF1);
1878 }
1879 
1886 __STATIC_INLINE void LL_DMA_ClearFlag_GI2(DMA_TypeDef *DMAx)
1887 {
1888  WRITE_REG(DMAx->IFCR, DMA_IFCR_CGIF2);
1889 }
1890 
1897 __STATIC_INLINE void LL_DMA_ClearFlag_GI3(DMA_TypeDef *DMAx)
1898 {
1899  WRITE_REG(DMAx->IFCR, DMA_IFCR_CGIF3);
1900 }
1901 
1908 __STATIC_INLINE void LL_DMA_ClearFlag_GI4(DMA_TypeDef *DMAx)
1909 {
1910  WRITE_REG(DMAx->IFCR, DMA_IFCR_CGIF4);
1911 }
1912 
1919 __STATIC_INLINE void LL_DMA_ClearFlag_GI5(DMA_TypeDef *DMAx)
1920 {
1921  WRITE_REG(DMAx->IFCR, DMA_IFCR_CGIF5);
1922 }
1923 
1930 __STATIC_INLINE void LL_DMA_ClearFlag_GI6(DMA_TypeDef *DMAx)
1931 {
1932  WRITE_REG(DMAx->IFCR, DMA_IFCR_CGIF6);
1933 }
1934 
1941 __STATIC_INLINE void LL_DMA_ClearFlag_GI7(DMA_TypeDef *DMAx)
1942 {
1943  WRITE_REG(DMAx->IFCR, DMA_IFCR_CGIF7);
1944 }
1945 
1952 __STATIC_INLINE void LL_DMA_ClearFlag_TC1(DMA_TypeDef *DMAx)
1953 {
1954  WRITE_REG(DMAx->IFCR, DMA_IFCR_CTCIF1);
1955 }
1956 
1963 __STATIC_INLINE void LL_DMA_ClearFlag_TC2(DMA_TypeDef *DMAx)
1964 {
1965  WRITE_REG(DMAx->IFCR, DMA_IFCR_CTCIF2);
1966 }
1967 
1974 __STATIC_INLINE void LL_DMA_ClearFlag_TC3(DMA_TypeDef *DMAx)
1975 {
1976  WRITE_REG(DMAx->IFCR, DMA_IFCR_CTCIF3);
1977 }
1978 
1985 __STATIC_INLINE void LL_DMA_ClearFlag_TC4(DMA_TypeDef *DMAx)
1986 {
1987  WRITE_REG(DMAx->IFCR, DMA_IFCR_CTCIF4);
1988 }
1989 
1996 __STATIC_INLINE void LL_DMA_ClearFlag_TC5(DMA_TypeDef *DMAx)
1997 {
1998  WRITE_REG(DMAx->IFCR, DMA_IFCR_CTCIF5);
1999 }
2000 
2007 __STATIC_INLINE void LL_DMA_ClearFlag_TC6(DMA_TypeDef *DMAx)
2008 {
2009  WRITE_REG(DMAx->IFCR, DMA_IFCR_CTCIF6);
2010 }
2011 
2018 __STATIC_INLINE void LL_DMA_ClearFlag_TC7(DMA_TypeDef *DMAx)
2019 {
2020  WRITE_REG(DMAx->IFCR, DMA_IFCR_CTCIF7);
2021 }
2022 
2029 __STATIC_INLINE void LL_DMA_ClearFlag_HT1(DMA_TypeDef *DMAx)
2030 {
2031  WRITE_REG(DMAx->IFCR, DMA_IFCR_CHTIF1);
2032 }
2033 
2040 __STATIC_INLINE void LL_DMA_ClearFlag_HT2(DMA_TypeDef *DMAx)
2041 {
2042  WRITE_REG(DMAx->IFCR, DMA_IFCR_CHTIF2);
2043 }
2044 
2051 __STATIC_INLINE void LL_DMA_ClearFlag_HT3(DMA_TypeDef *DMAx)
2052 {
2053  WRITE_REG(DMAx->IFCR, DMA_IFCR_CHTIF3);
2054 }
2055 
2062 __STATIC_INLINE void LL_DMA_ClearFlag_HT4(DMA_TypeDef *DMAx)
2063 {
2064  WRITE_REG(DMAx->IFCR, DMA_IFCR_CHTIF4);
2065 }
2066 
2073 __STATIC_INLINE void LL_DMA_ClearFlag_HT5(DMA_TypeDef *DMAx)
2074 {
2075  WRITE_REG(DMAx->IFCR, DMA_IFCR_CHTIF5);
2076 }
2077 
2084 __STATIC_INLINE void LL_DMA_ClearFlag_HT6(DMA_TypeDef *DMAx)
2085 {
2086  WRITE_REG(DMAx->IFCR, DMA_IFCR_CHTIF6);
2087 }
2088 
2095 __STATIC_INLINE void LL_DMA_ClearFlag_HT7(DMA_TypeDef *DMAx)
2096 {
2097  WRITE_REG(DMAx->IFCR, DMA_IFCR_CHTIF7);
2098 }
2099 
2106 __STATIC_INLINE void LL_DMA_ClearFlag_TE1(DMA_TypeDef *DMAx)
2107 {
2108  WRITE_REG(DMAx->IFCR, DMA_IFCR_CTEIF1);
2109 }
2110 
2117 __STATIC_INLINE void LL_DMA_ClearFlag_TE2(DMA_TypeDef *DMAx)
2118 {
2119  WRITE_REG(DMAx->IFCR, DMA_IFCR_CTEIF2);
2120 }
2121 
2128 __STATIC_INLINE void LL_DMA_ClearFlag_TE3(DMA_TypeDef *DMAx)
2129 {
2130  WRITE_REG(DMAx->IFCR, DMA_IFCR_CTEIF3);
2131 }
2132 
2139 __STATIC_INLINE void LL_DMA_ClearFlag_TE4(DMA_TypeDef *DMAx)
2140 {
2141  WRITE_REG(DMAx->IFCR, DMA_IFCR_CTEIF4);
2142 }
2143 
2150 __STATIC_INLINE void LL_DMA_ClearFlag_TE5(DMA_TypeDef *DMAx)
2151 {
2152  WRITE_REG(DMAx->IFCR, DMA_IFCR_CTEIF5);
2153 }
2154 
2161 __STATIC_INLINE void LL_DMA_ClearFlag_TE6(DMA_TypeDef *DMAx)
2162 {
2163  WRITE_REG(DMAx->IFCR, DMA_IFCR_CTEIF6);
2164 }
2165 
2172 __STATIC_INLINE void LL_DMA_ClearFlag_TE7(DMA_TypeDef *DMAx)
2173 {
2174  WRITE_REG(DMAx->IFCR, DMA_IFCR_CTEIF7);
2175 }
2176 
2198 __STATIC_INLINE void LL_DMA_EnableIT_TC(DMA_TypeDef *DMAx, uint32_t Channel)
2199 {
2200  uint32_t dma_base_addr = (uint32_t)DMAx;
2201  SET_BIT(((DMA_Channel_TypeDef *)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel]))->CCR, DMA_CCR_TCIE);
2202 }
2203 
2218 __STATIC_INLINE void LL_DMA_EnableIT_HT(DMA_TypeDef *DMAx, uint32_t Channel)
2219 {
2220  uint32_t dma_base_addr = (uint32_t)DMAx;
2221  SET_BIT(((DMA_Channel_TypeDef *)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel]))->CCR, DMA_CCR_HTIE);
2222 }
2223 
2238 __STATIC_INLINE void LL_DMA_EnableIT_TE(DMA_TypeDef *DMAx, uint32_t Channel)
2239 {
2240  uint32_t dma_base_addr = (uint32_t)DMAx;
2241  SET_BIT(((DMA_Channel_TypeDef *)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel]))->CCR, DMA_CCR_TEIE);
2242 }
2243 
2258 __STATIC_INLINE void LL_DMA_DisableIT_TC(DMA_TypeDef *DMAx, uint32_t Channel)
2259 {
2260  uint32_t dma_base_addr = (uint32_t)DMAx;
2261  CLEAR_BIT(((DMA_Channel_TypeDef *)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel]))->CCR, DMA_CCR_TCIE);
2262 }
2263 
2278 __STATIC_INLINE void LL_DMA_DisableIT_HT(DMA_TypeDef *DMAx, uint32_t Channel)
2279 {
2280  uint32_t dma_base_addr = (uint32_t)DMAx;
2281  CLEAR_BIT(((DMA_Channel_TypeDef *)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel]))->CCR, DMA_CCR_HTIE);
2282 }
2283 
2298 __STATIC_INLINE void LL_DMA_DisableIT_TE(DMA_TypeDef *DMAx, uint32_t Channel)
2299 {
2300  uint32_t dma_base_addr = (uint32_t)DMAx;
2301  CLEAR_BIT(((DMA_Channel_TypeDef *)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel]))->CCR, DMA_CCR_TEIE);
2302 }
2303 
2318 __STATIC_INLINE uint32_t LL_DMA_IsEnabledIT_TC(DMA_TypeDef *DMAx, uint32_t Channel)
2319 {
2320  uint32_t dma_base_addr = (uint32_t)DMAx;
2321  return ((READ_BIT(((DMA_Channel_TypeDef *)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel]))->CCR,
2322  DMA_CCR_TCIE) == (DMA_CCR_TCIE)) ? 1UL : 0UL);
2323 }
2324 
2339 __STATIC_INLINE uint32_t LL_DMA_IsEnabledIT_HT(DMA_TypeDef *DMAx, uint32_t Channel)
2340 {
2341  uint32_t dma_base_addr = (uint32_t)DMAx;
2342  return ((READ_BIT(((DMA_Channel_TypeDef *)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel]))->CCR,
2343  DMA_CCR_HTIE) == (DMA_CCR_HTIE)) ? 1UL : 0UL);
2344 }
2345 
2360 __STATIC_INLINE uint32_t LL_DMA_IsEnabledIT_TE(DMA_TypeDef *DMAx, uint32_t Channel)
2361 {
2362  uint32_t dma_base_addr = (uint32_t)DMAx;
2363  return ((READ_BIT(((DMA_Channel_TypeDef *)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel]))->CCR,
2364  DMA_CCR_TEIE) == (DMA_CCR_TEIE)) ? 1UL : 0UL);
2365 }
2366 
2371 #if defined(USE_FULL_LL_DRIVER)
2372 
2375 ErrorStatus LL_DMA_Init(DMA_TypeDef *DMAx, uint32_t Channel, LL_DMA_InitTypeDef *DMA_InitStruct);
2376 ErrorStatus LL_DMA_DeInit(DMA_TypeDef *DMAx, uint32_t Channel);
2377 void LL_DMA_StructInit(LL_DMA_InitTypeDef *DMA_InitStruct);
2378 
2382 #endif /* USE_FULL_LL_DRIVER */
2383 
2392 #endif /* DMA1 || DMA2 */
2393 
2398 #ifdef __cplusplus
2399 }
2400 #endif
2401 
2402 #endif /* STM32L4xx_LL_DMA_H */
2403 
2404 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
__STATIC_INLINE void LL_DMA_EnableIT_TE(DMA_TypeDef *DMAx, uint32_t Channel)
Enable Transfer error interrupt. CCR TEIE LL_DMA_EnableIT_TE.
__STATIC_INLINE uint32_t LL_DMA_GetMemoryAddress(DMA_TypeDef *DMAx, uint32_t Channel)
Get Memory address.
__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_GI5(DMA_TypeDef *DMAx)
Get Channel 5 global interrupt flag. ISR GIF5 LL_DMA_IsActiveFlag_GI5.
__STATIC_INLINE void LL_DMA_SetM2MSrcAddress(DMA_TypeDef *DMAx, uint32_t Channel, uint32_t MemoryAddress)
Set the Memory to Memory Source address.
__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_HT4(DMA_TypeDef *DMAx)
Get Channel 4 half transfer flag. ISR HTIF4 LL_DMA_IsActiveFlag_HT4.
__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_TE4(DMA_TypeDef *DMAx)
Get Channel 4 transfer error flag. ISR TEIF4 LL_DMA_IsActiveFlag_TE4.
__STATIC_INLINE uint32_t LL_DMA_GetDataTransferDirection(DMA_TypeDef *DMAx, uint32_t Channel)
Get Data transfer direction (read from peripheral or from memory). CCR DIR LL_DMA_GetDataTransferDir...
__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_TC5(DMA_TypeDef *DMAx)
Get Channel 5 transfer complete flag. ISR TCIF5 LL_DMA_IsActiveFlag_TC5.
__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_GI7(DMA_TypeDef *DMAx)
Get Channel 7 global interrupt flag. ISR GIF7 LL_DMA_IsActiveFlag_GI7.
__STATIC_INLINE void LL_DMA_SetM2MDstAddress(DMA_TypeDef *DMAx, uint32_t Channel, uint32_t MemoryAddress)
Set the Memory to Memory Destination address.
__STATIC_INLINE uint32_t LL_DMA_GetChannelPriorityLevel(DMA_TypeDef *DMAx, uint32_t Channel)
Get Channel priority level. CCR PL LL_DMA_GetChannelPriorityLevel.
uint32_t MemoryOrM2MDstAddress
__STATIC_INLINE void LL_DMA_SetMode(DMA_TypeDef *DMAx, uint32_t Channel, uint32_t Mode)
Set DMA mode circular or normal.
__STATIC_INLINE void LL_DMA_ClearFlag_GI4(DMA_TypeDef *DMAx)
Clear Channel 4 global interrupt flag. IFCR CGIF4 LL_DMA_ClearFlag_GI4.
__STATIC_INLINE void LL_DMA_ClearFlag_HT4(DMA_TypeDef *DMAx)
Clear Channel 4 half transfer flag. IFCR CHTIF4 LL_DMA_ClearFlag_HT4.
__STATIC_INLINE uint32_t LL_DMA_IsEnabledChannel(DMA_TypeDef *DMAx, uint32_t Channel)
Check if DMA channel is enabled or disabled. CCR EN LL_DMA_IsEnabledChannel.
__STATIC_INLINE void LL_DMA_ConfigAddresses(DMA_TypeDef *DMAx, uint32_t Channel, uint32_t SrcAddress, uint32_t DstAddress, uint32_t Direction)
Configure the Source and Destination addresses.
__STATIC_INLINE void LL_DMA_ClearFlag_TE4(DMA_TypeDef *DMAx)
Clear Channel 4 transfer error flag. IFCR CTEIF4 LL_DMA_ClearFlag_TE4.
__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_TC6(DMA_TypeDef *DMAx)
Get Channel 6 transfer complete flag. ISR TCIF6 LL_DMA_IsActiveFlag_TC6.
__STATIC_INLINE void LL_DMA_ConfigTransfer(DMA_TypeDef *DMAx, uint32_t Channel, uint32_t Configuration)
Configure all parameters link to DMA transfer. CCR DIR LL_DMA_ConfigTransfer CCR MEM2MEM LL_DMA_Con...
__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_HT1(DMA_TypeDef *DMAx)
Get Channel 1 half transfer flag. ISR HTIF1 LL_DMA_IsActiveFlag_HT1.
__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_GI1(DMA_TypeDef *DMAx)
Get Channel 1 global interrupt flag. ISR GIF1 LL_DMA_IsActiveFlag_GI1.
__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_GI3(DMA_TypeDef *DMAx)
Get Channel 3 global interrupt flag. ISR GIF3 LL_DMA_IsActiveFlag_GI3.
__STATIC_INLINE void LL_DMA_SetMemorySize(DMA_TypeDef *DMAx, uint32_t Channel, uint32_t MemoryOrM2MDstDataSize)
Set Memory size. CCR MSIZE LL_DMA_SetMemorySize.
__STATIC_INLINE void LL_DMA_ClearFlag_TE6(DMA_TypeDef *DMAx)
Clear Channel 6 transfer error flag. IFCR CTEIF6 LL_DMA_ClearFlag_TE6.
__STATIC_INLINE void LL_DMA_EnableIT_HT(DMA_TypeDef *DMAx, uint32_t Channel)
Enable Half transfer interrupt. CCR HTIE LL_DMA_EnableIT_HT.
__STATIC_INLINE void LL_DMA_ClearFlag_HT3(DMA_TypeDef *DMAx)
Clear Channel 3 half transfer flag. IFCR CHTIF3 LL_DMA_ClearFlag_HT3.
__STATIC_INLINE uint32_t LL_DMA_GetDataLength(DMA_TypeDef *DMAx, uint32_t Channel)
Get Number of data to transfer.
__STATIC_INLINE void LL_DMA_ClearFlag_TC6(DMA_TypeDef *DMAx)
Clear Channel 6 transfer complete flag. IFCR CTCIF6 LL_DMA_ClearFlag_TC6.
__STATIC_INLINE void LL_DMA_SetChannelPriorityLevel(DMA_TypeDef *DMAx, uint32_t Channel, uint32_t Priority)
Set Channel priority level. CCR PL LL_DMA_SetChannelPriorityLevel.
__STATIC_INLINE void LL_DMA_DisableIT_HT(DMA_TypeDef *DMAx, uint32_t Channel)
Disable Half transfer interrupt. CCR HTIE LL_DMA_DisableIT_HT.
__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_TE6(DMA_TypeDef *DMAx)
Get Channel 6 transfer error flag. ISR TEIF6 LL_DMA_IsActiveFlag_TE6.
__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_TE5(DMA_TypeDef *DMAx)
Get Channel 5 transfer error flag. ISR TEIF5 LL_DMA_IsActiveFlag_TE5.
__STATIC_INLINE uint32_t LL_DMA_GetM2MDstAddress(DMA_TypeDef *DMAx, uint32_t Channel)
Get the Memory to Memory Destination address.
__STATIC_INLINE void LL_DMA_ClearFlag_TC5(DMA_TypeDef *DMAx)
Clear Channel 5 transfer complete flag. IFCR CTCIF5 LL_DMA_ClearFlag_TC5.
__STATIC_INLINE void LL_DMA_ClearFlag_GI3(DMA_TypeDef *DMAx)
Clear Channel 3 global interrupt flag. IFCR CGIF3 LL_DMA_ClearFlag_GI3.
__STATIC_INLINE void LL_DMA_SetDataLength(DMA_TypeDef *DMAx, uint32_t Channel, uint32_t NbData)
Set Number of data to transfer.
uint32_t PeriphOrM2MSrcDataSize
__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_HT6(DMA_TypeDef *DMAx)
Get Channel 6 half transfer flag. ISR HTIF6 LL_DMA_IsActiveFlag_HT6.
__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_TC2(DMA_TypeDef *DMAx)
Get Channel 2 transfer complete flag. ISR TCIF2 LL_DMA_IsActiveFlag_TC2.
__STATIC_INLINE uint32_t LL_DMA_GetPeriphSize(DMA_TypeDef *DMAx, uint32_t Channel)
Get Peripheral size. CCR PSIZE LL_DMA_GetPeriphSize.
__STATIC_INLINE void LL_DMA_ClearFlag_TE5(DMA_TypeDef *DMAx)
Clear Channel 5 transfer error flag. IFCR CTEIF5 LL_DMA_ClearFlag_TE5.
__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_TC7(DMA_TypeDef *DMAx)
Get Channel 7 transfer complete flag. ISR TCIF7 LL_DMA_IsActiveFlag_TC7.
__STATIC_INLINE void LL_DMA_ClearFlag_GI2(DMA_TypeDef *DMAx)
Clear Channel 2 global interrupt flag. IFCR CGIF2 LL_DMA_ClearFlag_GI2.
__STATIC_INLINE void LL_DMA_ClearFlag_TE7(DMA_TypeDef *DMAx)
Clear Channel 7 transfer error flag. IFCR CTEIF7 LL_DMA_ClearFlag_TE7.
__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_HT3(DMA_TypeDef *DMAx)
Get Channel 3 half transfer flag. ISR HTIF3 LL_DMA_IsActiveFlag_HT3.
CLEAR_BIT(hrtc->Instance->CR, RTC_CR_WUTE)
__STATIC_INLINE uint32_t LL_DMA_GetPeriphIncMode(DMA_TypeDef *DMAx, uint32_t Channel)
Get Peripheral increment mode. CCR PINC LL_DMA_GetPeriphIncMode.
__STATIC_INLINE uint32_t LL_DMA_GetM2MSrcAddress(DMA_TypeDef *DMAx, uint32_t Channel)
Get the Memory to Memory Source address.
__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_TE1(DMA_TypeDef *DMAx)
Get Channel 1 transfer error flag. ISR TEIF1 LL_DMA_IsActiveFlag_TE1.
__STATIC_INLINE void LL_DMA_SetDataTransferDirection(DMA_TypeDef *DMAx, uint32_t Channel, uint32_t Direction)
Set Data transfer direction (read from peripheral or from memory). CCR DIR LL_DMA_SetDataTransferDir...
__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_HT7(DMA_TypeDef *DMAx)
Get Channel 7 half transfer flag. ISR HTIF7 LL_DMA_IsActiveFlag_HT7.
__STATIC_INLINE uint32_t LL_DMA_GetPeriphRequest(DMA_TypeDef *DMAx, uint32_t Channel)
Get DMA request for DMA Channels on DMAMUX Channel x.
__STATIC_INLINE void LL_DMA_ClearFlag_GI1(DMA_TypeDef *DMAx)
Clear Channel 1 global interrupt flag. IFCR CGIF1 LL_DMA_ClearFlag_GI1.
__STATIC_INLINE void LL_DMA_ClearFlag_TE3(DMA_TypeDef *DMAx)
Clear Channel 3 transfer error flag. IFCR CTEIF3 LL_DMA_ClearFlag_TE3.
__STATIC_INLINE void LL_DMA_ClearFlag_HT2(DMA_TypeDef *DMAx)
Clear Channel 2 half transfer flag. IFCR CHTIF2 LL_DMA_ClearFlag_HT2.
__STATIC_INLINE void LL_DMA_SetMemoryAddress(DMA_TypeDef *DMAx, uint32_t Channel, uint32_t MemoryAddress)
Set the Memory address.
__STATIC_INLINE void LL_DMA_DisableIT_TC(DMA_TypeDef *DMAx, uint32_t Channel)
Disable Transfer complete interrupt. CCR TCIE LL_DMA_DisableIT_TC.
__STATIC_INLINE void LL_DMA_ClearFlag_TE1(DMA_TypeDef *DMAx)
Clear Channel 1 transfer error flag. IFCR CTEIF1 LL_DMA_ClearFlag_TE1.
__STATIC_INLINE void LL_DMA_SetPeriphIncMode(DMA_TypeDef *DMAx, uint32_t Channel, uint32_t PeriphOrM2MSrcIncMode)
Set Peripheral increment mode. CCR PINC LL_DMA_SetPeriphIncMode.
__STATIC_INLINE void LL_DMA_ClearFlag_TC2(DMA_TypeDef *DMAx)
Clear Channel 2 transfer complete flag. IFCR CTCIF2 LL_DMA_ClearFlag_TC2.
__STATIC_INLINE void LL_DMA_ClearFlag_GI6(DMA_TypeDef *DMAx)
Clear Channel 6 global interrupt flag. IFCR CGIF6 LL_DMA_ClearFlag_GI6.
__STATIC_INLINE uint32_t LL_DMA_GetMemorySize(DMA_TypeDef *DMAx, uint32_t Channel)
Get Memory size. CCR MSIZE LL_DMA_GetMemorySize.
__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_GI6(DMA_TypeDef *DMAx)
Get Channel 6 global interrupt flag. ISR GIF6 LL_DMA_IsActiveFlag_GI6.
__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_TC1(DMA_TypeDef *DMAx)
Get Channel 1 transfer complete flag. ISR TCIF1 LL_DMA_IsActiveFlag_TC1.
__STATIC_INLINE void LL_DMA_ClearFlag_HT7(DMA_TypeDef *DMAx)
Clear Channel 7 half transfer flag. IFCR CHTIF7 LL_DMA_ClearFlag_HT7.
__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_HT2(DMA_TypeDef *DMAx)
Get Channel 2 half transfer flag. ISR HTIF2 LL_DMA_IsActiveFlag_HT2.
__STATIC_INLINE void LL_DMA_ClearFlag_GI5(DMA_TypeDef *DMAx)
Clear Channel 5 global interrupt flag. IFCR CGIF5 LL_DMA_ClearFlag_GI5.
__STATIC_INLINE void LL_DMA_ClearFlag_HT1(DMA_TypeDef *DMAx)
Clear Channel 1 half transfer flag. IFCR CHTIF1 LL_DMA_ClearFlag_HT1.
Header file of DMAMUX LL module.
uint32_t MemoryOrM2MDstDataSize
__STATIC_INLINE void LL_DMA_ClearFlag_TC1(DMA_TypeDef *DMAx)
Clear Channel 1 transfer complete flag. IFCR CTCIF1 LL_DMA_ClearFlag_TC1.
uint32_t MemoryOrM2MDstIncMode
__STATIC_INLINE void LL_DMA_SetMemoryIncMode(DMA_TypeDef *DMAx, uint32_t Channel, uint32_t MemoryOrM2MDstIncMode)
Set Memory increment mode. CCR MINC LL_DMA_SetMemoryIncMode.
__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_TC4(DMA_TypeDef *DMAx)
Get Channel 4 transfer complete flag. ISR TCIF4 LL_DMA_IsActiveFlag_TC4.
__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_GI4(DMA_TypeDef *DMAx)
Get Channel 4 global interrupt flag. ISR GIF4 LL_DMA_IsActiveFlag_GI4.
ErrorStatus LL_DMA_DeInit(DMA_TypeDef *DMAx, uint32_t Channel)
De-initialize the DMA registers to their default reset values.
__STATIC_INLINE void LL_DMA_ClearFlag_GI7(DMA_TypeDef *DMAx)
Clear Channel 7 global interrupt flag. IFCR CGIF7 LL_DMA_ClearFlag_GI7.
__STATIC_INLINE void LL_DMA_ClearFlag_TE2(DMA_TypeDef *DMAx)
Clear Channel 2 transfer error flag. IFCR CTEIF2 LL_DMA_ClearFlag_TE2.
__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_TE3(DMA_TypeDef *DMAx)
Get Channel 3 transfer error flag. ISR TEIF3 LL_DMA_IsActiveFlag_TE3.
__STATIC_INLINE void LL_DMA_SetPeriphRequest(DMA_TypeDef *DMAx, uint32_t Channel, uint32_t Request)
Set DMA request for DMA Channels on DMAMUX Channel x.
__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_TC3(DMA_TypeDef *DMAx)
Get Channel 3 transfer complete flag. ISR TCIF3 LL_DMA_IsActiveFlag_TC3.
__STATIC_INLINE uint32_t LL_DMA_GetMemoryIncMode(DMA_TypeDef *DMAx, uint32_t Channel)
Get Memory increment mode. CCR MINC LL_DMA_GetMemoryIncMode.
__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_GI2(DMA_TypeDef *DMAx)
Get Channel 2 global interrupt flag. ISR GIF2 LL_DMA_IsActiveFlag_GI2.
__STATIC_INLINE void LL_DMA_ClearFlag_TC4(DMA_TypeDef *DMAx)
Clear Channel 4 transfer complete flag. IFCR CTCIF4 LL_DMA_ClearFlag_TC4.
__STATIC_INLINE void LL_DMA_ClearFlag_HT6(DMA_TypeDef *DMAx)
Clear Channel 6 half transfer flag. IFCR CHTIF6 LL_DMA_ClearFlag_HT6.
__STATIC_INLINE void LL_DMA_SetPeriphAddress(DMA_TypeDef *DMAx, uint32_t Channel, uint32_t PeriphAddress)
Set the Peripheral address.
__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_TE2(DMA_TypeDef *DMAx)
Get Channel 2 transfer error flag. ISR TEIF2 LL_DMA_IsActiveFlag_TE2.
__STATIC_INLINE void LL_DMA_ClearFlag_TC7(DMA_TypeDef *DMAx)
Clear Channel 7 transfer complete flag. IFCR CTCIF7 LL_DMA_ClearFlag_TC7.
ErrorStatus LL_DMA_Init(DMA_TypeDef *DMAx, uint32_t Channel, LL_DMA_InitTypeDef *DMA_InitStruct)
Initialize the DMA registers according to the specified parameters in DMA_InitStruct.
MODIFY_REG(hrtc->Instance->CR, RTC_CR_WUCKSEL,(uint32_t) WakeUpClock)
__STATIC_INLINE uint32_t LL_DMA_IsEnabledIT_HT(DMA_TypeDef *DMAx, uint32_t Channel)
Check if Half transfer Interrupt is enabled. CCR HTIE LL_DMA_IsEnabledIT_HT.
__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_TE7(DMA_TypeDef *DMAx)
Get Channel 7 transfer error flag. ISR TEIF7 LL_DMA_IsActiveFlag_TE7.
__STATIC_INLINE void LL_DMA_ClearFlag_HT5(DMA_TypeDef *DMAx)
Clear Channel 5 half transfer flag. IFCR CHTIF5 LL_DMA_ClearFlag_HT5.
void LL_DMA_StructInit(LL_DMA_InitTypeDef *DMA_InitStruct)
Set each LL_DMA_InitTypeDef field to default value.
__STATIC_INLINE uint32_t LL_DMA_IsEnabledIT_TC(DMA_TypeDef *DMAx, uint32_t Channel)
Check if Transfer complete Interrupt is enabled. CCR TCIE LL_DMA_IsEnabledIT_TC. ...
__STATIC_INLINE void LL_DMA_SetPeriphSize(DMA_TypeDef *DMAx, uint32_t Channel, uint32_t PeriphOrM2MSrcDataSize)
Set Peripheral size. CCR PSIZE LL_DMA_SetPeriphSize.
uint32_t PeriphOrM2MSrcIncMode
__STATIC_INLINE uint32_t LL_DMA_GetPeriphAddress(DMA_TypeDef *DMAx, uint32_t Channel)
Get Peripheral address.
__STATIC_INLINE uint32_t LL_DMA_GetMode(DMA_TypeDef *DMAx, uint32_t Channel)
Get DMA mode circular or normal. CCR CIRC LL_DMA_GetMode.
__STATIC_INLINE void LL_DMA_EnableChannel(DMA_TypeDef *DMAx, uint32_t Channel)
Enable DMA channel. CCR EN LL_DMA_EnableChannel.
__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_HT5(DMA_TypeDef *DMAx)
Get Channel 5 half transfer flag. ISR HTIF5 LL_DMA_IsActiveFlag_HT5.
__STATIC_INLINE void LL_DMA_ClearFlag_TC3(DMA_TypeDef *DMAx)
Clear Channel 3 transfer complete flag. IFCR CTCIF3 LL_DMA_ClearFlag_TC3.
__STATIC_INLINE void LL_DMA_DisableChannel(DMA_TypeDef *DMAx, uint32_t Channel)
Disable DMA channel. CCR EN LL_DMA_DisableChannel.
__STATIC_INLINE void LL_DMA_DisableIT_TE(DMA_TypeDef *DMAx, uint32_t Channel)
Disable Transfer error interrupt. CCR TEIE LL_DMA_DisableIT_TE.
uint32_t PeriphOrM2MSrcAddress
__STATIC_INLINE void LL_DMA_EnableIT_TC(DMA_TypeDef *DMAx, uint32_t Channel)
Enable Transfer complete interrupt. CCR TCIE LL_DMA_EnableIT_TC.
__STATIC_INLINE uint32_t LL_DMA_IsEnabledIT_TE(DMA_TypeDef *DMAx, uint32_t Channel)
Check if Transfer error Interrupt is enabled. CCR TEIE LL_DMA_IsEnabledIT_TE.
static const uint8_t CHANNEL_OFFSET_TAB[]