1 /**
2 ******************************************************************************
3 * @file stm32wbxx_ll_dmamux.h
4 * @author MCD Application Team
5 * @brief Header file of DMAMUX LL module.
6 ******************************************************************************
7 * @attention
8 *
9 * <h2><center>© Copyright (c) 2019 STMicroelectronics.
10 * All rights reserved.</center></h2>
11 *
12 * This software component is licensed by ST under BSD 3-Clause license,
13 * the "License"; You may not use this file except in compliance with the
14 * License. You may obtain a copy of the License at:
15 * opensource.org/licenses/BSD-3-Clause
16 *
17 ******************************************************************************
18 */
19
20 /* Define to prevent recursive inclusion -------------------------------------*/
21 #ifndef STM32WBxx_LL_DMAMUX_H
22 #define STM32WBxx_LL_DMAMUX_H
23
24 #ifdef __cplusplus
25 extern "C" {
26 #endif
27
28 /* Includes ------------------------------------------------------------------*/
29 #include "stm32wbxx.h"
30
31 /** @addtogroup STM32WBxx_LL_Driver
32 * @{
33 */
34
35 #if defined (DMAMUX1)
36
37 /** @defgroup DMAMUX_LL DMAMUX
38 * @{
39 */
40
41 /* Private types -------------------------------------------------------------*/
42 /* Private variables ---------------------------------------------------------*/
43 /* Private constants ---------------------------------------------------------*/
44 /** @defgroup DMAMUX_LL_Private_Constants DMAMUX Private Constants
45 * @{
46 */
47 /* Define used to get DMAMUX CCR register size */
48 #define DMAMUX_CCR_SIZE 0x00000004UL
49
50 /* Define used to get DMAMUX RGCR register size */
51 #define DMAMUX_RGCR_SIZE 0x00000004UL
52 /**
53 * @}
54 */
55
56 /* Private macros ------------------------------------------------------------*/
57 /* Exported types ------------------------------------------------------------*/
58 /* Exported constants --------------------------------------------------------*/
59 /** @defgroup DMAMUX_LL_Exported_Constants DMAMUX Exported Constants
60 * @{
61 */
62 /** @defgroup DMAMUX_LL_EC_CLEAR_FLAG Clear Flags Defines
63 * @brief Flags defines which can be used with LL_DMAMUX_WriteReg function
64 * @{
65 */
66 #define LL_DMAMUX_CFR_CSOF0 DMAMUX_CFR_CSOF0 /*!< Synchronization Event Overrun Flag Channel 0 */
67 #define LL_DMAMUX_CFR_CSOF1 DMAMUX_CFR_CSOF1 /*!< Synchronization Event Overrun Flag Channel 1 */
68 #define LL_DMAMUX_CFR_CSOF2 DMAMUX_CFR_CSOF2 /*!< Synchronization Event Overrun Flag Channel 2 */
69 #define LL_DMAMUX_CFR_CSOF3 DMAMUX_CFR_CSOF3 /*!< Synchronization Event Overrun Flag Channel 3 */
70 #define LL_DMAMUX_CFR_CSOF4 DMAMUX_CFR_CSOF4 /*!< Synchronization Event Overrun Flag Channel 4 */
71 #define LL_DMAMUX_CFR_CSOF5 DMAMUX_CFR_CSOF5 /*!< Synchronization Event Overrun Flag Channel 5 */
72 #define LL_DMAMUX_CFR_CSOF6 DMAMUX_CFR_CSOF6 /*!< Synchronization Event Overrun Flag Channel 6 */
73 #if defined(DMA2)
74 #define LL_DMAMUX_CFR_CSOF7 DMAMUX_CFR_CSOF7 /*!< Synchronization Event Overrun Flag Channel 7 */
75 #define LL_DMAMUX_CFR_CSOF8 DMAMUX_CFR_CSOF8 /*!< Synchronization Event Overrun Flag Channel 8 */
76 #define LL_DMAMUX_CFR_CSOF9 DMAMUX_CFR_CSOF9 /*!< Synchronization Event Overrun Flag Channel 9 */
77 #define LL_DMAMUX_CFR_CSOF10 DMAMUX_CFR_CSOF10 /*!< Synchronization Event Overrun Flag Channel 10 */
78 #define LL_DMAMUX_CFR_CSOF11 DMAMUX_CFR_CSOF11 /*!< Synchronization Event Overrun Flag Channel 11 */
79 #define LL_DMAMUX_CFR_CSOF12 DMAMUX_CFR_CSOF12 /*!< Synchronization Event Overrun Flag Channel 12 */
80 #define LL_DMAMUX_CFR_CSOF13 DMAMUX_CFR_CSOF13 /*!< Synchronization Event Overrun Flag Channel 13 */
81 #endif
82 #define LL_DMAMUX_RGCFR_RGCOF0 DMAMUX_RGCFR_COF0 /*!< Request Generator 0 Trigger Event Overrun Flag */
83 #define LL_DMAMUX_RGCFR_RGCOF1 DMAMUX_RGCFR_COF1 /*!< Request Generator 1 Trigger Event Overrun Flag */
84 #define LL_DMAMUX_RGCFR_RGCOF2 DMAMUX_RGCFR_COF2 /*!< Request Generator 2 Trigger Event Overrun Flag */
85 #define LL_DMAMUX_RGCFR_RGCOF3 DMAMUX_RGCFR_COF3 /*!< Request Generator 3 Trigger Event Overrun Flag */
86 /**
87 * @}
88 */
89
90 /** @defgroup DMAMUX_LL_EC_GET_FLAG Get Flags Defines
91 * @brief Flags defines which can be used with LL_DMAMUX_ReadReg function
92 * @{
93 */
94 #define LL_DMAMUX_CSR_SOF0 DMAMUX_CSR_SOF0 /*!< Synchronization Event Overrun Flag Channel 0 */
95 #define LL_DMAMUX_CSR_SOF1 DMAMUX_CSR_SOF1 /*!< Synchronization Event Overrun Flag Channel 1 */
96 #define LL_DMAMUX_CSR_SOF2 DMAMUX_CSR_SOF2 /*!< Synchronization Event Overrun Flag Channel 2 */
97 #define LL_DMAMUX_CSR_SOF3 DMAMUX_CSR_SOF3 /*!< Synchronization Event Overrun Flag Channel 3 */
98 #define LL_DMAMUX_CSR_SOF4 DMAMUX_CSR_SOF4 /*!< Synchronization Event Overrun Flag Channel 4 */
99 #define LL_DMAMUX_CSR_SOF5 DMAMUX_CSR_SOF5 /*!< Synchronization Event Overrun Flag Channel 5 */
100 #define LL_DMAMUX_CSR_SOF6 DMAMUX_CSR_SOF6 /*!< Synchronization Event Overrun Flag Channel 6 */
101 #if defined(DMA2)
102 #define LL_DMAMUX_CSR_SOF7 DMAMUX_CSR_SOF7 /*!< Synchronization Event Overrun Flag Channel 7 */
103 #define LL_DMAMUX_CSR_SOF8 DMAMUX_CSR_SOF8 /*!< Synchronization Event Overrun Flag Channel 8 */
104 #define LL_DMAMUX_CSR_SOF9 DMAMUX_CSR_SOF9 /*!< Synchronization Event Overrun Flag Channel 9 */
105 #define LL_DMAMUX_CSR_SOF10 DMAMUX_CSR_SOF10 /*!< Synchronization Event Overrun Flag Channel 10 */
106 #define LL_DMAMUX_CSR_SOF11 DMAMUX_CSR_SOF11 /*!< Synchronization Event Overrun Flag Channel 11 */
107 #define LL_DMAMUX_CSR_SOF12 DMAMUX_CSR_SOF12 /*!< Synchronization Event Overrun Flag Channel 12 */
108 #define LL_DMAMUX_CSR_SOF13 DMAMUX_CSR_SOF13 /*!< Synchronization Event Overrun Flag Channel 13 */
109 #endif
110 #define LL_DMAMUX_RGSR_RGOF0 DMAMUX_RGSR_OF0 /*!< Request Generator 0 Trigger Event Overrun Flag */
111 #define LL_DMAMUX_RGSR_RGOF1 DMAMUX_RGSR_OF1 /*!< Request Generator 1 Trigger Event Overrun Flag */
112 #define LL_DMAMUX_RGSR_RGOF2 DMAMUX_RGSR_OF2 /*!< Request Generator 2 Trigger Event Overrun Flag */
113 #define LL_DMAMUX_RGSR_RGOF3 DMAMUX_RGSR_OF3 /*!< Request Generator 3 Trigger Event Overrun Flag */
114 /**
115 * @}
116 */
117
118 /** @defgroup DMAMUX_LL_EC_IT IT Defines
119 * @brief IT defines which can be used with LL_DMA_ReadReg and LL_DMAMUX_WriteReg functions
120 * @{
121 */
122 #define LL_DMAMUX_CCR_SOIE DMAMUX_CxCR_SOIE /*!< Synchronization Event Overrun Interrupt */
123 #define LL_DMAMUX_RGCR_RGOIE DMAMUX_RGxCR_OIE /*!< Request Generation Trigger Event Overrun Interrupt */
124 /**
125 * @}
126 */
127
128 /** @defgroup DMAMUX_LL_EC_REQUEST Transfer request
129 * @{
130 */
131 #define LL_DMAMUX_REQ_MEM2MEM 0x00000000U /*!< memory to memory transfer */
132 #define LL_DMAMUX_REQ_GENERATOR0 0x00000001U /*!< DMAMUX request generator 0 */
133 #define LL_DMAMUX_REQ_GENERATOR1 0x00000002U /*!< DMAMUX request generator 1 */
134 #define LL_DMAMUX_REQ_GENERATOR2 0x00000003U /*!< DMAMUX request generator 2 */
135 #define LL_DMAMUX_REQ_GENERATOR3 0x00000004U /*!< DMAMUX request generator 3 */
136 #define LL_DMAMUX_REQ_ADC1 0x00000005U /*!< DMAMUX ADC1 request */
137 #define LL_DMAMUX_REQ_SPI1_RX 0x00000006U /*!< DMAMUX SPI1 RX request */
138 #define LL_DMAMUX_REQ_SPI1_TX 0x00000007U /*!< DMAMUX SPI1 TX request */
139 #if defined(SPI2)
140 #define LL_DMAMUX_REQ_SPI2_RX 0x00000008U /*!< DMAMUX SPI2 RX request */
141 #define LL_DMAMUX_REQ_SPI2_TX 0x00000009U /*!< DMAMUX SPI2 TX request */
142 #endif
143 #define LL_DMAMUX_REQ_I2C1_RX 0x0000000AU /*!< DMAMUX I2C1 RX request */
144 #define LL_DMAMUX_REQ_I2C1_TX 0x0000000BU /*!< DMAMUX I2C1 TX request */
145 #if defined(I2C3)
146 #define LL_DMAMUX_REQ_I2C3_RX 0x0000000CU /*!< DMAMUX I2C3 RX request */
147 #define LL_DMAMUX_REQ_I2C3_TX 0x0000000DU /*!< DMAMUX I2C3 TX request */
148 #endif
149 #define LL_DMAMUX_REQ_USART1_RX 0x0000000EU /*!< DMAMUX USART1 RX request */
150 #define LL_DMAMUX_REQ_USART1_TX 0x0000000FU /*!< DMAMUX USART1 TX request */
151 #if defined(LPUART1)
152 #define LL_DMAMUX_REQ_LPUART1_RX 0x00000010U /*!< DMAMUX LPUART1 RX request */
153 #define LL_DMAMUX_REQ_LPUART1_TX 0x00000011U /*!< DMAMUX LPUART1 TX request */
154 #endif
155 #if defined(SAI1)
156 #define LL_DMAMUX_REQ_SAI1_A 0x00000012U /*!< DMAMUX SAI1 A request */
157 #define LL_DMAMUX_REQ_SAI1_B 0x00000013U /*!< DMAMUX SAI1 B request */
158 #endif
159 #if defined(QUADSPI)
160 #define LL_DMAMUX_REQ_QUADSPI 0x00000014U /*!< DMAMUX QUADSPI request */
161 #endif
162 #define LL_DMAMUX_REQ_TIM1_CH1 0x00000015U /*!< DMAMUX TIM1 CH1 request */
163 #define LL_DMAMUX_REQ_TIM1_CH2 0x00000016U /*!< DMAMUX TIM1 CH2 request */
164 #define LL_DMAMUX_REQ_TIM1_CH3 0x00000017U /*!< DMAMUX TIM1 CH3 request */
165 #define LL_DMAMUX_REQ_TIM1_CH4 0x00000018U /*!< DMAMUX TIM1 CH4 request */
166 #define LL_DMAMUX_REQ_TIM1_UP 0x00000019U /*!< DMAMUX TIM1 UP request */
167 #define LL_DMAMUX_REQ_TIM1_TRIG 0x0000001AU /*!< DMAMUX TIM1 TRIG request */
168 #define LL_DMAMUX_REQ_TIM1_COM 0x0000001BU /*!< DMAMUX TIM1 COM request */
169 #define LL_DMAMUX_REQ_TIM2_CH1 0x0000001CU /*!< DMAMUX TIM2 CH1 request */
170 #define LL_DMAMUX_REQ_TIM2_CH2 0x0000001DU /*!< DMAMUX TIM2 CH2 request */
171 #define LL_DMAMUX_REQ_TIM2_CH3 0x0000001EU /*!< DMAMUX TIM2 CH3 request */
172 #define LL_DMAMUX_REQ_TIM2_CH4 0x0000001FU /*!< DMAMUX TIM2 CH4 request */
173 #define LL_DMAMUX_REQ_TIM2_UP 0x00000020U /*!< DMAMUX TIM2 UP request */
174 #define LL_DMAMUX_REQ_TIM16_CH1 0x00000021U /*!< DMAMUX TIM16 CH1 request */
175 #define LL_DMAMUX_REQ_TIM16_UP 0x00000022U /*!< DMAMUX TIM16 UP request */
176 #define LL_DMAMUX_REQ_TIM17_CH1 0x00000023U /*!< DMAMUX TIM17 CH1 request */
177 #define LL_DMAMUX_REQ_TIM17_UP 0x00000024U /*!< DMAMUX TIM17 UP request */
178 #if defined(AES1)
179 #define LL_DMAMUX_REQ_AES1_IN 0x00000025U /*!< DMAMUX AES1_IN request */
180 #define LL_DMAMUX_REQ_AES1_OUT 0x00000026U /*!< DMAMUX AES1_OUT request */
181 #endif
182 #define LL_DMAMUX_REQ_AES2_IN 0x00000027U /*!< DMAMUX AES2_IN request */
183 #define LL_DMAMUX_REQ_AES2_OUT 0x00000028U /*!< DMAMUX AES2_OUT request */
184 /**
185 * @}
186 */
187
188 /** @defgroup DMAMUX_LL_EC_CHANNEL DMAMUX Channel
189 * @{
190 */
191 #define LL_DMAMUX_CHANNEL_0 0x00000000U /*!< DMAMUX Channel 0 connected to DMA1 Channel 1 */
192 #define LL_DMAMUX_CHANNEL_1 0x00000001U /*!< DMAMUX Channel 1 connected to DMA1 Channel 2 */
193 #define LL_DMAMUX_CHANNEL_2 0x00000002U /*!< DMAMUX Channel 2 connected to DMA1 Channel 3 */
194 #define LL_DMAMUX_CHANNEL_3 0x00000003U /*!< DMAMUX Channel 3 connected to DMA1 Channel 4 */
195 #define LL_DMAMUX_CHANNEL_4 0x00000004U /*!< DMAMUX Channel 4 connected to DMA1 Channel 5 */
196 #define LL_DMAMUX_CHANNEL_5 0x00000005U /*!< DMAMUX Channel 5 connected to DMA1 Channel 6 */
197 #define LL_DMAMUX_CHANNEL_6 0x00000006U /*!< DMAMUX Channel 6 connected to DMA1 Channel 7 */
198 #if defined(DMA2)
199 #define LL_DMAMUX_CHANNEL_7 0x00000007U /*!< DMAMUX Channel 7 connected to DMA2 Channel 1 */
200 #define LL_DMAMUX_CHANNEL_8 0x00000008U /*!< DMAMUX Channel 8 connected to DMA2 Channel 2 */
201 #define LL_DMAMUX_CHANNEL_9 0x00000009U /*!< DMAMUX Channel 9 connected to DMA2 Channel 3 */
202 #define LL_DMAMUX_CHANNEL_10 0x0000000AU /*!< DMAMUX Channel 10 connected to DMA2 Channel 4 */
203 #define LL_DMAMUX_CHANNEL_11 0x0000000BU /*!< DMAMUX Channel 11 connected to DMA2 Channel 5 */
204 #define LL_DMAMUX_CHANNEL_12 0x0000000CU /*!< DMAMUX Channel 12 connected to DMA2 Channel 6 */
205 #define LL_DMAMUX_CHANNEL_13 0x0000000DU /*!< DMAMUX Channel 13 connected to DMA2 Channel 7 */
206 #endif
207 /**
208 * @}
209 */
210
211 /** @defgroup DMAMUX_LL_EC_SYNC_NO Synchronization Signal Polarity
212 * @{
213 */
214 #define LL_DMAMUX_SYNC_NO_EVENT 0x00000000U /*!< All requests are blocked */
215 #define LL_DMAMUX_SYNC_POL_RISING DMAMUX_CxCR_SPOL_0 /*!< Synchronization on event on rising edge */
216 #define LL_DMAMUX_SYNC_POL_FALLING DMAMUX_CxCR_SPOL_1 /*!< Synchronization on event on falling edge */
217 #define LL_DMAMUX_SYNC_POL_RISING_FALLING (DMAMUX_CxCR_SPOL_0 | DMAMUX_CxCR_SPOL_1) /*!< Synchronization on event on rising and falling edge */
218 /**
219 * @}
220 */
221
222 /** @defgroup DMAMUX_LL_EC_SYNC_EVT Synchronization Signal Event
223 * @{
224 */
225 #define LL_DMAMUX_SYNC_EXTI_LINE0 0x00000000U /*!< Synchronization signal from EXTI Line0 */
226 #define LL_DMAMUX_SYNC_EXTI_LINE1 DMAMUX_CxCR_SYNC_ID_0 /*!< Synchronization signal from EXTI Line1 */
227 #define LL_DMAMUX_SYNC_EXTI_LINE2 DMAMUX_CxCR_SYNC_ID_1 /*!< Synchronization signal from EXTI Line2 */
228 #define LL_DMAMUX_SYNC_EXTI_LINE3 (DMAMUX_CxCR_SYNC_ID_1 | DMAMUX_CxCR_SYNC_ID_0) /*!< Synchronization signal from EXTI Line3 */
229 #define LL_DMAMUX_SYNC_EXTI_LINE4 DMAMUX_CxCR_SYNC_ID_2 /*!< Synchronization signal from EXTI Line4 */
230 #define LL_DMAMUX_SYNC_EXTI_LINE5 (DMAMUX_CxCR_SYNC_ID_2 | DMAMUX_CxCR_SYNC_ID_0) /*!< Synchronization signal from EXTI Line5 */
231 #define LL_DMAMUX_SYNC_EXTI_LINE6 (DMAMUX_CxCR_SYNC_ID_2 | DMAMUX_CxCR_SYNC_ID_1) /*!< Synchronization signal from EXTI Line6 */
232 #define LL_DMAMUX_SYNC_EXTI_LINE7 (DMAMUX_CxCR_SYNC_ID_2 | DMAMUX_CxCR_SYNC_ID_1 | DMAMUX_CxCR_SYNC_ID_0) /*!< Synchronization signal from EXTI Line7 */
233 #define LL_DMAMUX_SYNC_EXTI_LINE8 DMAMUX_CxCR_SYNC_ID_3 /*!< Synchronization signal from EXTI Line8 */
234 #define LL_DMAMUX_SYNC_EXTI_LINE9 (DMAMUX_CxCR_SYNC_ID_3 | DMAMUX_CxCR_SYNC_ID_0) /*!< Synchronization signal from EXTI Line9 */
235 #define LL_DMAMUX_SYNC_EXTI_LINE10 (DMAMUX_CxCR_SYNC_ID_3 | DMAMUX_CxCR_SYNC_ID_1) /*!< Synchronization signal from EXTI Line10 */
236 #define LL_DMAMUX_SYNC_EXTI_LINE11 (DMAMUX_CxCR_SYNC_ID_3 | DMAMUX_CxCR_SYNC_ID_1 | DMAMUX_CxCR_SYNC_ID_0) /*!< Synchronization signal from EXTI Line11 */
237 #define LL_DMAMUX_SYNC_EXTI_LINE12 (DMAMUX_CxCR_SYNC_ID_3 | DMAMUX_CxCR_SYNC_ID_2) /*!< Synchronization signal from EXTI Line12 */
238 #define LL_DMAMUX_SYNC_EXTI_LINE13 (DMAMUX_CxCR_SYNC_ID_3 | DMAMUX_CxCR_SYNC_ID_2 | DMAMUX_CxCR_SYNC_ID_0) /*!< Synchronization signal from EXTI Line13 */
239 #define LL_DMAMUX_SYNC_EXTI_LINE14 (DMAMUX_CxCR_SYNC_ID_3 | DMAMUX_CxCR_SYNC_ID_2 | DMAMUX_CxCR_SYNC_ID_1) /*!< Synchronization signal from EXTI Line14 */
240 #define LL_DMAMUX_SYNC_EXTI_LINE15 (DMAMUX_CxCR_SYNC_ID_3 | DMAMUX_CxCR_SYNC_ID_2 | DMAMUX_CxCR_SYNC_ID_1 | DMAMUX_CxCR_SYNC_ID_0) /*!< Synchronization signal from EXTI Line15 */
241 #define LL_DMAMUX_SYNC_DMAMUX_CH0 DMAMUX_CxCR_SYNC_ID_4 /*!< Synchronization signal from DMAMUX channel0 Event */
242 #define LL_DMAMUX_SYNC_DMAMUX_CH1 (DMAMUX_CxCR_SYNC_ID_4 | DMAMUX_CxCR_SYNC_ID_0) /*!< Synchronization signal from DMAMUX channel1 Event */
243 #define LL_DMAMUX_SYNC_LPTIM1_OUT (DMAMUX_CxCR_SYNC_ID_4 | DMAMUX_CxCR_SYNC_ID_1) /*!< Synchronization signal from LPTIM1 Ouput */
244 #define LL_DMAMUX_SYNC_LPTIM2_OUT (DMAMUX_CxCR_SYNC_ID_4 | DMAMUX_CxCR_SYNC_ID_1 | DMAMUX_CxCR_SYNC_ID_0) /*!< Synchronization signal from LPTIM2 Ouput */
245 /**
246 * @}
247 */
248
249 /** @defgroup DMAMUX_LL_EC_REQUEST_GENERATOR Request Generator Channel
250 * @{
251 */
252 #define LL_DMAMUX_REQ_GEN_0 0x00000000U
253 #define LL_DMAMUX_REQ_GEN_1 0x00000001U
254 #define LL_DMAMUX_REQ_GEN_2 0x00000002U
255 #define LL_DMAMUX_REQ_GEN_3 0x00000003U
256 /**
257 * @}
258 */
259
260 /** @defgroup DMAMUX_LL_EC_REQUEST_GEN_POLARITY External Request Signal Generation Polarity
261 * @{
262 */
263 #define LL_DMAMUX_REQ_GEN_NO_EVENT 0x00000000U /*!< No external DMA request generation */
264 #define LL_DMAMUX_REQ_GEN_POL_RISING DMAMUX_RGxCR_GPOL_0 /*!< External DMA request generation on event on rising edge */
265 #define LL_DMAMUX_REQ_GEN_POL_FALLING DMAMUX_RGxCR_GPOL_1 /*!< External DMA request generation on event on falling edge */
266 #define LL_DMAMUX_REQ_GEN_POL_RISING_FALLING (DMAMUX_RGxCR_GPOL_0 | DMAMUX_RGxCR_GPOL_1) /*!< External DMA request generation on rising and falling edge */
267 /**
268 * @}
269 */
270
271 /** @defgroup DMAMUX_LL_EC_REQUEST_GEN External Request Signal Generation
272 * @{
273 */
274 #define LL_DMAMUX_REQ_GEN_EXTI_LINE0 0x00000000U /*!< Request signal generation from EXTI Line0 */
275 #define LL_DMAMUX_REQ_GEN_EXTI_LINE1 DMAMUX_RGxCR_SIG_ID_0 /*!< Request signal generation from EXTI Line1 */
276 #define LL_DMAMUX_REQ_GEN_EXTI_LINE2 DMAMUX_RGxCR_SIG_ID_1 /*!< Request signal generation from EXTI Line2 */
277 #define LL_DMAMUX_REQ_GEN_EXTI_LINE3 (DMAMUX_RGxCR_SIG_ID_1 |DMAMUX_RGxCR_SIG_ID_0) /*!< Request signal generation from EXTI Line3 */
278 #define LL_DMAMUX_REQ_GEN_EXTI_LINE4 DMAMUX_RGxCR_SIG_ID_2 /*!< Request signal generation from EXTI Line4 */
279 #define LL_DMAMUX_REQ_GEN_EXTI_LINE5 (DMAMUX_RGxCR_SIG_ID_2 | DMAMUX_RGxCR_SIG_ID_0) /*!< Request signal generation from EXTI Line5 */
280 #define LL_DMAMUX_REQ_GEN_EXTI_LINE6 (DMAMUX_RGxCR_SIG_ID_2 | DMAMUX_RGxCR_SIG_ID_1) /*!< Request signal generation from EXTI Line6 */
281 #define LL_DMAMUX_REQ_GEN_EXTI_LINE7 (DMAMUX_RGxCR_SIG_ID_2 | DMAMUX_RGxCR_SIG_ID_1 | DMAMUX_RGxCR_SIG_ID_0) /*!< Request signal generation from EXTI Line7 */
282 #define LL_DMAMUX_REQ_GEN_EXTI_LINE8 DMAMUX_RGxCR_SIG_ID_3 /*!< Request signal generation from EXTI Line8 */
283 #define LL_DMAMUX_REQ_GEN_EXTI_LINE9 (DMAMUX_RGxCR_SIG_ID_3 | DMAMUX_RGxCR_SIG_ID_0) /*!< Request signal generation from EXTI Line9 */
284 #define LL_DMAMUX_REQ_GEN_EXTI_LINE10 (DMAMUX_RGxCR_SIG_ID_3 | DMAMUX_RGxCR_SIG_ID_1) /*!< Request signal generation from EXTI Line10 */
285 #define LL_DMAMUX_REQ_GEN_EXTI_LINE11 (DMAMUX_RGxCR_SIG_ID_3 | DMAMUX_RGxCR_SIG_ID_1 | DMAMUX_RGxCR_SIG_ID_0) /*!< Request signal generation from EXTI Line11 */
286 #define LL_DMAMUX_REQ_GEN_EXTI_LINE12 (DMAMUX_RGxCR_SIG_ID_3 | DMAMUX_RGxCR_SIG_ID_2) /*!< Request signal generation from EXTI Line12 */
287 #define LL_DMAMUX_REQ_GEN_EXTI_LINE13 (DMAMUX_RGxCR_SIG_ID_3 | DMAMUX_RGxCR_SIG_ID_2 | DMAMUX_RGxCR_SIG_ID_0) /*!< Request signal generation from EXTI Line13 */
288 #define LL_DMAMUX_REQ_GEN_EXTI_LINE14 (DMAMUX_RGxCR_SIG_ID_3 | DMAMUX_RGxCR_SIG_ID_2 | DMAMUX_RGxCR_SIG_ID_1) /*!< Request signal generation from EXTI Line14 */
289 #define LL_DMAMUX_REQ_GEN_EXTI_LINE15 (DMAMUX_RGxCR_SIG_ID_3 | DMAMUX_RGxCR_SIG_ID_2 | DMAMUX_RGxCR_SIG_ID_1 | DMAMUX_RGxCR_SIG_ID_0) /*!< Request signal generation from EXTI Line15 */
290 #define LL_DMAMUX_REQ_GEN_DMAMUX_CH0 DMAMUX_RGxCR_SIG_ID_4 /*!< Request signal generation from DMAMUX channel0 Event */
291 #define LL_DMAMUX_REQ_GEN_DMAMUX_CH1 (DMAMUX_RGxCR_SIG_ID_4 | DMAMUX_RGxCR_SIG_ID_0) /*!< Request signal generation from DMAMUX channel1 Event */
292 #define LL_DMAMUX_REQ_GEN_LPTIM1_OUT (DMAMUX_RGxCR_SIG_ID_4 | DMAMUX_RGxCR_SIG_ID_1) /*!< Request signal generation from LPTIM1 Ouput */
293 #define LL_DMAMUX_REQ_GEN_LPTIM2_OUT (DMAMUX_RGxCR_SIG_ID_4 | DMAMUX_RGxCR_SIG_ID_1 | DMAMUX_RGxCR_SIG_ID_0) /*!< Request signal generation from LPTIM2 Ouput */
294 /**
295 * @}
296 */
297
298 /**
299 * @}
300 */
301
302 /* Exported macro ------------------------------------------------------------*/
303 /** @defgroup DMAMUX_LL_Exported_Macros DMAMUX Exported Macros
304 * @{
305 */
306
307 /** @defgroup DMAMUX_LL_EM_WRITE_READ Common Write and read registers macros
308 * @{
309 */
310 /**
311 * @brief Write a value in DMAMUX register
312 * @param __INSTANCE__ DMAMUX Instance
313 * @param __REG__ Register to be written
314 * @param __VALUE__ Value to be written in the register
315 * @retval None
316 */
317 #define LL_DMAMUX_WriteReg(__INSTANCE__, __REG__, __VALUE__) WRITE_REG(__INSTANCE__->__REG__, (__VALUE__))
318
319 /**
320 * @brief Read a value in DMAMUX register
321 * @param __INSTANCE__ DMAMUX Instance
322 * @param __REG__ Register to be read
323 * @retval Register value
324 */
325 #define LL_DMAMUX_ReadReg(__INSTANCE__, __REG__) READ_REG(__INSTANCE__->__REG__)
326 /**
327 * @}
328 */
329
330 /**
331 * @}
332 */
333
334 /* Exported functions --------------------------------------------------------*/
335 /** @defgroup DMAMUX_LL_Exported_Functions DMAMUX Exported Functions
336 * @{
337 */
338
339 /** @defgroup DMAMUX_LL_EF_Configuration Configuration
340 * @{
341 */
342 /**
343 * @brief Set DMAMUX request ID for DMAMUX Channel x.
344 * @note DMAMUX channel 0 to 6 are mapped to DMA1 channel 1 to 7.
345 #if defined(DMA2)
346 * DMAMUX channel 7 to 13 are mapped to DMA2 channel 1 to 7.
347 #endif
348 * @rmtoll CxCR DMAREQ_ID LL_DMAMUX_SetRequestID
349 * @param DMAMUXx DMAMUXx Instance
350 * @param Channel This parameter can be one of the following values:
351 * @arg @ref LL_DMAMUX_CHANNEL_0
352 * @arg @ref LL_DMAMUX_CHANNEL_1
353 * @arg @ref LL_DMAMUX_CHANNEL_2
354 * @arg @ref LL_DMAMUX_CHANNEL_3
355 * @arg @ref LL_DMAMUX_CHANNEL_4
356 * @arg @ref LL_DMAMUX_CHANNEL_5
357 * @arg @ref LL_DMAMUX_CHANNEL_6
358 #if defined(DMA2)
359 * @arg @ref LL_DMAMUX_CHANNEL_7
360 * @arg @ref LL_DMAMUX_CHANNEL_8
361 * @arg @ref LL_DMAMUX_CHANNEL_9
362 * @arg @ref LL_DMAMUX_CHANNEL_10
363 * @arg @ref LL_DMAMUX_CHANNEL_11
364 * @arg @ref LL_DMAMUX_CHANNEL_12
365 * @arg @ref LL_DMAMUX_CHANNEL_13
366 #endif
367 * @param Request This parameter can be one of the following values:
368 * @arg @ref LL_DMAMUX_REQ_MEM2MEM
369 * @arg @ref LL_DMAMUX_REQ_GENERATOR0
370 * @arg @ref LL_DMAMUX_REQ_GENERATOR1
371 * @arg @ref LL_DMAMUX_REQ_GENERATOR2
372 * @arg @ref LL_DMAMUX_REQ_GENERATOR3
373 * @arg @ref LL_DMAMUX_REQ_ADC1
374 * @arg @ref LL_DMAMUX_REQ_SPI1_RX
375 * @arg @ref LL_DMAMUX_REQ_SPI1_TX
376 * @arg @ref LL_DMAMUX_REQ_SPI2_RX
377 * @arg @ref LL_DMAMUX_REQ_SPI2_TX
378 * @arg @ref LL_DMAMUX_REQ_I2C1_RX
379 * @arg @ref LL_DMAMUX_REQ_I2C1_TX
380 * @arg @ref LL_DMAMUX_REQ_I2C3_RX
381 * @arg @ref LL_DMAMUX_REQ_I2C3_TX
382 * @arg @ref LL_DMAMUX_REQ_USART1_RX
383 * @arg @ref LL_DMAMUX_REQ_USART1_TX
384 * @arg @ref LL_DMAMUX_REQ_LPUART1_RX
385 * @arg @ref LL_DMAMUX_REQ_LPUART1_TX
386 * @arg @ref LL_DMAMUX_REQ_SAI1_A
387 * @arg @ref LL_DMAMUX_REQ_SAI1_B
388 * @arg @ref LL_DMAMUX_REQ_QUADSPI
389 * @arg @ref LL_DMAMUX_REQ_TIM1_CH1
390 * @arg @ref LL_DMAMUX_REQ_TIM1_CH2
391 * @arg @ref LL_DMAMUX_REQ_TIM1_CH3
392 * @arg @ref LL_DMAMUX_REQ_TIM1_CH4
393 * @arg @ref LL_DMAMUX_REQ_TIM1_UP
394 * @arg @ref LL_DMAMUX_REQ_TIM1_TRIG
395 * @arg @ref LL_DMAMUX_REQ_TIM1_COM
396 * @arg @ref LL_DMAMUX_REQ_TIM2_CH1
397 * @arg @ref LL_DMAMUX_REQ_TIM2_CH2
398 * @arg @ref LL_DMAMUX_REQ_TIM2_CH3
399 * @arg @ref LL_DMAMUX_REQ_TIM2_CH4
400 * @arg @ref LL_DMAMUX_REQ_TIM2_UP
401 * @arg @ref LL_DMAMUX_REQ_TIM16_CH1
402 * @arg @ref LL_DMAMUX_REQ_TIM16_UP
403 * @arg @ref LL_DMAMUX_REQ_TIM17_CH1
404 * @arg @ref LL_DMAMUX_REQ_TIM17_UP
405 * @arg @ref LL_DMAMUX_REQ_AES1_IN
406 * @arg @ref LL_DMAMUX_REQ_AES1_OUT
407 * @arg @ref LL_DMAMUX_REQ_AES2_IN
408 * @arg @ref LL_DMAMUX_REQ_AES2_OUT
409 * @retval None
410 */
LL_DMAMUX_SetRequestID(DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t Channel,uint32_t Request)411 __STATIC_INLINE void LL_DMAMUX_SetRequestID(DMAMUX_Channel_TypeDef* DMAMUXx, uint32_t Channel, uint32_t Request)
412 {
413 (void)(DMAMUXx);
414 MODIFY_REG((DMAMUX1_Channel0 + Channel)->CCR, DMAMUX_CxCR_DMAREQ_ID, Request);
415 }
416
417 /**
418 * @brief Get DMAMUX request ID for DMAMUX Channel x.
419 * @note DMAMUX channel 0 to 6 are mapped to DMA1 channel 1 to 7.
420 #if defined(DMA2)
421 * DMAMUX channel 7 to 13 are mapped to DMA2 channel 1 to 7.
422 #endif
423 * @rmtoll CxCR DMAREQ_ID LL_DMAMUX_GetRequestID
424 * @param DMAMUXx DMAMUXx Instance
425 * @param Channel This parameter can be one of the following values:
426 * @arg @ref LL_DMAMUX_CHANNEL_0
427 * @arg @ref LL_DMAMUX_CHANNEL_1
428 * @arg @ref LL_DMAMUX_CHANNEL_2
429 * @arg @ref LL_DMAMUX_CHANNEL_3
430 * @arg @ref LL_DMAMUX_CHANNEL_4
431 * @arg @ref LL_DMAMUX_CHANNEL_5
432 * @arg @ref LL_DMAMUX_CHANNEL_6
433 * @arg @ref LL_DMAMUX_CHANNEL_7
434 * @arg @ref LL_DMAMUX_CHANNEL_8
435 * @arg @ref LL_DMAMUX_CHANNEL_9
436 * @arg @ref LL_DMAMUX_CHANNEL_10
437 * @arg @ref LL_DMAMUX_CHANNEL_11
438 * @arg @ref LL_DMAMUX_CHANNEL_12
439 * @arg @ref LL_DMAMUX_CHANNEL_13
440 * @retval Returned value can be one of the following values:
441 * @arg @ref LL_DMAMUX_REQ_MEM2MEM
442 * @arg @ref LL_DMAMUX_REQ_GENERATOR0
443 * @arg @ref LL_DMAMUX_REQ_GENERATOR1
444 * @arg @ref LL_DMAMUX_REQ_GENERATOR2
445 * @arg @ref LL_DMAMUX_REQ_GENERATOR3
446 * @arg @ref LL_DMAMUX_REQ_ADC1
447 * @arg @ref LL_DMAMUX_REQ_SPI1_RX
448 * @arg @ref LL_DMAMUX_REQ_SPI1_TX
449 * @arg @ref LL_DMAMUX_REQ_SPI2_RX
450 * @arg @ref LL_DMAMUX_REQ_SPI2_TX
451 * @arg @ref LL_DMAMUX_REQ_I2C1_RX
452 * @arg @ref LL_DMAMUX_REQ_I2C1_TX
453 * @arg @ref LL_DMAMUX_REQ_I2C3_RX
454 * @arg @ref LL_DMAMUX_REQ_I2C3_TX
455 * @arg @ref LL_DMAMUX_REQ_USART1_RX
456 * @arg @ref LL_DMAMUX_REQ_USART1_TX
457 * @arg @ref LL_DMAMUX_REQ_LPUART1_RX
458 * @arg @ref LL_DMAMUX_REQ_LPUART1_TX
459 * @arg @ref LL_DMAMUX_REQ_SAI1_A
460 * @arg @ref LL_DMAMUX_REQ_SAI1_B
461 * @arg @ref LL_DMAMUX_REQ_QUADSPI
462 * @arg @ref LL_DMAMUX_REQ_TIM1_CH1
463 * @arg @ref LL_DMAMUX_REQ_TIM1_CH2
464 * @arg @ref LL_DMAMUX_REQ_TIM1_CH3
465 * @arg @ref LL_DMAMUX_REQ_TIM1_CH4
466 * @arg @ref LL_DMAMUX_REQ_TIM1_UP
467 * @arg @ref LL_DMAMUX_REQ_TIM1_TRIG
468 * @arg @ref LL_DMAMUX_REQ_TIM1_COM
469 * @arg @ref LL_DMAMUX_REQ_TIM2_CH1
470 * @arg @ref LL_DMAMUX_REQ_TIM2_CH2
471 * @arg @ref LL_DMAMUX_REQ_TIM2_CH3
472 * @arg @ref LL_DMAMUX_REQ_TIM2_CH4
473 * @arg @ref LL_DMAMUX_REQ_TIM2_UP
474 * @arg @ref LL_DMAMUX_REQ_TIM16_CH1
475 * @arg @ref LL_DMAMUX_REQ_TIM16_UP
476 * @arg @ref LL_DMAMUX_REQ_TIM17_CH1
477 * @arg @ref LL_DMAMUX_REQ_TIM17_UP
478 * @arg @ref LL_DMAMUX_REQ_AES1_IN
479 * @arg @ref LL_DMAMUX_REQ_AES1_OUT
480 * @arg @ref LL_DMAMUX_REQ_AES2_IN
481 * @arg @ref LL_DMAMUX_REQ_AES2_OUT
482 */
LL_DMAMUX_GetRequestID(DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t Channel)483 __STATIC_INLINE uint32_t LL_DMAMUX_GetRequestID(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel)
484 {
485 (void)(DMAMUXx);
486 return (uint32_t)(READ_BIT((DMAMUX1_Channel0 + Channel)->CCR, DMAMUX_CxCR_DMAREQ_ID));
487 }
488
489 /**
490 * @brief Set the number of DMA request that will be autorized after a synchronization event and/or the number of DMA request needed to generate an event.
491 * @rmtoll CxCR NBREQ LL_DMAMUX_SetSyncRequestNb
492 * @param DMAMUXx DMAMUXx Instance
493 * @param Channel This parameter can be one of the following values:
494 * @arg @ref LL_DMAMUX_CHANNEL_0
495 * @arg @ref LL_DMAMUX_CHANNEL_1
496 * @arg @ref LL_DMAMUX_CHANNEL_2
497 * @arg @ref LL_DMAMUX_CHANNEL_3
498 * @arg @ref LL_DMAMUX_CHANNEL_4
499 * @arg @ref LL_DMAMUX_CHANNEL_5
500 * @arg @ref LL_DMAMUX_CHANNEL_6
501 * @arg @ref LL_DMAMUX_CHANNEL_7
502 * @arg @ref LL_DMAMUX_CHANNEL_8
503 * @arg @ref LL_DMAMUX_CHANNEL_9
504 * @arg @ref LL_DMAMUX_CHANNEL_10
505 * @arg @ref LL_DMAMUX_CHANNEL_11
506 * @arg @ref LL_DMAMUX_CHANNEL_12
507 * @arg @ref LL_DMAMUX_CHANNEL_13
508 * @param RequestNb This parameter must be a value between Min_Data = 1 and Max_Data = 32.
509 * @retval None
510 */
LL_DMAMUX_SetSyncRequestNb(DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t Channel,uint32_t RequestNb)511 __STATIC_INLINE void LL_DMAMUX_SetSyncRequestNb(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel, uint32_t RequestNb)
512 {
513 (void)(DMAMUXx);
514 MODIFY_REG((DMAMUX1_Channel0 + Channel)->CCR, DMAMUX_CxCR_NBREQ, ((RequestNb - 1U) << DMAMUX_CxCR_NBREQ_Pos));
515 }
516
517 /**
518 * @brief Get the number of DMA request that will be autorized after a synchronization event and/or the number of DMA request needed to generate an event.
519 * @rmtoll CxCR NBREQ LL_DMAMUX_GetSyncRequestNb
520 * @param DMAMUXx DMAMUXx Instance
521 * @param Channel This parameter can be one of the following values:
522 * @arg @ref LL_DMAMUX_CHANNEL_0
523 * @arg @ref LL_DMAMUX_CHANNEL_1
524 * @arg @ref LL_DMAMUX_CHANNEL_2
525 * @arg @ref LL_DMAMUX_CHANNEL_3
526 * @arg @ref LL_DMAMUX_CHANNEL_4
527 * @arg @ref LL_DMAMUX_CHANNEL_5
528 * @arg @ref LL_DMAMUX_CHANNEL_6
529 * @arg @ref LL_DMAMUX_CHANNEL_7
530 * @arg @ref LL_DMAMUX_CHANNEL_8
531 * @arg @ref LL_DMAMUX_CHANNEL_9
532 * @arg @ref LL_DMAMUX_CHANNEL_10
533 * @arg @ref LL_DMAMUX_CHANNEL_11
534 * @arg @ref LL_DMAMUX_CHANNEL_12
535 * @arg @ref LL_DMAMUX_CHANNEL_13
536 * @retval Between Min_Data = 1 and Max_Data = 32
537 */
LL_DMAMUX_GetSyncRequestNb(DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t Channel)538 __STATIC_INLINE uint32_t LL_DMAMUX_GetSyncRequestNb(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel)
539 {
540 (void)(DMAMUXx);
541 return (uint32_t)(((READ_BIT((DMAMUX1_Channel0 + Channel)->CCR, DMAMUX_CxCR_NBREQ)) >> DMAMUX_CxCR_NBREQ_Pos) + 1U);
542 }
543
544 /**
545 * @brief Set the polarity of the signal on which the DMA request is synchronized.
546 * @rmtoll CxCR SPOL LL_DMAMUX_SetSyncPolarity
547 * @param DMAMUXx DMAMUXx Instance
548 * @param Channel This parameter can be one of the following values:
549 * @arg @ref LL_DMAMUX_CHANNEL_0
550 * @arg @ref LL_DMAMUX_CHANNEL_1
551 * @arg @ref LL_DMAMUX_CHANNEL_2
552 * @arg @ref LL_DMAMUX_CHANNEL_3
553 * @arg @ref LL_DMAMUX_CHANNEL_4
554 * @arg @ref LL_DMAMUX_CHANNEL_5
555 * @arg @ref LL_DMAMUX_CHANNEL_6
556 * @arg @ref LL_DMAMUX_CHANNEL_7
557 * @arg @ref LL_DMAMUX_CHANNEL_8
558 * @arg @ref LL_DMAMUX_CHANNEL_9
559 * @arg @ref LL_DMAMUX_CHANNEL_10
560 * @arg @ref LL_DMAMUX_CHANNEL_11
561 * @arg @ref LL_DMAMUX_CHANNEL_12
562 * @arg @ref LL_DMAMUX_CHANNEL_13
563 * @param Polarity This parameter can be one of the following values:
564 * @arg @ref LL_DMAMUX_SYNC_NO_EVENT
565 * @arg @ref LL_DMAMUX_SYNC_POL_RISING
566 * @arg @ref LL_DMAMUX_SYNC_POL_FALLING
567 * @arg @ref LL_DMAMUX_SYNC_POL_RISING_FALLING
568 * @retval None
569 */
LL_DMAMUX_SetSyncPolarity(DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t Channel,uint32_t Polarity)570 __STATIC_INLINE void LL_DMAMUX_SetSyncPolarity(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel, uint32_t Polarity)
571 {
572 (void)(DMAMUXx);
573 MODIFY_REG((DMAMUX1_Channel0 + Channel)->CCR, DMAMUX_CxCR_SPOL, Polarity);
574 }
575
576 /**
577 * @brief Get the polarity of the signal on which the DMA request is synchronized.
578 * @rmtoll CxCR SPOL LL_DMAMUX_GetSyncPolarity
579 * @param DMAMUXx DMAMUXx Instance
580 * @param Channel This parameter can be one of the following values:
581 * @arg @ref LL_DMAMUX_CHANNEL_0
582 * @arg @ref LL_DMAMUX_CHANNEL_1
583 * @arg @ref LL_DMAMUX_CHANNEL_2
584 * @arg @ref LL_DMAMUX_CHANNEL_3
585 * @arg @ref LL_DMAMUX_CHANNEL_4
586 * @arg @ref LL_DMAMUX_CHANNEL_5
587 * @arg @ref LL_DMAMUX_CHANNEL_6
588 #if defined(DMA2)
589 * @arg @ref LL_DMAMUX_CHANNEL_7
590 * @arg @ref LL_DMAMUX_CHANNEL_8
591 * @arg @ref LL_DMAMUX_CHANNEL_9
592 * @arg @ref LL_DMAMUX_CHANNEL_10
593 * @arg @ref LL_DMAMUX_CHANNEL_11
594 * @arg @ref LL_DMAMUX_CHANNEL_12
595 * @arg @ref LL_DMAMUX_CHANNEL_13
596 #endif
597 * @retval Returned value can be one of the following values:
598 * @arg @ref LL_DMAMUX_SYNC_NO_EVENT
599 * @arg @ref LL_DMAMUX_SYNC_POL_RISING
600 * @arg @ref LL_DMAMUX_SYNC_POL_FALLING
601 * @arg @ref LL_DMAMUX_SYNC_POL_RISING_FALLING
602 */
LL_DMAMUX_GetSyncPolarity(DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t Channel)603 __STATIC_INLINE uint32_t LL_DMAMUX_GetSyncPolarity(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel)
604 {
605 (void)(DMAMUXx);
606 return (uint32_t)(READ_BIT((DMAMUX1_Channel0 + Channel)->CCR, DMAMUX_CxCR_SPOL));
607 }
608
609 /**
610 * @brief Enable the Event Generation on DMAMUX channel x.
611 * @rmtoll CxCR EGE LL_DMAMUX_EnableEventGeneration
612 * @param DMAMUXx DMAMUXx Instance
613 * @param Channel This parameter can be one of the following values:
614 * @arg @ref LL_DMAMUX_CHANNEL_0
615 * @arg @ref LL_DMAMUX_CHANNEL_1
616 * @arg @ref LL_DMAMUX_CHANNEL_2
617 * @arg @ref LL_DMAMUX_CHANNEL_3
618 * @arg @ref LL_DMAMUX_CHANNEL_4
619 * @arg @ref LL_DMAMUX_CHANNEL_5
620 * @arg @ref LL_DMAMUX_CHANNEL_6
621 #if defined(DMA2)
622 * @arg @ref LL_DMAMUX_CHANNEL_7
623 * @arg @ref LL_DMAMUX_CHANNEL_8
624 * @arg @ref LL_DMAMUX_CHANNEL_9
625 * @arg @ref LL_DMAMUX_CHANNEL_10
626 * @arg @ref LL_DMAMUX_CHANNEL_11
627 * @arg @ref LL_DMAMUX_CHANNEL_12
628 * @arg @ref LL_DMAMUX_CHANNEL_13
629 #endif
630 * @retval None
631 */
LL_DMAMUX_EnableEventGeneration(DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t Channel)632 __STATIC_INLINE void LL_DMAMUX_EnableEventGeneration(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel)
633 {
634 (void)(DMAMUXx);
635 SET_BIT((DMAMUX1_Channel0 + Channel)->CCR, DMAMUX_CxCR_EGE);
636 }
637
638 /**
639 * @brief Disable the Event Generation on DMAMUX channel x.
640 * @rmtoll CxCR EGE LL_DMAMUX_DisableEventGeneration
641 * @param DMAMUXx DMAMUXx Instance
642 * @param Channel This parameter can be one of the following values:
643 * @arg @ref LL_DMAMUX_CHANNEL_0
644 * @arg @ref LL_DMAMUX_CHANNEL_1
645 * @arg @ref LL_DMAMUX_CHANNEL_2
646 * @arg @ref LL_DMAMUX_CHANNEL_3
647 * @arg @ref LL_DMAMUX_CHANNEL_4
648 * @arg @ref LL_DMAMUX_CHANNEL_5
649 * @arg @ref LL_DMAMUX_CHANNEL_6
650 #if defined(DMA2)
651 * @arg @ref LL_DMAMUX_CHANNEL_7
652 * @arg @ref LL_DMAMUX_CHANNEL_8
653 * @arg @ref LL_DMAMUX_CHANNEL_9
654 * @arg @ref LL_DMAMUX_CHANNEL_10
655 * @arg @ref LL_DMAMUX_CHANNEL_11
656 * @arg @ref LL_DMAMUX_CHANNEL_12
657 * @arg @ref LL_DMAMUX_CHANNEL_13
658 #endif
659 * @retval None
660 */
LL_DMAMUX_DisableEventGeneration(DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t Channel)661 __STATIC_INLINE void LL_DMAMUX_DisableEventGeneration(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel)
662 {
663 (void)(DMAMUXx);
664 CLEAR_BIT((DMAMUX1_Channel0 + Channel)->CCR, DMAMUX_CxCR_EGE);
665 }
666
667 /**
668 * @brief Check if the Event Generation on DMAMUX channel x is enabled or disabled.
669 * @rmtoll CxCR EGE LL_DMAMUX_IsEnabledEventGeneration
670 * @param DMAMUXx DMAMUXx Instance
671 * @param Channel This parameter can be one of the following values:
672 * @arg @ref LL_DMAMUX_CHANNEL_0
673 * @arg @ref LL_DMAMUX_CHANNEL_1
674 * @arg @ref LL_DMAMUX_CHANNEL_2
675 * @arg @ref LL_DMAMUX_CHANNEL_3
676 * @arg @ref LL_DMAMUX_CHANNEL_4
677 * @arg @ref LL_DMAMUX_CHANNEL_5
678 * @arg @ref LL_DMAMUX_CHANNEL_6
679 #if defined(DMA2)
680 * @arg @ref LL_DMAMUX_CHANNEL_7
681 * @arg @ref LL_DMAMUX_CHANNEL_8
682 * @arg @ref LL_DMAMUX_CHANNEL_9
683 * @arg @ref LL_DMAMUX_CHANNEL_10
684 * @arg @ref LL_DMAMUX_CHANNEL_11
685 * @arg @ref LL_DMAMUX_CHANNEL_12
686 * @arg @ref LL_DMAMUX_CHANNEL_13
687 #endif
688 * @retval State of bit (1 or 0).
689 */
LL_DMAMUX_IsEnabledEventGeneration(DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t Channel)690 __STATIC_INLINE uint32_t LL_DMAMUX_IsEnabledEventGeneration(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel)
691 {
692 (void)(DMAMUXx);
693 return ((READ_BIT((DMAMUX1_Channel0 + Channel)->CCR, DMAMUX_CxCR_EGE) == (DMAMUX_CxCR_EGE))? 1UL : 0UL);
694 }
695
696 /**
697 * @brief Enable the synchronization mode.
698 * @rmtoll CxCR SE LL_DMAMUX_EnableSync
699 * @param DMAMUXx DMAMUXx Instance
700 * @param Channel This parameter can be one of the following values:
701 * @arg @ref LL_DMAMUX_CHANNEL_0
702 * @arg @ref LL_DMAMUX_CHANNEL_1
703 * @arg @ref LL_DMAMUX_CHANNEL_2
704 * @arg @ref LL_DMAMUX_CHANNEL_3
705 * @arg @ref LL_DMAMUX_CHANNEL_4
706 * @arg @ref LL_DMAMUX_CHANNEL_5
707 * @arg @ref LL_DMAMUX_CHANNEL_6
708 #if defined(DMA2)
709 * @arg @ref LL_DMAMUX_CHANNEL_7
710 * @arg @ref LL_DMAMUX_CHANNEL_8
711 * @arg @ref LL_DMAMUX_CHANNEL_9
712 * @arg @ref LL_DMAMUX_CHANNEL_10
713 * @arg @ref LL_DMAMUX_CHANNEL_11
714 * @arg @ref LL_DMAMUX_CHANNEL_12
715 * @arg @ref LL_DMAMUX_CHANNEL_13
716 #endif
717 * @retval None
718 */
LL_DMAMUX_EnableSync(DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t Channel)719 __STATIC_INLINE void LL_DMAMUX_EnableSync(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel)
720 {
721 (void)(DMAMUXx);
722 SET_BIT((DMAMUX1_Channel0 + Channel)->CCR, DMAMUX_CxCR_SE);
723 }
724
725 /**
726 * @brief Disable the synchronization mode.
727 * @rmtoll CxCR SE LL_DMAMUX_DisableSync
728 * @param DMAMUXx DMAMUXx Instance
729 * @param Channel This parameter can be one of the following values:
730 * @arg @ref LL_DMAMUX_CHANNEL_0
731 * @arg @ref LL_DMAMUX_CHANNEL_1
732 * @arg @ref LL_DMAMUX_CHANNEL_2
733 * @arg @ref LL_DMAMUX_CHANNEL_3
734 * @arg @ref LL_DMAMUX_CHANNEL_4
735 * @arg @ref LL_DMAMUX_CHANNEL_5
736 * @arg @ref LL_DMAMUX_CHANNEL_6
737 #if defined(DMA2)
738 * @arg @ref LL_DMAMUX_CHANNEL_7
739 * @arg @ref LL_DMAMUX_CHANNEL_8
740 * @arg @ref LL_DMAMUX_CHANNEL_9
741 * @arg @ref LL_DMAMUX_CHANNEL_10
742 * @arg @ref LL_DMAMUX_CHANNEL_11
743 * @arg @ref LL_DMAMUX_CHANNEL_12
744 * @arg @ref LL_DMAMUX_CHANNEL_13
745 #endif
746 * @retval None
747 */
LL_DMAMUX_DisableSync(DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t Channel)748 __STATIC_INLINE void LL_DMAMUX_DisableSync(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel)
749 {
750 (void)(DMAMUXx);
751 CLEAR_BIT((DMAMUX1_Channel0 + Channel)->CCR, DMAMUX_CxCR_SE);
752 }
753
754 /**
755 * @brief Check if the synchronization mode is enabled or disabled.
756 * @rmtoll CxCR SE LL_DMAMUX_IsEnabledSync
757 * @param DMAMUXx DMAMUXx Instance
758 * @param Channel This parameter can be one of the following values:
759 * @arg @ref LL_DMAMUX_CHANNEL_0
760 * @arg @ref LL_DMAMUX_CHANNEL_1
761 * @arg @ref LL_DMAMUX_CHANNEL_2
762 * @arg @ref LL_DMAMUX_CHANNEL_3
763 * @arg @ref LL_DMAMUX_CHANNEL_4
764 * @arg @ref LL_DMAMUX_CHANNEL_5
765 * @arg @ref LL_DMAMUX_CHANNEL_6
766 #if defined(DMA2)
767 * @arg @ref LL_DMAMUX_CHANNEL_7
768 * @arg @ref LL_DMAMUX_CHANNEL_8
769 * @arg @ref LL_DMAMUX_CHANNEL_9
770 * @arg @ref LL_DMAMUX_CHANNEL_10
771 * @arg @ref LL_DMAMUX_CHANNEL_11
772 * @arg @ref LL_DMAMUX_CHANNEL_12
773 * @arg @ref LL_DMAMUX_CHANNEL_13
774 #endif
775 * @retval State of bit (1 or 0).
776 */
LL_DMAMUX_IsEnabledSync(DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t Channel)777 __STATIC_INLINE uint32_t LL_DMAMUX_IsEnabledSync(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel)
778 {
779 (void)(DMAMUXx);
780 return ((READ_BIT((DMAMUX1_Channel0 + Channel)->CCR, DMAMUX_CxCR_SE) == (DMAMUX_CxCR_SE))? 1UL : 0UL);
781 }
782
783 /**
784 * @brief Set DMAMUX synchronization ID on DMAMUX Channel x.
785 * @rmtoll CxCR SYNC_ID LL_DMAMUX_SetSyncID
786 * @param DMAMUXx DMAMUXx Instance
787 * @param Channel This parameter can be one of the following values:
788 * @arg @ref LL_DMAMUX_CHANNEL_0
789 * @arg @ref LL_DMAMUX_CHANNEL_1
790 * @arg @ref LL_DMAMUX_CHANNEL_2
791 * @arg @ref LL_DMAMUX_CHANNEL_3
792 * @arg @ref LL_DMAMUX_CHANNEL_4
793 * @arg @ref LL_DMAMUX_CHANNEL_5
794 * @arg @ref LL_DMAMUX_CHANNEL_6
795 #if defined(DMA2)
796 * @arg @ref LL_DMAMUX_CHANNEL_7
797 * @arg @ref LL_DMAMUX_CHANNEL_8
798 * @arg @ref LL_DMAMUX_CHANNEL_9
799 * @arg @ref LL_DMAMUX_CHANNEL_10
800 * @arg @ref LL_DMAMUX_CHANNEL_11
801 * @arg @ref LL_DMAMUX_CHANNEL_12
802 * @arg @ref LL_DMAMUX_CHANNEL_13
803 #endif
804 * @param SyncID This parameter can be one of the following values:
805 * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE0
806 * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE1
807 * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE2
808 * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE3
809 * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE4
810 * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE5
811 * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE6
812 * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE7
813 * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE8
814 * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE9
815 * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE10
816 * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE11
817 * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE12
818 * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE13
819 * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE14
820 * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE15
821 * @arg @ref LL_DMAMUX_SYNC_DMAMUX_CH0
822 * @arg @ref LL_DMAMUX_SYNC_DMAMUX_CH1
823 * @arg @ref LL_DMAMUX_SYNC_LPTIM1_OUT
824 * @arg @ref LL_DMAMUX_SYNC_LPTIM2_OUT
825 * @retval None
826 */
LL_DMAMUX_SetSyncID(DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t Channel,uint32_t SyncID)827 __STATIC_INLINE void LL_DMAMUX_SetSyncID(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel, uint32_t SyncID)
828 {
829 (void)(DMAMUXx);
830 MODIFY_REG((DMAMUX1_Channel0 + Channel)->CCR, DMAMUX_CxCR_SYNC_ID, SyncID);
831 }
832
833 /**
834 * @brief Get DMAMUX synchronization ID on DMAMUX Channel x.
835 * @rmtoll CxCR SYNC_ID LL_DMAMUX_GetSyncID
836 * @param DMAMUXx DMAMUXx Instance
837 * @param Channel This parameter can be one of the following values:
838 * @arg @ref LL_DMAMUX_CHANNEL_0
839 * @arg @ref LL_DMAMUX_CHANNEL_1
840 * @arg @ref LL_DMAMUX_CHANNEL_2
841 * @arg @ref LL_DMAMUX_CHANNEL_3
842 * @arg @ref LL_DMAMUX_CHANNEL_4
843 * @arg @ref LL_DMAMUX_CHANNEL_5
844 * @arg @ref LL_DMAMUX_CHANNEL_6
845 #if defined(DMA2)
846 * @arg @ref LL_DMAMUX_CHANNEL_7
847 * @arg @ref LL_DMAMUX_CHANNEL_8
848 * @arg @ref LL_DMAMUX_CHANNEL_9
849 * @arg @ref LL_DMAMUX_CHANNEL_10
850 * @arg @ref LL_DMAMUX_CHANNEL_11
851 * @arg @ref LL_DMAMUX_CHANNEL_12
852 * @arg @ref LL_DMAMUX_CHANNEL_13
853 #endif
854 * @retval Returned value can be one of the following values:
855 * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE0
856 * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE1
857 * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE2
858 * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE3
859 * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE4
860 * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE5
861 * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE6
862 * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE7
863 * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE8
864 * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE9
865 * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE10
866 * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE11
867 * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE12
868 * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE13
869 * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE14
870 * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE15
871 * @arg @ref LL_DMAMUX_SYNC_DMAMUX_CH0
872 * @arg @ref LL_DMAMUX_SYNC_DMAMUX_CH1
873 * @arg @ref LL_DMAMUX_SYNC_LPTIM1_OUT
874 * @arg @ref LL_DMAMUX_SYNC_LPTIM2_OUT
875 */
LL_DMAMUX_GetSyncID(DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t Channel)876 __STATIC_INLINE uint32_t LL_DMAMUX_GetSyncID(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel)
877 {
878 (void)(DMAMUXx);
879 return (uint32_t)(READ_BIT((DMAMUX1_Channel0 + Channel)->CCR, DMAMUX_CxCR_SYNC_ID));
880 }
881
882 /**
883 * @brief Enable the Request Generator.
884 * @rmtoll RGxCR GE LL_DMAMUX_EnableRequestGen
885 * @param DMAMUXx DMAMUXx Instance
886 * @param RequestGenChannel This parameter can be one of the following values:
887 * @arg @ref LL_DMAMUX_REQ_GEN_0
888 * @arg @ref LL_DMAMUX_REQ_GEN_1
889 * @arg @ref LL_DMAMUX_REQ_GEN_2
890 * @arg @ref LL_DMAMUX_REQ_GEN_3
891 * @retval None
892 */
LL_DMAMUX_EnableRequestGen(DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t RequestGenChannel)893 __STATIC_INLINE void LL_DMAMUX_EnableRequestGen(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t RequestGenChannel)
894 {
895 (void)(DMAMUXx);
896 SET_BIT(((DMAMUX_RequestGen_TypeDef *)((uint32_t)((uint32_t)DMAMUX1_RequestGenerator0 + (DMAMUX_RGCR_SIZE * (RequestGenChannel)))))->RGCR, DMAMUX_RGxCR_GE);
897 }
898
899 /**
900 * @brief Disable the Request Generator.
901 * @rmtoll RGxCR GE LL_DMAMUX_DisableRequestGen
902 * @param DMAMUXx DMAMUXx Instance
903 * @param RequestGenChannel This parameter can be one of the following values:
904 * @arg @ref LL_DMAMUX_REQ_GEN_0
905 * @arg @ref LL_DMAMUX_REQ_GEN_1
906 * @arg @ref LL_DMAMUX_REQ_GEN_2
907 * @arg @ref LL_DMAMUX_REQ_GEN_3
908 * @retval None
909 */
LL_DMAMUX_DisableRequestGen(DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t RequestGenChannel)910 __STATIC_INLINE void LL_DMAMUX_DisableRequestGen(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t RequestGenChannel)
911 {
912 (void)(DMAMUXx);
913 CLEAR_BIT(((DMAMUX_RequestGen_TypeDef *)((uint32_t)((uint32_t)DMAMUX1_RequestGenerator0 + (DMAMUX_RGCR_SIZE * (RequestGenChannel)))))->RGCR, DMAMUX_RGxCR_GE);
914 }
915
916 /**
917 * @brief Check if the Request Generator is enabled or disabled.
918 * @rmtoll RGxCR GE LL_DMAMUX_IsEnabledRequestGen
919 * @param DMAMUXx DMAMUXx Instance
920 * @param RequestGenChannel This parameter can be one of the following values:
921 * @arg @ref LL_DMAMUX_REQ_GEN_0
922 * @arg @ref LL_DMAMUX_REQ_GEN_1
923 * @arg @ref LL_DMAMUX_REQ_GEN_2
924 * @arg @ref LL_DMAMUX_REQ_GEN_3
925 * @retval State of bit (1 or 0).
926 */
LL_DMAMUX_IsEnabledRequestGen(DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t RequestGenChannel)927 __STATIC_INLINE uint32_t LL_DMAMUX_IsEnabledRequestGen(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t RequestGenChannel)
928 {
929 (void)(DMAMUXx);
930 return ((READ_BIT(((DMAMUX_RequestGen_TypeDef *)((uint32_t)((uint32_t)DMAMUX1_RequestGenerator0 + (DMAMUX_RGCR_SIZE * (RequestGenChannel)))))->RGCR, DMAMUX_RGxCR_GE) == (DMAMUX_RGxCR_GE))? 1UL : 0UL);
931 }
932
933 /**
934 * @brief Set the polarity of the signal on which the DMA request is generated.
935 * @rmtoll RGxCR GPOL LL_DMAMUX_SetRequestGenPolarity
936 * @param DMAMUXx DMAMUXx Instance
937 * @param RequestGenChannel This parameter can be one of the following values:
938 * @arg @ref LL_DMAMUX_REQ_GEN_0
939 * @arg @ref LL_DMAMUX_REQ_GEN_1
940 * @arg @ref LL_DMAMUX_REQ_GEN_2
941 * @arg @ref LL_DMAMUX_REQ_GEN_3
942 * @param Polarity This parameter can be one of the following values:
943 * @arg @ref LL_DMAMUX_REQ_GEN_NO_EVENT
944 * @arg @ref LL_DMAMUX_REQ_GEN_POL_RISING
945 * @arg @ref LL_DMAMUX_REQ_GEN_POL_FALLING
946 * @arg @ref LL_DMAMUX_REQ_GEN_POL_RISING_FALLING
947 * @retval None
948 */
LL_DMAMUX_SetRequestGenPolarity(DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t RequestGenChannel,uint32_t Polarity)949 __STATIC_INLINE void LL_DMAMUX_SetRequestGenPolarity(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t RequestGenChannel, uint32_t Polarity)
950 {
951 (void)(DMAMUXx);
952 MODIFY_REG(((DMAMUX_RequestGen_TypeDef *)((uint32_t)((uint32_t)DMAMUX1_RequestGenerator0 + (DMAMUX_RGCR_SIZE * (RequestGenChannel)))))->RGCR, DMAMUX_RGxCR_GPOL, Polarity);
953 }
954
955 /**
956 * @brief Get the polarity of the signal on which the DMA request is generated.
957 * @rmtoll RGxCR GPOL LL_DMAMUX_GetRequestGenPolarity
958 * @param DMAMUXx DMAMUXx Instance
959 * @param RequestGenChannel This parameter can be one of the following values:
960 * @arg @ref LL_DMAMUX_REQ_GEN_0
961 * @arg @ref LL_DMAMUX_REQ_GEN_1
962 * @arg @ref LL_DMAMUX_REQ_GEN_2
963 * @arg @ref LL_DMAMUX_REQ_GEN_3
964 * @retval Returned value can be one of the following values:
965 * @arg @ref LL_DMAMUX_REQ_GEN_NO_EVENT
966 * @arg @ref LL_DMAMUX_REQ_GEN_POL_RISING
967 * @arg @ref LL_DMAMUX_REQ_GEN_POL_FALLING
968 * @arg @ref LL_DMAMUX_REQ_GEN_POL_RISING_FALLING
969 */
LL_DMAMUX_GetRequestGenPolarity(DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t RequestGenChannel)970 __STATIC_INLINE uint32_t LL_DMAMUX_GetRequestGenPolarity(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t RequestGenChannel)
971 {
972 (void)(DMAMUXx);
973 return (uint32_t)(READ_BIT(((DMAMUX_RequestGen_TypeDef *)((uint32_t)((uint32_t)DMAMUX1_RequestGenerator0 + (DMAMUX_RGCR_SIZE * (RequestGenChannel)))))->RGCR, DMAMUX_RGxCR_GPOL));
974 }
975
976 /**
977 * @brief Set the number of DMA request that will be autorized after a generation event.
978 * @note This field can only be written when Generator is disabled.
979 * @rmtoll RGxCR GNBREQ LL_DMAMUX_SetGenRequestNb
980 * @param DMAMUXx DMAMUXx Instance
981 * @param RequestGenChannel This parameter can be one of the following values:
982 * @arg @ref LL_DMAMUX_REQ_GEN_0
983 * @arg @ref LL_DMAMUX_REQ_GEN_1
984 * @arg @ref LL_DMAMUX_REQ_GEN_2
985 * @arg @ref LL_DMAMUX_REQ_GEN_3
986 * @param RequestNb This parameter must be a value between Min_Data = 1 and Max_Data = 32.
987 * @retval None
988 */
LL_DMAMUX_SetGenRequestNb(DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t RequestGenChannel,uint32_t RequestNb)989 __STATIC_INLINE void LL_DMAMUX_SetGenRequestNb(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t RequestGenChannel, uint32_t RequestNb)
990 {
991 (void)(DMAMUXx);
992 MODIFY_REG(((DMAMUX_RequestGen_TypeDef *)((uint32_t)((uint32_t)DMAMUX1_RequestGenerator0 + (DMAMUX_RGCR_SIZE * (RequestGenChannel)))))->RGCR, DMAMUX_RGxCR_GNBREQ, (RequestNb - 1U) << DMAMUX_RGxCR_GNBREQ_Pos);
993 }
994
995 /**
996 * @brief Get the number of DMA request that will be autorized after a generation event.
997 * @rmtoll RGxCR GNBREQ LL_DMAMUX_GetGenRequestNb
998 * @param DMAMUXx DMAMUXx Instance
999 * @param RequestGenChannel This parameter can be one of the following values:
1000 * @arg @ref LL_DMAMUX_REQ_GEN_0
1001 * @arg @ref LL_DMAMUX_REQ_GEN_1
1002 * @arg @ref LL_DMAMUX_REQ_GEN_2
1003 * @arg @ref LL_DMAMUX_REQ_GEN_3
1004 * @retval Between Min_Data = 1 and Max_Data = 32
1005 */
LL_DMAMUX_GetGenRequestNb(DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t RequestGenChannel)1006 __STATIC_INLINE uint32_t LL_DMAMUX_GetGenRequestNb(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t RequestGenChannel)
1007 {
1008 (void)(DMAMUXx);
1009 return (uint32_t)((READ_BIT(((DMAMUX_RequestGen_TypeDef *)((uint32_t)((uint32_t)DMAMUX1_RequestGenerator0 + (DMAMUX_RGCR_SIZE * (RequestGenChannel)))))->RGCR, DMAMUX_RGxCR_GNBREQ) >> DMAMUX_RGxCR_GNBREQ_Pos) + 1U);
1010 }
1011
1012 /**
1013 * @brief Set DMAMUX external Request Signal ID on DMAMUX Request Generation Trigger Event Channel x.
1014 * @rmtoll RGxCR SIG_ID LL_DMAMUX_SetRequestSignalID
1015 * @param DMAMUXx DMAMUXx Instance
1016 * @param RequestGenChannel This parameter can be one of the following values:
1017 * @arg @ref LL_DMAMUX_REQ_GEN_0
1018 * @arg @ref LL_DMAMUX_REQ_GEN_1
1019 * @arg @ref LL_DMAMUX_REQ_GEN_2
1020 * @arg @ref LL_DMAMUX_REQ_GEN_3
1021 * @param RequestSignalID This parameter can be one of the following values:
1022 * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE0
1023 * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE1
1024 * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE2
1025 * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE3
1026 * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE4
1027 * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE5
1028 * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE6
1029 * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE7
1030 * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE8
1031 * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE9
1032 * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE10
1033 * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE11
1034 * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE12
1035 * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE13
1036 * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE14
1037 * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE15
1038 * @arg @ref LL_DMAMUX_REQ_GEN_DMAMUX_CH0
1039 * @arg @ref LL_DMAMUX_REQ_GEN_DMAMUX_CH1
1040 * @arg @ref LL_DMAMUX_REQ_GEN_LPTIM1_OUT
1041 * @arg @ref LL_DMAMUX_REQ_GEN_LPTIM2_OUT
1042 * @retval None
1043 */
LL_DMAMUX_SetRequestSignalID(DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t RequestGenChannel,uint32_t RequestSignalID)1044 __STATIC_INLINE void LL_DMAMUX_SetRequestSignalID(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t RequestGenChannel, uint32_t RequestSignalID)
1045 {
1046 (void)(DMAMUXx);
1047 MODIFY_REG(((DMAMUX_RequestGen_TypeDef *)((uint32_t)((uint32_t)DMAMUX1_RequestGenerator0 + (DMAMUX_RGCR_SIZE * (RequestGenChannel)))))->RGCR, DMAMUX_RGxCR_SIG_ID, RequestSignalID);
1048 }
1049
1050 /**
1051 * @brief Get DMAMUX external Request Signal ID set on DMAMUX Channel x.
1052 * @rmtoll RGxCR SIG_ID LL_DMAMUX_GetRequestSignalID
1053 * @param DMAMUXx DMAMUXx Instance
1054 * @param RequestGenChannel This parameter can be one of the following values:
1055 * @arg @ref LL_DMAMUX_REQ_GEN_0
1056 * @arg @ref LL_DMAMUX_REQ_GEN_1
1057 * @arg @ref LL_DMAMUX_REQ_GEN_2
1058 * @arg @ref LL_DMAMUX_REQ_GEN_3
1059 * @retval Returned value can be one of the following values:
1060 * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE0
1061 * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE1
1062 * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE2
1063 * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE3
1064 * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE4
1065 * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE5
1066 * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE6
1067 * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE7
1068 * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE8
1069 * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE9
1070 * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE10
1071 * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE11
1072 * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE12
1073 * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE13
1074 * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE14
1075 * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE15
1076 * @arg @ref LL_DMAMUX_REQ_GEN_DMAMUX_CH0
1077 * @arg @ref LL_DMAMUX_REQ_GEN_DMAMUX_CH1
1078 * @arg @ref LL_DMAMUX_REQ_GEN_LPTIM1_OUT
1079 * @arg @ref LL_DMAMUX_REQ_GEN_LPTIM2_OUT
1080 */
LL_DMAMUX_GetRequestSignalID(DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t RequestGenChannel)1081 __STATIC_INLINE uint32_t LL_DMAMUX_GetRequestSignalID(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t RequestGenChannel)
1082 {
1083 (void)(DMAMUXx);
1084 return (uint32_t)(READ_BIT(((DMAMUX_RequestGen_TypeDef *)((uint32_t)((uint32_t)DMAMUX1_RequestGenerator0 + (DMAMUX_RGCR_SIZE * (RequestGenChannel)))))->RGCR, DMAMUX_RGxCR_SIG_ID));
1085 }
1086
1087 /**
1088 * @}
1089 */
1090
1091 /** @defgroup DMAMUX_LL_EF_FLAG_Management FLAG_Management
1092 * @{
1093 */
1094
1095 /**
1096 * @brief Get Synchronization Event Overrun Flag Channel 0.
1097 * @rmtoll CSR SOF0 LL_DMAMUX_IsActiveFlag_SO0
1098 * @param DMAMUXx DMAMUXx DMAMUXx Instance
1099 * @retval State of bit (1 or 0).
1100 */
LL_DMAMUX_IsActiveFlag_SO0(DMAMUX_Channel_TypeDef * DMAMUXx)1101 __STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_SO0(DMAMUX_Channel_TypeDef *DMAMUXx)
1102 {
1103 (void)(DMAMUXx);
1104 return ((READ_BIT(DMAMUX1_ChannelStatus->CSR, DMAMUX_CSR_SOF0) == (DMAMUX_CSR_SOF0)) ? 1UL : 0UL);
1105 }
1106
1107 /**
1108 * @brief Get Synchronization Event Overrun Flag Channel 1.
1109 * @rmtoll CSR SOF1 LL_DMAMUX_IsActiveFlag_SO1
1110 * @param DMAMUXx DMAMUXx DMAMUXx Instance
1111 * @retval State of bit (1 or 0).
1112 */
LL_DMAMUX_IsActiveFlag_SO1(DMAMUX_Channel_TypeDef * DMAMUXx)1113 __STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_SO1(DMAMUX_Channel_TypeDef *DMAMUXx)
1114 {
1115 (void)(DMAMUXx);
1116 return ((READ_BIT(DMAMUX1_ChannelStatus->CSR, DMAMUX_CSR_SOF1) == (DMAMUX_CSR_SOF1)) ? 1UL : 0UL);
1117 }
1118
1119 /**
1120 * @brief Get Synchronization Event Overrun Flag Channel 2.
1121 * @rmtoll CSR SOF2 LL_DMAMUX_IsActiveFlag_SO2
1122 * @param DMAMUXx DMAMUXx DMAMUXx Instance
1123 * @retval State of bit (1 or 0).
1124 */
LL_DMAMUX_IsActiveFlag_SO2(DMAMUX_Channel_TypeDef * DMAMUXx)1125 __STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_SO2(DMAMUX_Channel_TypeDef *DMAMUXx)
1126 {
1127 (void)(DMAMUXx);
1128 return ((READ_BIT(DMAMUX1_ChannelStatus->CSR, DMAMUX_CSR_SOF2) == (DMAMUX_CSR_SOF2)) ? 1UL : 0UL);
1129 }
1130
1131 /**
1132 * @brief Get Synchronization Event Overrun Flag Channel 3.
1133 * @rmtoll CSR SOF3 LL_DMAMUX_IsActiveFlag_SO3
1134 * @param DMAMUXx DMAMUXx DMAMUXx Instance
1135 * @retval State of bit (1 or 0).
1136 */
LL_DMAMUX_IsActiveFlag_SO3(DMAMUX_Channel_TypeDef * DMAMUXx)1137 __STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_SO3(DMAMUX_Channel_TypeDef *DMAMUXx)
1138 {
1139 (void)(DMAMUXx);
1140 return ((READ_BIT(DMAMUX1_ChannelStatus->CSR, DMAMUX_CSR_SOF3) == (DMAMUX_CSR_SOF3)) ? 1UL : 0UL);
1141 }
1142
1143 /**
1144 * @brief Get Synchronization Event Overrun Flag Channel 4.
1145 * @rmtoll CSR SOF4 LL_DMAMUX_IsActiveFlag_SO4
1146 * @param DMAMUXx DMAMUXx DMAMUXx Instance
1147 * @retval State of bit (1 or 0).
1148 */
LL_DMAMUX_IsActiveFlag_SO4(DMAMUX_Channel_TypeDef * DMAMUXx)1149 __STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_SO4(DMAMUX_Channel_TypeDef *DMAMUXx)
1150 {
1151 (void)(DMAMUXx);
1152 return ((READ_BIT(DMAMUX1_ChannelStatus->CSR, DMAMUX_CSR_SOF4) == (DMAMUX_CSR_SOF4)) ? 1UL : 0UL);
1153 }
1154
1155 /**
1156 * @brief Get Synchronization Event Overrun Flag Channel 5.
1157 * @rmtoll CSR SOF5 LL_DMAMUX_IsActiveFlag_SO5
1158 * @param DMAMUXx DMAMUXx DMAMUXx Instance
1159 * @retval State of bit (1 or 0).
1160 */
LL_DMAMUX_IsActiveFlag_SO5(DMAMUX_Channel_TypeDef * DMAMUXx)1161 __STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_SO5(DMAMUX_Channel_TypeDef *DMAMUXx)
1162 {
1163 (void)(DMAMUXx);
1164 return ((READ_BIT(DMAMUX1_ChannelStatus->CSR, DMAMUX_CSR_SOF5) == (DMAMUX_CSR_SOF5)) ? 1UL : 0UL);
1165 }
1166
1167 /**
1168 * @brief Get Synchronization Event Overrun Flag Channel 6.
1169 * @rmtoll CSR SOF6 LL_DMAMUX_IsActiveFlag_SO6
1170 * @param DMAMUXx DMAMUXx DMAMUXx Instance
1171 * @retval State of bit (1 or 0).
1172 */
LL_DMAMUX_IsActiveFlag_SO6(DMAMUX_Channel_TypeDef * DMAMUXx)1173 __STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_SO6(DMAMUX_Channel_TypeDef *DMAMUXx)
1174 {
1175 (void)(DMAMUXx);
1176 return ((READ_BIT(DMAMUX1_ChannelStatus->CSR, DMAMUX_CSR_SOF6) == (DMAMUX_CSR_SOF6)) ? 1UL : 0UL);
1177 }
1178
1179 /**
1180 * @brief Get Synchronization Event Overrun Flag Channel 7.
1181 * @rmtoll CSR SOF7 LL_DMAMUX_IsActiveFlag_SO7
1182 * @param DMAMUXx DMAMUXx DMAMUXx Instance
1183 * @retval State of bit (1 or 0).
1184 */
LL_DMAMUX_IsActiveFlag_SO7(DMAMUX_Channel_TypeDef * DMAMUXx)1185 __STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_SO7(DMAMUX_Channel_TypeDef *DMAMUXx)
1186 {
1187 (void)(DMAMUXx);
1188 return ((READ_BIT(DMAMUX1_ChannelStatus->CSR, DMAMUX_CSR_SOF7) == (DMAMUX_CSR_SOF7)) ? 1UL : 0UL);
1189 }
1190
1191 /**
1192 * @brief Get Synchronization Event Overrun Flag Channel 8.
1193 * @rmtoll CSR SOF8 LL_DMAMUX_IsActiveFlag_SO8
1194 * @param DMAMUXx DMAMUXx DMAMUXx Instance
1195 * @retval State of bit (1 or 0).
1196 */
LL_DMAMUX_IsActiveFlag_SO8(DMAMUX_Channel_TypeDef * DMAMUXx)1197 __STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_SO8(DMAMUX_Channel_TypeDef *DMAMUXx)
1198 {
1199 (void)(DMAMUXx);
1200 return ((READ_BIT(DMAMUX1_ChannelStatus->CSR, DMAMUX_CSR_SOF8) == (DMAMUX_CSR_SOF8)) ? 1UL : 0UL);
1201 }
1202
1203 /**
1204 * @brief Get Synchronization Event Overrun Flag Channel 9.
1205 * @rmtoll CSR SOF9 LL_DMAMUX_IsActiveFlag_SO9
1206 * @param DMAMUXx DMAMUXx DMAMUXx Instance
1207 * @retval State of bit (1 or 0).
1208 */
LL_DMAMUX_IsActiveFlag_SO9(DMAMUX_Channel_TypeDef * DMAMUXx)1209 __STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_SO9(DMAMUX_Channel_TypeDef *DMAMUXx)
1210 {
1211 (void)(DMAMUXx);
1212 return ((READ_BIT(DMAMUX1_ChannelStatus->CSR, DMAMUX_CSR_SOF9) == (DMAMUX_CSR_SOF9)) ? 1UL : 0UL);
1213 }
1214
1215 /**
1216 * @brief Get Synchronization Event Overrun Flag Channel 10.
1217 * @rmtoll CSR SOF10 LL_DMAMUX_IsActiveFlag_SO10
1218 * @param DMAMUXx DMAMUXx DMAMUXx Instance
1219 * @retval State of bit (1 or 0).
1220 */
LL_DMAMUX_IsActiveFlag_SO10(DMAMUX_Channel_TypeDef * DMAMUXx)1221 __STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_SO10(DMAMUX_Channel_TypeDef *DMAMUXx)
1222 {
1223 (void)(DMAMUXx);
1224 return ((READ_BIT(DMAMUX1_ChannelStatus->CSR, DMAMUX_CSR_SOF10) == (DMAMUX_CSR_SOF10)) ? 1UL : 0UL);
1225 }
1226
1227 /**
1228 * @brief Get Synchronization Event Overrun Flag Channel 11.
1229 * @rmtoll CSR SOF11 LL_DMAMUX_IsActiveFlag_SO11
1230 * @param DMAMUXx DMAMUXx DMAMUXx Instance
1231 * @retval State of bit (1 or 0).
1232 */
LL_DMAMUX_IsActiveFlag_SO11(DMAMUX_Channel_TypeDef * DMAMUXx)1233 __STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_SO11(DMAMUX_Channel_TypeDef *DMAMUXx)
1234 {
1235 (void)(DMAMUXx);
1236 return ((READ_BIT(DMAMUX1_ChannelStatus->CSR, DMAMUX_CSR_SOF11) == (DMAMUX_CSR_SOF11)) ? 1UL : 0UL);
1237 }
1238
1239 /**
1240 * @brief Get Synchronization Event Overrun Flag Channel 12.
1241 * @rmtoll CSR SOF12 LL_DMAMUX_IsActiveFlag_SO12
1242 * @param DMAMUXx DMAMUXx DMAMUXx Instance
1243 * @retval State of bit (1 or 0).
1244 */
LL_DMAMUX_IsActiveFlag_SO12(DMAMUX_Channel_TypeDef * DMAMUXx)1245 __STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_SO12(DMAMUX_Channel_TypeDef *DMAMUXx)
1246 {
1247 (void)(DMAMUXx);
1248 return ((READ_BIT(DMAMUX1_ChannelStatus->CSR, DMAMUX_CSR_SOF12) == (DMAMUX_CSR_SOF12)) ? 1UL : 0UL);
1249 }
1250
1251 /**
1252 * @brief Get Synchronization Event Overrun Flag Channel 13.
1253 * @rmtoll CSR SOF13 LL_DMAMUX_IsActiveFlag_SO13
1254 * @param DMAMUXx DMAMUXx DMAMUXx Instance
1255 * @retval State of bit (1 or 0).
1256 */
LL_DMAMUX_IsActiveFlag_SO13(DMAMUX_Channel_TypeDef * DMAMUXx)1257 __STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_SO13(DMAMUX_Channel_TypeDef *DMAMUXx)
1258 {
1259 (void)(DMAMUXx);
1260 return ((READ_BIT(DMAMUX1_ChannelStatus->CSR, DMAMUX_CSR_SOF13) == (DMAMUX_CSR_SOF13)) ? 1UL : 0UL);
1261 }
1262
1263 /**
1264 * @brief Get Request Generator 0 Trigger Event Overrun Flag.
1265 * @rmtoll RGSR OF0 LL_DMAMUX_IsActiveFlag_RGO0
1266 * @param DMAMUXx DMAMUXx DMAMUXx Instance
1267 * @retval State of bit (1 or 0).
1268 */
LL_DMAMUX_IsActiveFlag_RGO0(DMAMUX_Channel_TypeDef * DMAMUXx)1269 __STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_RGO0(DMAMUX_Channel_TypeDef *DMAMUXx)
1270 {
1271 (void)(DMAMUXx);
1272 return ((READ_BIT(DMAMUX1_RequestGenStatus->RGSR, DMAMUX_RGSR_OF0) == (DMAMUX_RGSR_OF0)) ? 1UL : 0UL);
1273 }
1274
1275 /**
1276 * @brief Get Request Generator 1 Trigger Event Overrun Flag.
1277 * @rmtoll RGSR OF1 LL_DMAMUX_IsActiveFlag_RGO1
1278 * @param DMAMUXx DMAMUXx DMAMUXx Instance
1279 * @retval State of bit (1 or 0).
1280 */
LL_DMAMUX_IsActiveFlag_RGO1(DMAMUX_Channel_TypeDef * DMAMUXx)1281 __STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_RGO1(DMAMUX_Channel_TypeDef *DMAMUXx)
1282 {
1283 (void)(DMAMUXx);
1284 return ((READ_BIT(DMAMUX1_RequestGenStatus->RGSR, DMAMUX_RGSR_OF1) == (DMAMUX_RGSR_OF1)) ? 1UL : 0UL);
1285 }
1286
1287 /**
1288 * @brief Get Request Generator 2 Trigger Event Overrun Flag.
1289 * @rmtoll RGSR OF2 LL_DMAMUX_IsActiveFlag_RGO2
1290 * @param DMAMUXx DMAMUXx DMAMUXx Instance
1291 * @retval State of bit (1 or 0).
1292 */
LL_DMAMUX_IsActiveFlag_RGO2(DMAMUX_Channel_TypeDef * DMAMUXx)1293 __STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_RGO2(DMAMUX_Channel_TypeDef *DMAMUXx)
1294 {
1295 (void)(DMAMUXx);
1296 return ((READ_BIT(DMAMUX1_RequestGenStatus->RGSR, DMAMUX_RGSR_OF2) == (DMAMUX_RGSR_OF2)) ? 1UL : 0UL);
1297 }
1298
1299 /**
1300 * @brief Get Request Generator 3 Trigger Event Overrun Flag.
1301 * @rmtoll RGSR OF3 LL_DMAMUX_IsActiveFlag_RGO3
1302 * @param DMAMUXx DMAMUXx DMAMUXx Instance
1303 * @retval State of bit (1 or 0).
1304 */
LL_DMAMUX_IsActiveFlag_RGO3(DMAMUX_Channel_TypeDef * DMAMUXx)1305 __STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_RGO3(DMAMUX_Channel_TypeDef *DMAMUXx)
1306 {
1307 (void)(DMAMUXx);
1308 return ((READ_BIT(DMAMUX1_RequestGenStatus->RGSR, DMAMUX_RGSR_OF3) == (DMAMUX_RGSR_OF3)) ? 1UL : 0UL);
1309 }
1310
1311 /**
1312 * @brief Clear Synchronization Event Overrun Flag Channel 0.
1313 * @rmtoll CFR CSOF0 LL_DMAMUX_ClearFlag_SO0
1314 * @param DMAMUXx DMAMUXx DMAMUXx Instance
1315 * @retval None
1316 */
LL_DMAMUX_ClearFlag_SO0(DMAMUX_Channel_TypeDef * DMAMUXx)1317 __STATIC_INLINE void LL_DMAMUX_ClearFlag_SO0(DMAMUX_Channel_TypeDef *DMAMUXx)
1318 {
1319 (void)(DMAMUXx);
1320 SET_BIT(DMAMUX1_ChannelStatus->CFR, DMAMUX_CFR_CSOF0);
1321 }
1322
1323 /**
1324 * @brief Clear Synchronization Event Overrun Flag Channel 1.
1325 * @rmtoll CFR CSOF1 LL_DMAMUX_ClearFlag_SO1
1326 * @param DMAMUXx DMAMUXx DMAMUXx Instance
1327 * @retval None
1328 */
LL_DMAMUX_ClearFlag_SO1(DMAMUX_Channel_TypeDef * DMAMUXx)1329 __STATIC_INLINE void LL_DMAMUX_ClearFlag_SO1(DMAMUX_Channel_TypeDef *DMAMUXx)
1330 {
1331 (void)(DMAMUXx);
1332 SET_BIT(DMAMUX1_ChannelStatus->CFR, DMAMUX_CFR_CSOF1);
1333 }
1334
1335 /**
1336 * @brief Clear Synchronization Event Overrun Flag Channel 2.
1337 * @rmtoll CFR CSOF2 LL_DMAMUX_ClearFlag_SO2
1338 * @param DMAMUXx DMAMUXx DMAMUXx Instance
1339 * @retval None
1340 */
LL_DMAMUX_ClearFlag_SO2(DMAMUX_Channel_TypeDef * DMAMUXx)1341 __STATIC_INLINE void LL_DMAMUX_ClearFlag_SO2(DMAMUX_Channel_TypeDef *DMAMUXx)
1342 {
1343 (void)(DMAMUXx);
1344 SET_BIT(DMAMUX1_ChannelStatus->CFR, DMAMUX_CFR_CSOF2);
1345 }
1346
1347 /**
1348 * @brief Clear Synchronization Event Overrun Flag Channel 3.
1349 * @rmtoll CFR CSOF3 LL_DMAMUX_ClearFlag_SO3
1350 * @param DMAMUXx DMAMUXx DMAMUXx Instance
1351 * @retval None
1352 */
LL_DMAMUX_ClearFlag_SO3(DMAMUX_Channel_TypeDef * DMAMUXx)1353 __STATIC_INLINE void LL_DMAMUX_ClearFlag_SO3(DMAMUX_Channel_TypeDef *DMAMUXx)
1354 {
1355 (void)(DMAMUXx);
1356 SET_BIT(DMAMUX1_ChannelStatus->CFR, DMAMUX_CFR_CSOF3);
1357 }
1358
1359 /**
1360 * @brief Clear Synchronization Event Overrun Flag Channel 4.
1361 * @rmtoll CFR CSOF4 LL_DMAMUX_ClearFlag_SO4
1362 * @param DMAMUXx DMAMUXx DMAMUXx Instance
1363 * @retval None
1364 */
LL_DMAMUX_ClearFlag_SO4(DMAMUX_Channel_TypeDef * DMAMUXx)1365 __STATIC_INLINE void LL_DMAMUX_ClearFlag_SO4(DMAMUX_Channel_TypeDef *DMAMUXx)
1366 {
1367 (void)(DMAMUXx);
1368 SET_BIT(DMAMUX1_ChannelStatus->CFR, DMAMUX_CFR_CSOF4);
1369 }
1370
1371 /**
1372 * @brief Clear Synchronization Event Overrun Flag Channel 5.
1373 * @rmtoll CFR CSOF5 LL_DMAMUX_ClearFlag_SO5
1374 * @param DMAMUXx DMAMUXx DMAMUXx Instance
1375 * @retval None
1376 */
LL_DMAMUX_ClearFlag_SO5(DMAMUX_Channel_TypeDef * DMAMUXx)1377 __STATIC_INLINE void LL_DMAMUX_ClearFlag_SO5(DMAMUX_Channel_TypeDef *DMAMUXx)
1378 {
1379 (void)(DMAMUXx);
1380 SET_BIT(DMAMUX1_ChannelStatus->CFR, DMAMUX_CFR_CSOF5);
1381 }
1382
1383 /**
1384 * @brief Clear Synchronization Event Overrun Flag Channel 6.
1385 * @rmtoll CFR CSOF6 LL_DMAMUX_ClearFlag_SO6
1386 * @param DMAMUXx DMAMUXx DMAMUXx Instance
1387 * @retval None
1388 */
LL_DMAMUX_ClearFlag_SO6(DMAMUX_Channel_TypeDef * DMAMUXx)1389 __STATIC_INLINE void LL_DMAMUX_ClearFlag_SO6(DMAMUX_Channel_TypeDef *DMAMUXx)
1390 {
1391 (void)(DMAMUXx);
1392 SET_BIT(DMAMUX1_ChannelStatus->CFR, DMAMUX_CFR_CSOF6);
1393 }
1394
1395 /**
1396 * @brief Clear Synchronization Event Overrun Flag Channel 7.
1397 * @rmtoll CFR CSOF7 LL_DMAMUX_ClearFlag_SO7
1398 * @param DMAMUXx DMAMUXx DMAMUXx Instance
1399 * @retval None
1400 */
LL_DMAMUX_ClearFlag_SO7(DMAMUX_Channel_TypeDef * DMAMUXx)1401 __STATIC_INLINE void LL_DMAMUX_ClearFlag_SO7(DMAMUX_Channel_TypeDef *DMAMUXx)
1402 {
1403 (void)(DMAMUXx);
1404 SET_BIT(DMAMUX1_ChannelStatus->CFR, DMAMUX_CFR_CSOF7);
1405 }
1406
1407 /**
1408 * @brief Clear Synchronization Event Overrun Flag Channel 8.
1409 * @rmtoll CFR CSOF8 LL_DMAMUX_ClearFlag_SO8
1410 * @param DMAMUXx DMAMUXx DMAMUXx Instance
1411 * @retval None
1412 */
LL_DMAMUX_ClearFlag_SO8(DMAMUX_Channel_TypeDef * DMAMUXx)1413 __STATIC_INLINE void LL_DMAMUX_ClearFlag_SO8(DMAMUX_Channel_TypeDef *DMAMUXx)
1414 {
1415 (void)(DMAMUXx);
1416 SET_BIT(DMAMUX1_ChannelStatus->CFR, DMAMUX_CFR_CSOF8);
1417 }
1418
1419 /**
1420 * @brief Clear Synchronization Event Overrun Flag Channel 9.
1421 * @rmtoll CFR CSOF9 LL_DMAMUX_ClearFlag_SO9
1422 * @param DMAMUXx DMAMUXx DMAMUXx Instance
1423 * @retval None
1424 */
LL_DMAMUX_ClearFlag_SO9(DMAMUX_Channel_TypeDef * DMAMUXx)1425 __STATIC_INLINE void LL_DMAMUX_ClearFlag_SO9(DMAMUX_Channel_TypeDef *DMAMUXx)
1426 {
1427 (void)(DMAMUXx);
1428 SET_BIT(DMAMUX1_ChannelStatus->CFR, DMAMUX_CFR_CSOF9);
1429 }
1430
1431 /**
1432 * @brief Clear Synchronization Event Overrun Flag Channel 10.
1433 * @rmtoll CFR CSOF10 LL_DMAMUX_ClearFlag_SO10
1434 * @param DMAMUXx DMAMUXx DMAMUXx Instance
1435 * @retval None
1436 */
LL_DMAMUX_ClearFlag_SO10(DMAMUX_Channel_TypeDef * DMAMUXx)1437 __STATIC_INLINE void LL_DMAMUX_ClearFlag_SO10(DMAMUX_Channel_TypeDef *DMAMUXx)
1438 {
1439 (void)(DMAMUXx);
1440 SET_BIT(DMAMUX1_ChannelStatus->CFR, DMAMUX_CFR_CSOF10);
1441 }
1442
1443 /**
1444 * @brief Clear Synchronization Event Overrun Flag Channel 11.
1445 * @rmtoll CFR CSOF11 LL_DMAMUX_ClearFlag_SO11
1446 * @param DMAMUXx DMAMUXx DMAMUXx Instance
1447 * @retval None
1448 */
LL_DMAMUX_ClearFlag_SO11(DMAMUX_Channel_TypeDef * DMAMUXx)1449 __STATIC_INLINE void LL_DMAMUX_ClearFlag_SO11(DMAMUX_Channel_TypeDef *DMAMUXx)
1450 {
1451 (void)(DMAMUXx);
1452 SET_BIT(DMAMUX1_ChannelStatus->CFR, DMAMUX_CFR_CSOF11);
1453 }
1454
1455 /**
1456 * @brief Clear Synchronization Event Overrun Flag Channel 12.
1457 * @rmtoll CFR CSOF12 LL_DMAMUX_ClearFlag_SO12
1458 * @param DMAMUXx DMAMUXx DMAMUXx Instance
1459 * @retval None
1460 */
LL_DMAMUX_ClearFlag_SO12(DMAMUX_Channel_TypeDef * DMAMUXx)1461 __STATIC_INLINE void LL_DMAMUX_ClearFlag_SO12(DMAMUX_Channel_TypeDef *DMAMUXx)
1462 {
1463 (void)(DMAMUXx);
1464 SET_BIT(DMAMUX1_ChannelStatus->CFR, DMAMUX_CFR_CSOF12);
1465 }
1466
1467 /**
1468 * @brief Clear Synchronization Event Overrun Flag Channel 13.
1469 * @rmtoll CFR CSOF13 LL_DMAMUX_ClearFlag_SO13
1470 * @param DMAMUXx DMAMUXx DMAMUXx Instance
1471 * @retval None
1472 */
LL_DMAMUX_ClearFlag_SO13(DMAMUX_Channel_TypeDef * DMAMUXx)1473 __STATIC_INLINE void LL_DMAMUX_ClearFlag_SO13(DMAMUX_Channel_TypeDef *DMAMUXx)
1474 {
1475 (void)(DMAMUXx);
1476 SET_BIT(DMAMUX1_ChannelStatus->CFR, DMAMUX_CFR_CSOF13);
1477 }
1478
1479 /**
1480 * @brief Clear Request Generator 0 Trigger Event Overrun Flag.
1481 * @rmtoll RGCFR COF0 LL_DMAMUX_ClearFlag_RGO0
1482 * @param DMAMUXx DMAMUXx DMAMUXx Instance
1483 * @retval None
1484 */
LL_DMAMUX_ClearFlag_RGO0(DMAMUX_Channel_TypeDef * DMAMUXx)1485 __STATIC_INLINE void LL_DMAMUX_ClearFlag_RGO0(DMAMUX_Channel_TypeDef *DMAMUXx)
1486 {
1487 (void)(DMAMUXx);
1488 SET_BIT(DMAMUX1_RequestGenStatus->RGCFR, DMAMUX_RGCFR_COF0);
1489 }
1490
1491 /**
1492 * @brief Clear Request Generator 1 Trigger Event Overrun Flag.
1493 * @rmtoll RGCFR COF1 LL_DMAMUX_ClearFlag_RGO1
1494 * @param DMAMUXx DMAMUXx DMAMUXx Instance
1495 * @retval None
1496 */
LL_DMAMUX_ClearFlag_RGO1(DMAMUX_Channel_TypeDef * DMAMUXx)1497 __STATIC_INLINE void LL_DMAMUX_ClearFlag_RGO1(DMAMUX_Channel_TypeDef *DMAMUXx)
1498 {
1499 (void)(DMAMUXx);
1500 SET_BIT(DMAMUX1_RequestGenStatus->RGCFR, DMAMUX_RGCFR_COF1);
1501 }
1502
1503 /**
1504 * @brief Clear Request Generator 2 Trigger Event Overrun Flag.
1505 * @rmtoll RGCFR COF2 LL_DMAMUX_ClearFlag_RGO2
1506 * @param DMAMUXx DMAMUXx DMAMUXx Instance
1507 * @retval None
1508 */
LL_DMAMUX_ClearFlag_RGO2(DMAMUX_Channel_TypeDef * DMAMUXx)1509 __STATIC_INLINE void LL_DMAMUX_ClearFlag_RGO2(DMAMUX_Channel_TypeDef *DMAMUXx)
1510 {
1511 (void)(DMAMUXx);
1512 SET_BIT(DMAMUX1_RequestGenStatus->RGCFR, DMAMUX_RGCFR_COF2);
1513 }
1514
1515 /**
1516 * @brief Clear Request Generator 3 Trigger Event Overrun Flag.
1517 * @rmtoll RGCFR COF3 LL_DMAMUX_ClearFlag_RGO3
1518 * @param DMAMUXx DMAMUXx DMAMUXx Instance
1519 * @retval None
1520 */
LL_DMAMUX_ClearFlag_RGO3(DMAMUX_Channel_TypeDef * DMAMUXx)1521 __STATIC_INLINE void LL_DMAMUX_ClearFlag_RGO3(DMAMUX_Channel_TypeDef *DMAMUXx)
1522 {
1523 (void)(DMAMUXx);
1524 SET_BIT(DMAMUX1_RequestGenStatus->RGCFR, DMAMUX_RGCFR_COF3);
1525 }
1526
1527 /**
1528 * @}
1529 */
1530
1531 /** @defgroup DMAMUX_LL_EF_IT_Management IT_Management
1532 * @{
1533 */
1534
1535 /**
1536 * @brief Enable the Synchronization Event Overrun Interrupt on DMAMUX channel x.
1537 * @rmtoll CxCR SOIE LL_DMAMUX_EnableIT_SO
1538 * @param DMAMUXx DMAMUXx Instance
1539 * @param Channel This parameter can be one of the following values:
1540 * @arg @ref LL_DMAMUX_CHANNEL_0
1541 * @arg @ref LL_DMAMUX_CHANNEL_1
1542 * @arg @ref LL_DMAMUX_CHANNEL_2
1543 * @arg @ref LL_DMAMUX_CHANNEL_3
1544 * @arg @ref LL_DMAMUX_CHANNEL_4
1545 * @arg @ref LL_DMAMUX_CHANNEL_5
1546 * @arg @ref LL_DMAMUX_CHANNEL_6
1547 #if defined(DMA2)
1548 * @arg @ref LL_DMAMUX_CHANNEL_7
1549 * @arg @ref LL_DMAMUX_CHANNEL_8
1550 * @arg @ref LL_DMAMUX_CHANNEL_9
1551 * @arg @ref LL_DMAMUX_CHANNEL_10
1552 * @arg @ref LL_DMAMUX_CHANNEL_11
1553 * @arg @ref LL_DMAMUX_CHANNEL_12
1554 * @arg @ref LL_DMAMUX_CHANNEL_13
1555 #endif
1556 * @retval None
1557 */
LL_DMAMUX_EnableIT_SO(DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t Channel)1558 __STATIC_INLINE void LL_DMAMUX_EnableIT_SO(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel)
1559 {
1560 (void)(DMAMUXx);
1561 SET_BIT((DMAMUX1_Channel0 + Channel)->CCR, DMAMUX_CxCR_SOIE);
1562 }
1563
1564 /**
1565 * @brief Disable the Synchronization Event Overrun Interrupt on DMAMUX channel x.
1566 * @rmtoll CxCR SOIE LL_DMAMUX_DisableIT_SO
1567 * @param DMAMUXx DMAMUXx Instance
1568 * @param Channel This parameter can be one of the following values:
1569 * @arg @ref LL_DMAMUX_CHANNEL_0
1570 * @arg @ref LL_DMAMUX_CHANNEL_1
1571 * @arg @ref LL_DMAMUX_CHANNEL_2
1572 * @arg @ref LL_DMAMUX_CHANNEL_3
1573 * @arg @ref LL_DMAMUX_CHANNEL_4
1574 * @arg @ref LL_DMAMUX_CHANNEL_5
1575 * @arg @ref LL_DMAMUX_CHANNEL_6
1576 #if defined(DMA2)
1577 * @arg @ref LL_DMAMUX_CHANNEL_7
1578 * @arg @ref LL_DMAMUX_CHANNEL_8
1579 * @arg @ref LL_DMAMUX_CHANNEL_9
1580 * @arg @ref LL_DMAMUX_CHANNEL_10
1581 * @arg @ref LL_DMAMUX_CHANNEL_11
1582 * @arg @ref LL_DMAMUX_CHANNEL_12
1583 * @arg @ref LL_DMAMUX_CHANNEL_13
1584 #endif
1585 * @retval None
1586 */
LL_DMAMUX_DisableIT_SO(DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t Channel)1587 __STATIC_INLINE void LL_DMAMUX_DisableIT_SO(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel)
1588 {
1589 (void)(DMAMUXx);
1590 CLEAR_BIT((DMAMUX1_Channel0 + Channel)->CCR, DMAMUX_CxCR_SOIE);
1591 }
1592
1593 /**
1594 * @brief Check if the Synchronization Event Overrun Interrupt on DMAMUX channel x is enabled or disabled.
1595 * @rmtoll CxCR SOIE LL_DMAMUX_IsEnabledIT_SO
1596 * @param DMAMUXx DMAMUXx Instance
1597 * @param Channel This parameter can be one of the following values:
1598 * @arg @ref LL_DMAMUX_CHANNEL_0
1599 * @arg @ref LL_DMAMUX_CHANNEL_1
1600 * @arg @ref LL_DMAMUX_CHANNEL_2
1601 * @arg @ref LL_DMAMUX_CHANNEL_3
1602 * @arg @ref LL_DMAMUX_CHANNEL_4
1603 * @arg @ref LL_DMAMUX_CHANNEL_5
1604 * @arg @ref LL_DMAMUX_CHANNEL_6
1605 #if defined(DMA2)
1606 * @arg @ref LL_DMAMUX_CHANNEL_7
1607 * @arg @ref LL_DMAMUX_CHANNEL_8
1608 * @arg @ref LL_DMAMUX_CHANNEL_9
1609 * @arg @ref LL_DMAMUX_CHANNEL_10
1610 * @arg @ref LL_DMAMUX_CHANNEL_11
1611 * @arg @ref LL_DMAMUX_CHANNEL_12
1612 * @arg @ref LL_DMAMUX_CHANNEL_13
1613 #endif
1614 * @retval State of bit (1 or 0).
1615 */
LL_DMAMUX_IsEnabledIT_SO(DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t Channel)1616 __STATIC_INLINE uint32_t LL_DMAMUX_IsEnabledIT_SO(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel)
1617 {
1618 (void)(DMAMUXx);
1619 return (((READ_BIT((DMAMUX1_Channel0 + Channel)->CCR, DMAMUX_CxCR_SOIE)) == (DMAMUX_CxCR_SOIE))? 1UL : 0UL);
1620 }
1621
1622 /**
1623 * @brief Enable the Request Generation Trigger Event Overrun Interrupt on DMAMUX channel x.
1624 * @rmtoll RGxCR OIE LL_DMAMUX_EnableIT_RGO
1625 * @param DMAMUXx DMAMUXx Instance
1626 * @param RequestGenChannel This parameter can be one of the following values:
1627 * @arg @ref LL_DMAMUX_REQ_GEN_0
1628 * @arg @ref LL_DMAMUX_REQ_GEN_1
1629 * @arg @ref LL_DMAMUX_REQ_GEN_2
1630 * @arg @ref LL_DMAMUX_REQ_GEN_3
1631 * @retval None
1632 */
LL_DMAMUX_EnableIT_RGO(DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t RequestGenChannel)1633 __STATIC_INLINE void LL_DMAMUX_EnableIT_RGO(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t RequestGenChannel)
1634 {
1635 (void)(DMAMUXx);
1636 SET_BIT((DMAMUX1_RequestGenerator0 + RequestGenChannel)->RGCR, DMAMUX_RGxCR_OIE);
1637 }
1638
1639 /**
1640 * @brief Disable the Request Generation Trigger Event Overrun Interrupt on DMAMUX channel x.
1641 * @rmtoll RGxCR OIE LL_DMAMUX_DisableIT_RGO
1642 * @param DMAMUXx DMAMUXx Instance
1643 * @param RequestGenChannel This parameter can be one of the following values:
1644 * @arg @ref LL_DMAMUX_REQ_GEN_0
1645 * @arg @ref LL_DMAMUX_REQ_GEN_1
1646 * @arg @ref LL_DMAMUX_REQ_GEN_2
1647 * @arg @ref LL_DMAMUX_REQ_GEN_3
1648 * @retval None
1649 */
LL_DMAMUX_DisableIT_RGO(DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t RequestGenChannel)1650 __STATIC_INLINE void LL_DMAMUX_DisableIT_RGO(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t RequestGenChannel)
1651 {
1652 (void)(DMAMUXx);
1653 CLEAR_BIT((DMAMUX1_RequestGenerator0 + RequestGenChannel)->RGCR, DMAMUX_RGxCR_OIE);
1654 }
1655
1656 /**
1657 * @brief Check if the Request Generation Trigger Event Overrun Interrupt on DMAMUX channel x is enabled or disabled.
1658 * @rmtoll RGxCR OIE LL_DMAMUX_IsEnabledIT_RGO
1659 * @param DMAMUXx DMAMUXx Instance
1660 * @param RequestGenChannel This parameter can be one of the following values:
1661 * @arg @ref LL_DMAMUX_REQ_GEN_0
1662 * @arg @ref LL_DMAMUX_REQ_GEN_1
1663 * @arg @ref LL_DMAMUX_REQ_GEN_2
1664 * @arg @ref LL_DMAMUX_REQ_GEN_3
1665 * @retval State of bit (1 or 0).
1666 */
LL_DMAMUX_IsEnabledIT_RGO(DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t RequestGenChannel)1667 __STATIC_INLINE uint32_t LL_DMAMUX_IsEnabledIT_RGO(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t RequestGenChannel)
1668 {
1669 (void)(DMAMUXx);
1670 return ((READ_BIT((DMAMUX1_RequestGenerator0 + RequestGenChannel)->RGCR, DMAMUX_RGxCR_OIE) == (DMAMUX_RGxCR_OIE))? 1UL : 0UL);
1671 }
1672
1673 /**
1674 * @}
1675 */
1676
1677 /**
1678 * @}
1679 */
1680
1681 /**
1682 * @}
1683 */
1684
1685 #endif /* DMAMUX1 */
1686
1687 /**
1688 * @}
1689 */
1690
1691 #ifdef __cplusplus
1692 }
1693 #endif
1694
1695 #endif /* STM32WBxx_LL_DMAMUX_H */
1696
1697 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
1698