19 #if defined(USE_FULL_LL_DRIVER) 24 #ifdef USE_FULL_ASSERT 25 #include "stm32_assert.h" 27 #define assert_param(expr) ((void)0U) 34 #if defined (DMA1) || defined (DMA2) 47 #define IS_LL_DMA_DIRECTION(__VALUE__) (((__VALUE__) == LL_DMA_DIRECTION_PERIPH_TO_MEMORY) || \ 48 ((__VALUE__) == LL_DMA_DIRECTION_MEMORY_TO_PERIPH) || \ 49 ((__VALUE__) == LL_DMA_DIRECTION_MEMORY_TO_MEMORY)) 51 #define IS_LL_DMA_MODE(__VALUE__) (((__VALUE__) == LL_DMA_MODE_NORMAL) || \ 52 ((__VALUE__) == LL_DMA_MODE_CIRCULAR)) 54 #define IS_LL_DMA_PERIPHINCMODE(__VALUE__) (((__VALUE__) == LL_DMA_PERIPH_INCREMENT) || \ 55 ((__VALUE__) == LL_DMA_PERIPH_NOINCREMENT)) 57 #define IS_LL_DMA_MEMORYINCMODE(__VALUE__) (((__VALUE__) == LL_DMA_MEMORY_INCREMENT) || \ 58 ((__VALUE__) == LL_DMA_MEMORY_NOINCREMENT)) 60 #define IS_LL_DMA_PERIPHDATASIZE(__VALUE__) (((__VALUE__) == LL_DMA_PDATAALIGN_BYTE) || \ 61 ((__VALUE__) == LL_DMA_PDATAALIGN_HALFWORD) || \ 62 ((__VALUE__) == LL_DMA_PDATAALIGN_WORD)) 64 #define IS_LL_DMA_MEMORYDATASIZE(__VALUE__) (((__VALUE__) == LL_DMA_MDATAALIGN_BYTE) || \ 65 ((__VALUE__) == LL_DMA_MDATAALIGN_HALFWORD) || \ 66 ((__VALUE__) == LL_DMA_MDATAALIGN_WORD)) 68 #define IS_LL_DMA_NBDATA(__VALUE__) ((__VALUE__) <= 0x0000FFFFU) 71 #define IS_LL_DMA_PERIPHREQUEST(__VALUE__) ((__VALUE__) <= 93U) 73 #define IS_LL_DMA_PERIPHREQUEST(__VALUE__) (((__VALUE__) == LL_DMA_REQUEST_0) || \ 74 ((__VALUE__) == LL_DMA_REQUEST_1) || \ 75 ((__VALUE__) == LL_DMA_REQUEST_2) || \ 76 ((__VALUE__) == LL_DMA_REQUEST_3) || \ 77 ((__VALUE__) == LL_DMA_REQUEST_4) || \ 78 ((__VALUE__) == LL_DMA_REQUEST_5) || \ 79 ((__VALUE__) == LL_DMA_REQUEST_6) || \ 80 ((__VALUE__) == LL_DMA_REQUEST_7)) 83 #define IS_LL_DMA_PRIORITY(__VALUE__) (((__VALUE__) == LL_DMA_PRIORITY_LOW) || \ 84 ((__VALUE__) == LL_DMA_PRIORITY_MEDIUM) || \ 85 ((__VALUE__) == LL_DMA_PRIORITY_HIGH) || \ 86 ((__VALUE__) == LL_DMA_PRIORITY_VERYHIGH)) 89 #if defined (DMA2_Channel6) && defined (DMA2_Channel7) 90 #define IS_LL_DMA_ALL_CHANNEL_INSTANCE(INSTANCE, CHANNEL) ((((INSTANCE) == DMA1) && \ 91 (((CHANNEL) == LL_DMA_CHANNEL_1) || \ 92 ((CHANNEL) == LL_DMA_CHANNEL_2) || \ 93 ((CHANNEL) == LL_DMA_CHANNEL_3) || \ 94 ((CHANNEL) == LL_DMA_CHANNEL_4) || \ 95 ((CHANNEL) == LL_DMA_CHANNEL_5) || \ 96 ((CHANNEL) == LL_DMA_CHANNEL_6) || \ 97 ((CHANNEL) == LL_DMA_CHANNEL_7))) || \ 98 (((INSTANCE) == DMA2) && \ 99 (((CHANNEL) == LL_DMA_CHANNEL_1) || \ 100 ((CHANNEL) == LL_DMA_CHANNEL_2) || \ 101 ((CHANNEL) == LL_DMA_CHANNEL_3) || \ 102 ((CHANNEL) == LL_DMA_CHANNEL_4) || \ 103 ((CHANNEL) == LL_DMA_CHANNEL_5) || \ 104 ((CHANNEL) == LL_DMA_CHANNEL_6) || \ 105 ((CHANNEL) == LL_DMA_CHANNEL_7)))) 107 #define IS_LL_DMA_ALL_CHANNEL_INSTANCE(INSTANCE, CHANNEL) ((((INSTANCE) == DMA1) && \ 108 (((CHANNEL) == LL_DMA_CHANNEL_1) || \ 109 ((CHANNEL) == LL_DMA_CHANNEL_2) || \ 110 ((CHANNEL) == LL_DMA_CHANNEL_3) || \ 111 ((CHANNEL) == LL_DMA_CHANNEL_4) || \ 112 ((CHANNEL) == LL_DMA_CHANNEL_5) || \ 113 ((CHANNEL) == LL_DMA_CHANNEL_6) || \ 114 ((CHANNEL) == LL_DMA_CHANNEL_7))) || \ 115 (((INSTANCE) == DMA2) && \ 116 (((CHANNEL) == LL_DMA_CHANNEL_1) || \ 117 ((CHANNEL) == LL_DMA_CHANNEL_2) || \ 118 ((CHANNEL) == LL_DMA_CHANNEL_3) || \ 119 ((CHANNEL) == LL_DMA_CHANNEL_4) || \ 120 ((CHANNEL) == LL_DMA_CHANNEL_5)))) 123 #define IS_LL_DMA_ALL_CHANNEL_INSTANCE(INSTANCE, CHANNEL) ((((INSTANCE) == DMA1) && \ 124 (((CHANNEL) == LL_DMA_CHANNEL_1)|| \ 125 ((CHANNEL) == LL_DMA_CHANNEL_2) || \ 126 ((CHANNEL) == LL_DMA_CHANNEL_3) || \ 127 ((CHANNEL) == LL_DMA_CHANNEL_4) || \ 128 ((CHANNEL) == LL_DMA_CHANNEL_5) || \ 129 ((CHANNEL) == LL_DMA_CHANNEL_6) || \ 130 ((CHANNEL) == LL_DMA_CHANNEL_7)))) 165 ErrorStatus status = SUCCESS;
166 DMA_Channel_TypeDef *tmp;
169 assert_param(IS_LL_DMA_ALL_CHANNEL_INSTANCE(DMAx, Channel) || (Channel == LL_DMA_CHANNEL_ALL));
171 if (Channel == LL_DMA_CHANNEL_ALL)
182 else if (DMAx == DMA2)
198 tmp = (DMA_Channel_TypeDef *)(__LL_DMA_GET_CHANNEL_INSTANCE(DMAx, Channel));
204 WRITE_REG(tmp->CCR, 0U);
207 WRITE_REG(tmp->CNDTR, 0U);
210 WRITE_REG(tmp->CPAR, 0U);
213 WRITE_REG(tmp->CMAR, 0U);
223 if (Channel == LL_DMA_CHANNEL_1)
228 else if (Channel == LL_DMA_CHANNEL_2)
233 else if (Channel == LL_DMA_CHANNEL_3)
238 else if (Channel == LL_DMA_CHANNEL_4)
243 else if (Channel == LL_DMA_CHANNEL_5)
249 else if (Channel == LL_DMA_CHANNEL_6)
254 else if (Channel == LL_DMA_CHANNEL_7)
290 assert_param(IS_LL_DMA_ALL_CHANNEL_INSTANCE(DMAx, Channel));
316 DMA_InitStruct->
Mode | \
368 DMA_InitStruct->
Direction = LL_DMA_DIRECTION_PERIPH_TO_MEMORY;
369 DMA_InitStruct->
Mode = LL_DMA_MODE_NORMAL;
374 DMA_InitStruct->
NbData = 0x00000000U;
380 DMA_InitStruct->
Priority = LL_DMA_PRIORITY_LOW;
uint32_t MemoryOrM2MDstAddress
__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_AHB1_GRP1_ForceReset(uint32_t Periphs)
Force AHB1 peripherals reset. AHB1RSTR DMA1RST LL_AHB1_GRP1_ForceReset AHB1RSTR DMA2RST LL_AHB1_GRP...
__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 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 void LL_DMA_ClearFlag_GI2(DMA_TypeDef *DMAx)
Clear Channel 2 global interrupt flag. IFCR CGIF2 LL_DMA_ClearFlag_GI2.
CLEAR_BIT(hrtc->Instance->CR, RTC_CR_WUTE)
__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_SetMemoryAddress(DMA_TypeDef *DMAx, uint32_t Channel, uint32_t MemoryAddress)
Set the Memory address.
__STATIC_INLINE void LL_DMA_ClearFlag_GI6(DMA_TypeDef *DMAx)
Clear Channel 6 global interrupt flag. IFCR CGIF6 LL_DMA_ClearFlag_GI6.
__STATIC_INLINE void LL_DMA_ClearFlag_GI5(DMA_TypeDef *DMAx)
Clear Channel 5 global interrupt flag. IFCR CGIF5 LL_DMA_ClearFlag_GI5.
uint32_t MemoryOrM2MDstDataSize
uint32_t MemoryOrM2MDstIncMode
Header file of BUS LL module.
ErrorStatus LL_DMA_DeInit(DMA_TypeDef *DMAx, uint32_t Channel)
De-initialize the DMA registers to their default reset values.
__STATIC_INLINE void LL_AHB1_GRP1_ReleaseReset(uint32_t Periphs)
Release AHB1 peripherals reset. AHB1RSTR DMA1RST LL_AHB1_GRP1_ReleaseReset AHB1RSTR DMA2RST LL_AHB1...
__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_SetPeriphRequest(DMA_TypeDef *DMAx, uint32_t Channel, uint32_t Request)
Set DMA request for DMA Channels on DMAMUX Channel x.
__STATIC_INLINE void LL_DMA_SetPeriphAddress(DMA_TypeDef *DMAx, uint32_t Channel, uint32_t PeriphAddress)
Set the Peripheral address.
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.
void LL_DMA_StructInit(LL_DMA_InitTypeDef *DMA_InitStruct)
Set each LL_DMA_InitTypeDef field to default value.
uint32_t PeriphOrM2MSrcIncMode
Header file of DMA LL module.
assert_param(IS_RTC_WAKEUP_CLOCK(WakeUpClock))
uint32_t PeriphOrM2MSrcAddress