stm32l5xx_ll_dmamux.h 89 KB

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