You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

1760 lines
78 KiB

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