stm32f4xx_ll_bus.h 101 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124
  1. /**
  2. ******************************************************************************
  3. * @file stm32f4xx_ll_bus.h
  4. * @author MCD Application Team
  5. * @brief Header file of BUS LL module.
  6. @verbatim
  7. ##### RCC Limitations #####
  8. ==============================================================================
  9. [..]
  10. A delay between an RCC peripheral clock enable and the effective peripheral
  11. enabling should be taken into account in order to manage the peripheral read/write
  12. from/to registers.
  13. (+) This delay depends on the peripheral mapping.
  14. (++) AHB & APB peripherals, 1 dummy read is necessary
  15. [..]
  16. Workarounds:
  17. (#) For AHB & APB peripherals, a dummy read to the peripheral register has been
  18. inserted in each LL_{BUS}_GRP{x}_EnableClock() function.
  19. @endverbatim
  20. ******************************************************************************
  21. * @attention
  22. *
  23. * <h2><center>&copy; COPYRIGHT(c) 2017 STMicroelectronics</center></h2>
  24. *
  25. * Redistribution and use in source and binary forms, with or without modification,
  26. * are permitted provided that the following conditions are met:
  27. * 1. Redistributions of source code must retain the above copyright notice,
  28. * this list of conditions and the following disclaimer.
  29. * 2. Redistributions in binary form must reproduce the above copyright notice,
  30. * this list of conditions and the following disclaimer in the documentation
  31. * and/or other materials provided with the distribution.
  32. * 3. Neither the name of STMicroelectronics nor the names of its contributors
  33. * may be used to endorse or promote products derived from this software
  34. * without specific prior written permission.
  35. *
  36. * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  37. * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  38. * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  39. * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
  40. * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  41. * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
  42. * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
  43. * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  44. * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  45. * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  46. *
  47. ******************************************************************************
  48. */
  49. /* Define to prevent recursive inclusion -------------------------------------*/
  50. #ifndef __STM32F4xx_LL_BUS_H
  51. #define __STM32F4xx_LL_BUS_H
  52. #ifdef __cplusplus
  53. extern "C" {
  54. #endif
  55. /* Includes ------------------------------------------------------------------*/
  56. #include "stm32f4xx.h"
  57. /** @addtogroup STM32F4xx_LL_Driver
  58. * @{
  59. */
  60. #if defined(RCC)
  61. /** @defgroup BUS_LL BUS
  62. * @{
  63. */
  64. /* Private types -------------------------------------------------------------*/
  65. /* Private variables ---------------------------------------------------------*/
  66. /* Private constants ---------------------------------------------------------*/
  67. /* Private macros ------------------------------------------------------------*/
  68. /* Exported types ------------------------------------------------------------*/
  69. /* Exported constants --------------------------------------------------------*/
  70. /** @defgroup BUS_LL_Exported_Constants BUS Exported Constants
  71. * @{
  72. */
  73. /** @defgroup BUS_LL_EC_AHB1_GRP1_PERIPH AHB1 GRP1 PERIPH
  74. * @{
  75. */
  76. #define LL_AHB1_GRP1_PERIPH_ALL 0xFFFFFFFFU
  77. #define LL_AHB1_GRP1_PERIPH_GPIOA RCC_AHB1ENR_GPIOAEN
  78. #define LL_AHB1_GRP1_PERIPH_GPIOB RCC_AHB1ENR_GPIOBEN
  79. #define LL_AHB1_GRP1_PERIPH_GPIOC RCC_AHB1ENR_GPIOCEN
  80. #if defined(GPIOD)
  81. #define LL_AHB1_GRP1_PERIPH_GPIOD RCC_AHB1ENR_GPIODEN
  82. #endif /* GPIOD */
  83. #if defined(GPIOE)
  84. #define LL_AHB1_GRP1_PERIPH_GPIOE RCC_AHB1ENR_GPIOEEN
  85. #endif /* GPIOE */
  86. #if defined(GPIOF)
  87. #define LL_AHB1_GRP1_PERIPH_GPIOF RCC_AHB1ENR_GPIOFEN
  88. #endif /* GPIOF */
  89. #if defined(GPIOG)
  90. #define LL_AHB1_GRP1_PERIPH_GPIOG RCC_AHB1ENR_GPIOGEN
  91. #endif /* GPIOG */
  92. #if defined(GPIOH)
  93. #define LL_AHB1_GRP1_PERIPH_GPIOH RCC_AHB1ENR_GPIOHEN
  94. #endif /* GPIOH */
  95. #if defined(GPIOI)
  96. #define LL_AHB1_GRP1_PERIPH_GPIOI RCC_AHB1ENR_GPIOIEN
  97. #endif /* GPIOI */
  98. #if defined(GPIOJ)
  99. #define LL_AHB1_GRP1_PERIPH_GPIOJ RCC_AHB1ENR_GPIOJEN
  100. #endif /* GPIOJ */
  101. #if defined(GPIOK)
  102. #define LL_AHB1_GRP1_PERIPH_GPIOK RCC_AHB1ENR_GPIOKEN
  103. #endif /* GPIOK */
  104. #define LL_AHB1_GRP1_PERIPH_CRC RCC_AHB1ENR_CRCEN
  105. #if defined(RCC_AHB1ENR_BKPSRAMEN)
  106. #define LL_AHB1_GRP1_PERIPH_BKPSRAM RCC_AHB1ENR_BKPSRAMEN
  107. #endif /* RCC_AHB1ENR_BKPSRAMEN */
  108. #if defined(RCC_AHB1ENR_CCMDATARAMEN)
  109. #define LL_AHB1_GRP1_PERIPH_CCMDATARAM RCC_AHB1ENR_CCMDATARAMEN
  110. #endif /* RCC_AHB1ENR_CCMDATARAMEN */
  111. #define LL_AHB1_GRP1_PERIPH_DMA1 RCC_AHB1ENR_DMA1EN
  112. #define LL_AHB1_GRP1_PERIPH_DMA2 RCC_AHB1ENR_DMA2EN
  113. #if defined(RCC_AHB1ENR_RNGEN)
  114. #define LL_AHB1_GRP1_PERIPH_RNG RCC_AHB1ENR_RNGEN
  115. #endif /* RCC_AHB1ENR_RNGEN */
  116. #if defined(DMA2D)
  117. #define LL_AHB1_GRP1_PERIPH_DMA2D RCC_AHB1ENR_DMA2DEN
  118. #endif /* DMA2D */
  119. #if defined(ETH)
  120. #define LL_AHB1_GRP1_PERIPH_ETHMAC RCC_AHB1ENR_ETHMACEN
  121. #define LL_AHB1_GRP1_PERIPH_ETHMACTX RCC_AHB1ENR_ETHMACTXEN
  122. #define LL_AHB1_GRP1_PERIPH_ETHMACRX RCC_AHB1ENR_ETHMACRXEN
  123. #define LL_AHB1_GRP1_PERIPH_ETHMACPTP RCC_AHB1ENR_ETHMACPTPEN
  124. #endif /* ETH */
  125. #if defined(USB_OTG_HS)
  126. #define LL_AHB1_GRP1_PERIPH_OTGHS RCC_AHB1ENR_OTGHSEN
  127. #define LL_AHB1_GRP1_PERIPH_OTGHSULPI RCC_AHB1ENR_OTGHSULPIEN
  128. #endif /* USB_OTG_HS */
  129. #define LL_AHB1_GRP1_PERIPH_FLITF RCC_AHB1LPENR_FLITFLPEN
  130. #define LL_AHB1_GRP1_PERIPH_SRAM1 RCC_AHB1LPENR_SRAM1LPEN
  131. #if defined(RCC_AHB1LPENR_SRAM2LPEN)
  132. #define LL_AHB1_GRP1_PERIPH_SRAM2 RCC_AHB1LPENR_SRAM2LPEN
  133. #endif /* RCC_AHB1LPENR_SRAM2LPEN */
  134. #if defined(RCC_AHB1LPENR_SRAM3LPEN)
  135. #define LL_AHB1_GRP1_PERIPH_SRAM3 RCC_AHB1LPENR_SRAM3LPEN
  136. #endif /* RCC_AHB1LPENR_SRAM3LPEN */
  137. /**
  138. * @}
  139. */
  140. #if defined(RCC_AHB2_SUPPORT)
  141. /** @defgroup BUS_LL_EC_AHB2_GRP1_PERIPH AHB2 GRP1 PERIPH
  142. * @{
  143. */
  144. #define LL_AHB2_GRP1_PERIPH_ALL 0xFFFFFFFFU
  145. #if defined(DCMI)
  146. #define LL_AHB2_GRP1_PERIPH_DCMI RCC_AHB2ENR_DCMIEN
  147. #endif /* DCMI */
  148. #if defined(CRYP)
  149. #define LL_AHB2_GRP1_PERIPH_CRYP RCC_AHB2ENR_CRYPEN
  150. #endif /* CRYP */
  151. #if defined(AES)
  152. #define LL_AHB2_GRP1_PERIPH_AES RCC_AHB2ENR_AESEN
  153. #endif /* AES */
  154. #if defined(HASH)
  155. #define LL_AHB2_GRP1_PERIPH_HASH RCC_AHB2ENR_HASHEN
  156. #endif /* HASH */
  157. #if defined(RCC_AHB2ENR_RNGEN)
  158. #define LL_AHB2_GRP1_PERIPH_RNG RCC_AHB2ENR_RNGEN
  159. #endif /* RCC_AHB2ENR_RNGEN */
  160. #if defined(USB_OTG_FS)
  161. #define LL_AHB2_GRP1_PERIPH_OTGFS RCC_AHB2ENR_OTGFSEN
  162. #endif /* USB_OTG_FS */
  163. /**
  164. * @}
  165. */
  166. #endif /* RCC_AHB2_SUPPORT */
  167. #if defined(RCC_AHB3_SUPPORT)
  168. /** @defgroup BUS_LL_EC_AHB3_GRP1_PERIPH AHB3 GRP1 PERIPH
  169. * @{
  170. */
  171. #define LL_AHB3_GRP1_PERIPH_ALL 0xFFFFFFFFU
  172. #if defined(FSMC_Bank1)
  173. #define LL_AHB3_GRP1_PERIPH_FSMC RCC_AHB3ENR_FSMCEN
  174. #endif /* FSMC_Bank1 */
  175. #if defined(FMC_Bank1)
  176. #define LL_AHB3_GRP1_PERIPH_FMC RCC_AHB3ENR_FMCEN
  177. #endif /* FMC_Bank1 */
  178. #if defined(QUADSPI)
  179. #define LL_AHB3_GRP1_PERIPH_QSPI RCC_AHB3ENR_QSPIEN
  180. #endif /* QUADSPI */
  181. /**
  182. * @}
  183. */
  184. #endif /* RCC_AHB3_SUPPORT */
  185. /** @defgroup BUS_LL_EC_APB1_GRP1_PERIPH APB1 GRP1 PERIPH
  186. * @{
  187. */
  188. #define LL_APB1_GRP1_PERIPH_ALL 0xFFFFFFFFU
  189. #if defined(TIM2)
  190. #define LL_APB1_GRP1_PERIPH_TIM2 RCC_APB1ENR_TIM2EN
  191. #endif /* TIM2 */
  192. #if defined(TIM3)
  193. #define LL_APB1_GRP1_PERIPH_TIM3 RCC_APB1ENR_TIM3EN
  194. #endif /* TIM3 */
  195. #if defined(TIM4)
  196. #define LL_APB1_GRP1_PERIPH_TIM4 RCC_APB1ENR_TIM4EN
  197. #endif /* TIM4 */
  198. #define LL_APB1_GRP1_PERIPH_TIM5 RCC_APB1ENR_TIM5EN
  199. #if defined(TIM6)
  200. #define LL_APB1_GRP1_PERIPH_TIM6 RCC_APB1ENR_TIM6EN
  201. #endif /* TIM6 */
  202. #if defined(TIM7)
  203. #define LL_APB1_GRP1_PERIPH_TIM7 RCC_APB1ENR_TIM7EN
  204. #endif /* TIM7 */
  205. #if defined(TIM12)
  206. #define LL_APB1_GRP1_PERIPH_TIM12 RCC_APB1ENR_TIM12EN
  207. #endif /* TIM12 */
  208. #if defined(TIM13)
  209. #define LL_APB1_GRP1_PERIPH_TIM13 RCC_APB1ENR_TIM13EN
  210. #endif /* TIM13 */
  211. #if defined(TIM14)
  212. #define LL_APB1_GRP1_PERIPH_TIM14 RCC_APB1ENR_TIM14EN
  213. #endif /* TIM14 */
  214. #if defined(LPTIM1)
  215. #define LL_APB1_GRP1_PERIPH_LPTIM1 RCC_APB1ENR_LPTIM1EN
  216. #endif /* LPTIM1 */
  217. #if defined(RCC_APB1ENR_RTCAPBEN)
  218. #define LL_APB1_GRP1_PERIPH_RTCAPB RCC_APB1ENR_RTCAPBEN
  219. #endif /* RCC_APB1ENR_RTCAPBEN */
  220. #define LL_APB1_GRP1_PERIPH_WWDG RCC_APB1ENR_WWDGEN
  221. #if defined(SPI2)
  222. #define LL_APB1_GRP1_PERIPH_SPI2 RCC_APB1ENR_SPI2EN
  223. #endif /* SPI2 */
  224. #if defined(SPI3)
  225. #define LL_APB1_GRP1_PERIPH_SPI3 RCC_APB1ENR_SPI3EN
  226. #endif /* SPI3 */
  227. #if defined(SPDIFRX)
  228. #define LL_APB1_GRP1_PERIPH_SPDIFRX RCC_APB1ENR_SPDIFRXEN
  229. #endif /* SPDIFRX */
  230. #define LL_APB1_GRP1_PERIPH_USART2 RCC_APB1ENR_USART2EN
  231. #if defined(USART3)
  232. #define LL_APB1_GRP1_PERIPH_USART3 RCC_APB1ENR_USART3EN
  233. #endif /* USART3 */
  234. #if defined(UART4)
  235. #define LL_APB1_GRP1_PERIPH_UART4 RCC_APB1ENR_UART4EN
  236. #endif /* UART4 */
  237. #if defined(UART5)
  238. #define LL_APB1_GRP1_PERIPH_UART5 RCC_APB1ENR_UART5EN
  239. #endif /* UART5 */
  240. #define LL_APB1_GRP1_PERIPH_I2C1 RCC_APB1ENR_I2C1EN
  241. #define LL_APB1_GRP1_PERIPH_I2C2 RCC_APB1ENR_I2C2EN
  242. #if defined(I2C3)
  243. #define LL_APB1_GRP1_PERIPH_I2C3 RCC_APB1ENR_I2C3EN
  244. #endif /* I2C3 */
  245. #if defined(FMPI2C1)
  246. #define LL_APB1_GRP1_PERIPH_FMPI2C1 RCC_APB1ENR_FMPI2C1EN
  247. #endif /* FMPI2C1 */
  248. #if defined(CAN1)
  249. #define LL_APB1_GRP1_PERIPH_CAN1 RCC_APB1ENR_CAN1EN
  250. #endif /* CAN1 */
  251. #if defined(CAN2)
  252. #define LL_APB1_GRP1_PERIPH_CAN2 RCC_APB1ENR_CAN2EN
  253. #endif /* CAN2 */
  254. #if defined(CAN3)
  255. #define LL_APB1_GRP1_PERIPH_CAN3 RCC_APB1ENR_CAN3EN
  256. #endif /* CAN3 */
  257. #if defined(CEC)
  258. #define LL_APB1_GRP1_PERIPH_CEC RCC_APB1ENR_CECEN
  259. #endif /* CEC */
  260. #define LL_APB1_GRP1_PERIPH_PWR RCC_APB1ENR_PWREN
  261. #if defined(DAC1)
  262. #define LL_APB1_GRP1_PERIPH_DAC1 RCC_APB1ENR_DACEN
  263. #endif /* DAC1 */
  264. #if defined(UART7)
  265. #define LL_APB1_GRP1_PERIPH_UART7 RCC_APB1ENR_UART7EN
  266. #endif /* UART7 */
  267. #if defined(UART8)
  268. #define LL_APB1_GRP1_PERIPH_UART8 RCC_APB1ENR_UART8EN
  269. #endif /* UART8 */
  270. /**
  271. * @}
  272. */
  273. /** @defgroup BUS_LL_EC_APB2_GRP1_PERIPH APB2 GRP1 PERIPH
  274. * @{
  275. */
  276. #define LL_APB2_GRP1_PERIPH_ALL 0xFFFFFFFFU
  277. #define LL_APB2_GRP1_PERIPH_TIM1 RCC_APB2ENR_TIM1EN
  278. #if defined(TIM8)
  279. #define LL_APB2_GRP1_PERIPH_TIM8 RCC_APB2ENR_TIM8EN
  280. #endif /* TIM8 */
  281. #define LL_APB2_GRP1_PERIPH_USART1 RCC_APB2ENR_USART1EN
  282. #if defined(USART6)
  283. #define LL_APB2_GRP1_PERIPH_USART6 RCC_APB2ENR_USART6EN
  284. #endif /* USART6 */
  285. #if defined(UART9)
  286. #define LL_APB2_GRP1_PERIPH_UART9 RCC_APB2ENR_UART9EN
  287. #endif /* UART9 */
  288. #if defined(UART10)
  289. #define LL_APB2_GRP1_PERIPH_UART10 RCC_APB2ENR_UART10EN
  290. #endif /* UART10 */
  291. #define LL_APB2_GRP1_PERIPH_ADC1 RCC_APB2ENR_ADC1EN
  292. #if defined(ADC2)
  293. #define LL_APB2_GRP1_PERIPH_ADC2 RCC_APB2ENR_ADC2EN
  294. #endif /* ADC2 */
  295. #if defined(ADC3)
  296. #define LL_APB2_GRP1_PERIPH_ADC3 RCC_APB2ENR_ADC3EN
  297. #endif /* ADC3 */
  298. #if defined(SDIO)
  299. #define LL_APB2_GRP1_PERIPH_SDIO RCC_APB2ENR_SDIOEN
  300. #endif /* SDIO */
  301. #define LL_APB2_GRP1_PERIPH_SPI1 RCC_APB2ENR_SPI1EN
  302. #if defined(SPI4)
  303. #define LL_APB2_GRP1_PERIPH_SPI4 RCC_APB2ENR_SPI4EN
  304. #endif /* SPI4 */
  305. #define LL_APB2_GRP1_PERIPH_SYSCFG RCC_APB2ENR_SYSCFGEN
  306. #if defined(RCC_APB2ENR_EXTITEN)
  307. #define LL_APB2_GRP1_PERIPH_EXTI RCC_APB2ENR_EXTITEN
  308. #endif /* RCC_APB2ENR_EXTITEN */
  309. #define LL_APB2_GRP1_PERIPH_TIM9 RCC_APB2ENR_TIM9EN
  310. #if defined(TIM10)
  311. #define LL_APB2_GRP1_PERIPH_TIM10 RCC_APB2ENR_TIM10EN
  312. #endif /* TIM10 */
  313. #define LL_APB2_GRP1_PERIPH_TIM11 RCC_APB2ENR_TIM11EN
  314. #if defined(SPI5)
  315. #define LL_APB2_GRP1_PERIPH_SPI5 RCC_APB2ENR_SPI5EN
  316. #endif /* SPI5 */
  317. #if defined(SPI6)
  318. #define LL_APB2_GRP1_PERIPH_SPI6 RCC_APB2ENR_SPI6EN
  319. #endif /* SPI6 */
  320. #if defined(SAI1)
  321. #define LL_APB2_GRP1_PERIPH_SAI1 RCC_APB2ENR_SAI1EN
  322. #endif /* SAI1 */
  323. #if defined(SAI2)
  324. #define LL_APB2_GRP1_PERIPH_SAI2 RCC_APB2ENR_SAI2EN
  325. #endif /* SAI2 */
  326. #if defined(LTDC)
  327. #define LL_APB2_GRP1_PERIPH_LTDC RCC_APB2ENR_LTDCEN
  328. #endif /* LTDC */
  329. #if defined(DSI)
  330. #define LL_APB2_GRP1_PERIPH_DSI RCC_APB2ENR_DSIEN
  331. #endif /* DSI */
  332. #if defined(DFSDM1_Channel0)
  333. #define LL_APB2_GRP1_PERIPH_DFSDM1 RCC_APB2ENR_DFSDM1EN
  334. #endif /* DFSDM1_Channel0 */
  335. #if defined(DFSDM2_Channel0)
  336. #define LL_APB2_GRP1_PERIPH_DFSDM2 RCC_APB2ENR_DFSDM2EN
  337. #endif /* DFSDM2_Channel0 */
  338. #define LL_APB2_GRP1_PERIPH_ADC RCC_APB2RSTR_ADCRST
  339. /**
  340. * @}
  341. */
  342. /**
  343. * @}
  344. */
  345. /* Exported macro ------------------------------------------------------------*/
  346. /* Exported functions --------------------------------------------------------*/
  347. /** @defgroup BUS_LL_Exported_Functions BUS Exported Functions
  348. * @{
  349. */
  350. /** @defgroup BUS_LL_EF_AHB1 AHB1
  351. * @{
  352. */
  353. /**
  354. * @brief Enable AHB1 peripherals clock.
  355. * @rmtoll AHB1ENR GPIOAEN LL_AHB1_GRP1_EnableClock\n
  356. * AHB1ENR GPIOBEN LL_AHB1_GRP1_EnableClock\n
  357. * AHB1ENR GPIOCEN LL_AHB1_GRP1_EnableClock\n
  358. * AHB1ENR GPIODEN LL_AHB1_GRP1_EnableClock\n
  359. * AHB1ENR GPIOEEN LL_AHB1_GRP1_EnableClock\n
  360. * AHB1ENR GPIOFEN LL_AHB1_GRP1_EnableClock\n
  361. * AHB1ENR GPIOGEN LL_AHB1_GRP1_EnableClock\n
  362. * AHB1ENR GPIOHEN LL_AHB1_GRP1_EnableClock\n
  363. * AHB1ENR GPIOIEN LL_AHB1_GRP1_EnableClock\n
  364. * AHB1ENR GPIOJEN LL_AHB1_GRP1_EnableClock\n
  365. * AHB1ENR GPIOKEN LL_AHB1_GRP1_EnableClock\n
  366. * AHB1ENR CRCEN LL_AHB1_GRP1_EnableClock\n
  367. * AHB1ENR BKPSRAMEN LL_AHB1_GRP1_EnableClock\n
  368. * AHB1ENR CCMDATARAMEN LL_AHB1_GRP1_EnableClock\n
  369. * AHB1ENR DMA1EN LL_AHB1_GRP1_EnableClock\n
  370. * AHB1ENR DMA2EN LL_AHB1_GRP1_EnableClock\n
  371. * AHB1ENR RNGEN LL_AHB1_GRP1_EnableClock\n
  372. * AHB1ENR DMA2DEN LL_AHB1_GRP1_EnableClock\n
  373. * AHB1ENR ETHMACEN LL_AHB1_GRP1_EnableClock\n
  374. * AHB1ENR ETHMACTXEN LL_AHB1_GRP1_EnableClock\n
  375. * AHB1ENR ETHMACRXEN LL_AHB1_GRP1_EnableClock\n
  376. * AHB1ENR ETHMACPTPEN LL_AHB1_GRP1_EnableClock\n
  377. * AHB1ENR OTGHSEN LL_AHB1_GRP1_EnableClock\n
  378. * AHB1ENR OTGHSULPIEN LL_AHB1_GRP1_EnableClock
  379. * @param Periphs This parameter can be a combination of the following values:
  380. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOA
  381. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOB
  382. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOC
  383. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOD (*)
  384. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOE (*)
  385. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOF (*)
  386. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOG (*)
  387. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOH (*)
  388. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOI (*)
  389. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOJ (*)
  390. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOK (*)
  391. * @arg @ref LL_AHB1_GRP1_PERIPH_CRC
  392. * @arg @ref LL_AHB1_GRP1_PERIPH_BKPSRAM (*)
  393. * @arg @ref LL_AHB1_GRP1_PERIPH_CCMDATARAM (*)
  394. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA1
  395. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2
  396. * @arg @ref LL_AHB1_GRP1_PERIPH_RNG (*)
  397. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2D (*)
  398. * @arg @ref LL_AHB1_GRP1_PERIPH_ETHMAC (*)
  399. * @arg @ref LL_AHB1_GRP1_PERIPH_ETHMACTX (*)
  400. * @arg @ref LL_AHB1_GRP1_PERIPH_ETHMACRX (*)
  401. * @arg @ref LL_AHB1_GRP1_PERIPH_ETHMACPTP (*)
  402. * @arg @ref LL_AHB1_GRP1_PERIPH_OTGHS (*)
  403. * @arg @ref LL_AHB1_GRP1_PERIPH_OTGHSULPI (*)
  404. *
  405. * (*) value not defined in all devices.
  406. * @retval None
  407. */
  408. __STATIC_INLINE void LL_AHB1_GRP1_EnableClock(uint32_t Periphs)
  409. {
  410. __IO uint32_t tmpreg;
  411. SET_BIT(RCC->AHB1ENR, Periphs);
  412. /* Delay after an RCC peripheral clock enabling */
  413. tmpreg = READ_BIT(RCC->AHB1ENR, Periphs);
  414. (void)tmpreg;
  415. }
  416. /**
  417. * @brief Check if AHB1 peripheral clock is enabled or not
  418. * @rmtoll AHB1ENR GPIOAEN LL_AHB1_GRP1_IsEnabledClock\n
  419. * AHB1ENR GPIOBEN LL_AHB1_GRP1_IsEnabledClock\n
  420. * AHB1ENR GPIOCEN LL_AHB1_GRP1_IsEnabledClock\n
  421. * AHB1ENR GPIODEN LL_AHB1_GRP1_IsEnabledClock\n
  422. * AHB1ENR GPIOEEN LL_AHB1_GRP1_IsEnabledClock\n
  423. * AHB1ENR GPIOFEN LL_AHB1_GRP1_IsEnabledClock\n
  424. * AHB1ENR GPIOGEN LL_AHB1_GRP1_IsEnabledClock\n
  425. * AHB1ENR GPIOHEN LL_AHB1_GRP1_IsEnabledClock\n
  426. * AHB1ENR GPIOIEN LL_AHB1_GRP1_IsEnabledClock\n
  427. * AHB1ENR GPIOJEN LL_AHB1_GRP1_IsEnabledClock\n
  428. * AHB1ENR GPIOKEN LL_AHB1_GRP1_IsEnabledClock\n
  429. * AHB1ENR CRCEN LL_AHB1_GRP1_IsEnabledClock\n
  430. * AHB1ENR BKPSRAMEN LL_AHB1_GRP1_IsEnabledClock\n
  431. * AHB1ENR CCMDATARAMEN LL_AHB1_GRP1_IsEnabledClock\n
  432. * AHB1ENR DMA1EN LL_AHB1_GRP1_IsEnabledClock\n
  433. * AHB1ENR DMA2EN LL_AHB1_GRP1_IsEnabledClock\n
  434. * AHB1ENR RNGEN LL_AHB1_GRP1_IsEnabledClock\n
  435. * AHB1ENR DMA2DEN LL_AHB1_GRP1_IsEnabledClock\n
  436. * AHB1ENR ETHMACEN LL_AHB1_GRP1_IsEnabledClock\n
  437. * AHB1ENR ETHMACTXEN LL_AHB1_GRP1_IsEnabledClock\n
  438. * AHB1ENR ETHMACRXEN LL_AHB1_GRP1_IsEnabledClock\n
  439. * AHB1ENR ETHMACPTPEN LL_AHB1_GRP1_IsEnabledClock\n
  440. * AHB1ENR OTGHSEN LL_AHB1_GRP1_IsEnabledClock\n
  441. * AHB1ENR OTGHSULPIEN LL_AHB1_GRP1_IsEnabledClock
  442. * @param Periphs This parameter can be a combination of the following values:
  443. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOA
  444. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOB
  445. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOC
  446. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOD (*)
  447. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOE (*)
  448. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOF (*)
  449. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOG (*)
  450. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOH (*)
  451. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOI (*)
  452. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOJ (*)
  453. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOK (*)
  454. * @arg @ref LL_AHB1_GRP1_PERIPH_CRC
  455. * @arg @ref LL_AHB1_GRP1_PERIPH_BKPSRAM (*)
  456. * @arg @ref LL_AHB1_GRP1_PERIPH_CCMDATARAM (*)
  457. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA1
  458. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2
  459. * @arg @ref LL_AHB1_GRP1_PERIPH_RNG (*)
  460. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2D (*)
  461. * @arg @ref LL_AHB1_GRP1_PERIPH_ETHMAC (*)
  462. * @arg @ref LL_AHB1_GRP1_PERIPH_ETHMACTX (*)
  463. * @arg @ref LL_AHB1_GRP1_PERIPH_ETHMACRX (*)
  464. * @arg @ref LL_AHB1_GRP1_PERIPH_ETHMACPTP (*)
  465. * @arg @ref LL_AHB1_GRP1_PERIPH_OTGHS (*)
  466. * @arg @ref LL_AHB1_GRP1_PERIPH_OTGHSULPI (*)
  467. *
  468. * (*) value not defined in all devices.
  469. * @retval State of Periphs (1 or 0).
  470. */
  471. __STATIC_INLINE uint32_t LL_AHB1_GRP1_IsEnabledClock(uint32_t Periphs)
  472. {
  473. return (READ_BIT(RCC->AHB1ENR, Periphs) == Periphs);
  474. }
  475. /**
  476. * @brief Disable AHB1 peripherals clock.
  477. * @rmtoll AHB1ENR GPIOAEN LL_AHB1_GRP1_DisableClock\n
  478. * AHB1ENR GPIOBEN LL_AHB1_GRP1_DisableClock\n
  479. * AHB1ENR GPIOCEN LL_AHB1_GRP1_DisableClock\n
  480. * AHB1ENR GPIODEN LL_AHB1_GRP1_DisableClock\n
  481. * AHB1ENR GPIOEEN LL_AHB1_GRP1_DisableClock\n
  482. * AHB1ENR GPIOFEN LL_AHB1_GRP1_DisableClock\n
  483. * AHB1ENR GPIOGEN LL_AHB1_GRP1_DisableClock\n
  484. * AHB1ENR GPIOHEN LL_AHB1_GRP1_DisableClock\n
  485. * AHB1ENR GPIOIEN LL_AHB1_GRP1_DisableClock\n
  486. * AHB1ENR GPIOJEN LL_AHB1_GRP1_DisableClock\n
  487. * AHB1ENR GPIOKEN LL_AHB1_GRP1_DisableClock\n
  488. * AHB1ENR CRCEN LL_AHB1_GRP1_DisableClock\n
  489. * AHB1ENR BKPSRAMEN LL_AHB1_GRP1_DisableClock\n
  490. * AHB1ENR CCMDATARAMEN LL_AHB1_GRP1_DisableClock\n
  491. * AHB1ENR DMA1EN LL_AHB1_GRP1_DisableClock\n
  492. * AHB1ENR DMA2EN LL_AHB1_GRP1_DisableClock\n
  493. * AHB1ENR RNGEN LL_AHB1_GRP1_DisableClock\n
  494. * AHB1ENR DMA2DEN LL_AHB1_GRP1_DisableClock\n
  495. * AHB1ENR ETHMACEN LL_AHB1_GRP1_DisableClock\n
  496. * AHB1ENR ETHMACTXEN LL_AHB1_GRP1_DisableClock\n
  497. * AHB1ENR ETHMACRXEN LL_AHB1_GRP1_DisableClock\n
  498. * AHB1ENR ETHMACPTPEN LL_AHB1_GRP1_DisableClock\n
  499. * AHB1ENR OTGHSEN LL_AHB1_GRP1_DisableClock\n
  500. * AHB1ENR OTGHSULPIEN LL_AHB1_GRP1_DisableClock
  501. * @param Periphs This parameter can be a combination of the following values:
  502. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOA
  503. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOB
  504. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOC
  505. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOD (*)
  506. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOE (*)
  507. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOF (*)
  508. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOG (*)
  509. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOH (*)
  510. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOI (*)
  511. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOJ (*)
  512. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOK (*)
  513. * @arg @ref LL_AHB1_GRP1_PERIPH_CRC
  514. * @arg @ref LL_AHB1_GRP1_PERIPH_BKPSRAM (*)
  515. * @arg @ref LL_AHB1_GRP1_PERIPH_CCMDATARAM (*)
  516. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA1
  517. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2
  518. * @arg @ref LL_AHB1_GRP1_PERIPH_RNG (*)
  519. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2D (*)
  520. * @arg @ref LL_AHB1_GRP1_PERIPH_ETHMAC (*)
  521. * @arg @ref LL_AHB1_GRP1_PERIPH_ETHMACTX (*)
  522. * @arg @ref LL_AHB1_GRP1_PERIPH_ETHMACRX (*)
  523. * @arg @ref LL_AHB1_GRP1_PERIPH_ETHMACPTP (*)
  524. * @arg @ref LL_AHB1_GRP1_PERIPH_OTGHS (*)
  525. * @arg @ref LL_AHB1_GRP1_PERIPH_OTGHSULPI (*)
  526. *
  527. * (*) value not defined in all devices.
  528. * @retval None
  529. */
  530. __STATIC_INLINE void LL_AHB1_GRP1_DisableClock(uint32_t Periphs)
  531. {
  532. CLEAR_BIT(RCC->AHB1ENR, Periphs);
  533. }
  534. /**
  535. * @brief Force AHB1 peripherals reset.
  536. * @rmtoll AHB1RSTR GPIOARST LL_AHB1_GRP1_ForceReset\n
  537. * AHB1RSTR GPIOBRST LL_AHB1_GRP1_ForceReset\n
  538. * AHB1RSTR GPIOCRST LL_AHB1_GRP1_ForceReset\n
  539. * AHB1RSTR GPIODRST LL_AHB1_GRP1_ForceReset\n
  540. * AHB1RSTR GPIOERST LL_AHB1_GRP1_ForceReset\n
  541. * AHB1RSTR GPIOFRST LL_AHB1_GRP1_ForceReset\n
  542. * AHB1RSTR GPIOGRST LL_AHB1_GRP1_ForceReset\n
  543. * AHB1RSTR GPIOHRST LL_AHB1_GRP1_ForceReset\n
  544. * AHB1RSTR GPIOIRST LL_AHB1_GRP1_ForceReset\n
  545. * AHB1RSTR GPIOJRST LL_AHB1_GRP1_ForceReset\n
  546. * AHB1RSTR GPIOKRST LL_AHB1_GRP1_ForceReset\n
  547. * AHB1RSTR CRCRST LL_AHB1_GRP1_ForceReset\n
  548. * AHB1RSTR DMA1RST LL_AHB1_GRP1_ForceReset\n
  549. * AHB1RSTR DMA2RST LL_AHB1_GRP1_ForceReset\n
  550. * AHB1RSTR RNGRST LL_AHB1_GRP1_ForceReset\n
  551. * AHB1RSTR DMA2DRST LL_AHB1_GRP1_ForceReset\n
  552. * AHB1RSTR ETHMACRST LL_AHB1_GRP1_ForceReset\n
  553. * AHB1RSTR OTGHSRST LL_AHB1_GRP1_ForceReset
  554. * @param Periphs This parameter can be a combination of the following values:
  555. * @arg @ref LL_AHB1_GRP1_PERIPH_ALL
  556. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOA
  557. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOB
  558. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOC
  559. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOD (*)
  560. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOE (*)
  561. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOF (*)
  562. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOG (*)
  563. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOH (*)
  564. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOI (*)
  565. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOJ (*)
  566. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOK (*)
  567. * @arg @ref LL_AHB1_GRP1_PERIPH_CRC
  568. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA1
  569. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2
  570. * @arg @ref LL_AHB1_GRP1_PERIPH_RNG (*)
  571. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2D (*)
  572. * @arg @ref LL_AHB1_GRP1_PERIPH_ETHMAC (*)
  573. * @arg @ref LL_AHB1_GRP1_PERIPH_OTGHS (*)
  574. *
  575. * (*) value not defined in all devices.
  576. * @retval None
  577. */
  578. __STATIC_INLINE void LL_AHB1_GRP1_ForceReset(uint32_t Periphs)
  579. {
  580. SET_BIT(RCC->AHB1RSTR, Periphs);
  581. }
  582. /**
  583. * @brief Release AHB1 peripherals reset.
  584. * @rmtoll AHB1RSTR GPIOARST LL_AHB1_GRP1_ReleaseReset\n
  585. * AHB1RSTR GPIOBRST LL_AHB1_GRP1_ReleaseReset\n
  586. * AHB1RSTR GPIOCRST LL_AHB1_GRP1_ReleaseReset\n
  587. * AHB1RSTR GPIODRST LL_AHB1_GRP1_ReleaseReset\n
  588. * AHB1RSTR GPIOERST LL_AHB1_GRP1_ReleaseReset\n
  589. * AHB1RSTR GPIOFRST LL_AHB1_GRP1_ReleaseReset\n
  590. * AHB1RSTR GPIOGRST LL_AHB1_GRP1_ReleaseReset\n
  591. * AHB1RSTR GPIOHRST LL_AHB1_GRP1_ReleaseReset\n
  592. * AHB1RSTR GPIOIRST LL_AHB1_GRP1_ReleaseReset\n
  593. * AHB1RSTR GPIOJRST LL_AHB1_GRP1_ReleaseReset\n
  594. * AHB1RSTR GPIOKRST LL_AHB1_GRP1_ReleaseReset\n
  595. * AHB1RSTR CRCRST LL_AHB1_GRP1_ReleaseReset\n
  596. * AHB1RSTR DMA1RST LL_AHB1_GRP1_ReleaseReset\n
  597. * AHB1RSTR DMA2RST LL_AHB1_GRP1_ReleaseReset\n
  598. * AHB1RSTR RNGRST LL_AHB1_GRP1_ReleaseReset\n
  599. * AHB1RSTR DMA2DRST LL_AHB1_GRP1_ReleaseReset\n
  600. * AHB1RSTR ETHMACRST LL_AHB1_GRP1_ReleaseReset\n
  601. * AHB1RSTR OTGHSRST LL_AHB1_GRP1_ReleaseReset
  602. * @param Periphs This parameter can be a combination of the following values:
  603. * @arg @ref LL_AHB1_GRP1_PERIPH_ALL
  604. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOA
  605. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOB
  606. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOC
  607. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOD (*)
  608. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOE (*)
  609. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOF (*)
  610. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOG (*)
  611. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOH (*)
  612. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOI (*)
  613. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOJ (*)
  614. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOK (*)
  615. * @arg @ref LL_AHB1_GRP1_PERIPH_CRC
  616. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA1
  617. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2
  618. * @arg @ref LL_AHB1_GRP1_PERIPH_RNG (*)
  619. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2D (*)
  620. * @arg @ref LL_AHB1_GRP1_PERIPH_ETHMAC (*)
  621. * @arg @ref LL_AHB1_GRP1_PERIPH_OTGHS (*)
  622. *
  623. * (*) value not defined in all devices.
  624. * @retval None
  625. */
  626. __STATIC_INLINE void LL_AHB1_GRP1_ReleaseReset(uint32_t Periphs)
  627. {
  628. CLEAR_BIT(RCC->AHB1RSTR, Periphs);
  629. }
  630. /**
  631. * @brief Enable AHB1 peripheral clocks in low-power mode
  632. * @rmtoll AHB1LPENR GPIOALPEN LL_AHB1_GRP1_EnableClockLowPower\n
  633. * AHB1LPENR GPIOBLPEN LL_AHB1_GRP1_EnableClockLowPower\n
  634. * AHB1LPENR GPIOCLPEN LL_AHB1_GRP1_EnableClockLowPower\n
  635. * AHB1LPENR GPIODLPEN LL_AHB1_GRP1_EnableClockLowPower\n
  636. * AHB1LPENR GPIOELPEN LL_AHB1_GRP1_EnableClockLowPower\n
  637. * AHB1LPENR GPIOFLPEN LL_AHB1_GRP1_EnableClockLowPower\n
  638. * AHB1LPENR GPIOGLPEN LL_AHB1_GRP1_EnableClockLowPower\n
  639. * AHB1LPENR GPIOHLPEN LL_AHB1_GRP1_EnableClockLowPower\n
  640. * AHB1LPENR GPIOILPEN LL_AHB1_GRP1_EnableClockLowPower\n
  641. * AHB1LPENR GPIOJLPEN LL_AHB1_GRP1_EnableClockLowPower\n
  642. * AHB1LPENR GPIOKLPEN LL_AHB1_GRP1_EnableClockLowPower\n
  643. * AHB1LPENR CRCLPEN LL_AHB1_GRP1_EnableClockLowPower\n
  644. * AHB1LPENR BKPSRAMLPEN LL_AHB1_GRP1_EnableClockLowPower\n
  645. * AHB1LPENR FLITFLPEN LL_AHB1_GRP1_EnableClockLowPower\n
  646. * AHB1LPENR SRAM1LPEN LL_AHB1_GRP1_EnableClockLowPower\n
  647. * AHB1LPENR SRAM2LPEN LL_AHB1_GRP1_EnableClockLowPower\n
  648. * AHB1LPENR SRAM3LPEN LL_AHB1_GRP1_EnableClockLowPower\n
  649. * AHB1LPENR BKPSRAMLPEN LL_AHB1_GRP1_EnableClockLowPower\n
  650. * AHB1LPENR DMA1LPEN LL_AHB1_GRP1_EnableClockLowPower\n
  651. * AHB1LPENR DMA2LPEN LL_AHB1_GRP1_EnableClockLowPower\n
  652. * AHB1LPENR DMA2DLPEN LL_AHB1_GRP1_EnableClockLowPower\n
  653. * AHB1LPENR RNGLPEN LL_AHB1_GRP1_EnableClockLowPower\n
  654. * AHB1LPENR ETHMACLPEN LL_AHB1_GRP1_EnableClockLowPower\n
  655. * AHB1LPENR ETHMACTXLPEN LL_AHB1_GRP1_EnableClockLowPower\n
  656. * AHB1LPENR ETHMACRXLPEN LL_AHB1_GRP1_EnableClockLowPower\n
  657. * AHB1LPENR ETHMACPTPLPEN LL_AHB1_GRP1_EnableClockLowPower\n
  658. * AHB1LPENR OTGHSLPEN LL_AHB1_GRP1_EnableClockLowPower\n
  659. * AHB1LPENR OTGHSULPILPEN LL_AHB1_GRP1_EnableClockLowPower
  660. * @param Periphs This parameter can be a combination of the following values:
  661. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOA
  662. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOB
  663. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOC
  664. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOD (*)
  665. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOE (*)
  666. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOF (*)
  667. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOG (*)
  668. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOH (*)
  669. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOI (*)
  670. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOJ (*)
  671. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOK (*)
  672. * @arg @ref LL_AHB1_GRP1_PERIPH_CRC
  673. * @arg @ref LL_AHB1_GRP1_PERIPH_BKPSRAM (*)
  674. * @arg @ref LL_AHB1_GRP1_PERIPH_FLITF
  675. * @arg @ref LL_AHB1_GRP1_PERIPH_SRAM1
  676. * @arg @ref LL_AHB1_GRP1_PERIPH_SRAM2 (*)
  677. * @arg @ref LL_AHB1_GRP1_PERIPH_SRAM3 (*)
  678. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA1
  679. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2
  680. * @arg @ref LL_AHB1_GRP1_PERIPH_RNG (*)
  681. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2D (*)
  682. * @arg @ref LL_AHB1_GRP1_PERIPH_ETHMAC (*)
  683. * @arg @ref LL_AHB1_GRP1_PERIPH_ETHMACTX (*)
  684. * @arg @ref LL_AHB1_GRP1_PERIPH_ETHMACRX (*)
  685. * @arg @ref LL_AHB1_GRP1_PERIPH_ETHMACPTP (*)
  686. * @arg @ref LL_AHB1_GRP1_PERIPH_OTGHS (*)
  687. * @arg @ref LL_AHB1_GRP1_PERIPH_OTGHSULPI (*)
  688. *
  689. * (*) value not defined in all devices.
  690. * @retval None
  691. */
  692. __STATIC_INLINE void LL_AHB1_GRP1_EnableClockLowPower(uint32_t Periphs)
  693. {
  694. __IO uint32_t tmpreg;
  695. SET_BIT(RCC->AHB1LPENR, Periphs);
  696. /* Delay after an RCC peripheral clock enabling */
  697. tmpreg = READ_BIT(RCC->AHB1LPENR, Periphs);
  698. (void)tmpreg;
  699. }
  700. /**
  701. * @brief Disable AHB1 peripheral clocks in low-power mode
  702. * @rmtoll AHB1LPENR GPIOALPEN LL_AHB1_GRP1_DisableClockLowPower\n
  703. * AHB1LPENR GPIOBLPEN LL_AHB1_GRP1_DisableClockLowPower\n
  704. * AHB1LPENR GPIOCLPEN LL_AHB1_GRP1_DisableClockLowPower\n
  705. * AHB1LPENR GPIODLPEN LL_AHB1_GRP1_DisableClockLowPower\n
  706. * AHB1LPENR GPIOELPEN LL_AHB1_GRP1_DisableClockLowPower\n
  707. * AHB1LPENR GPIOFLPEN LL_AHB1_GRP1_DisableClockLowPower\n
  708. * AHB1LPENR GPIOGLPEN LL_AHB1_GRP1_DisableClockLowPower\n
  709. * AHB1LPENR GPIOHLPEN LL_AHB1_GRP1_DisableClockLowPower\n
  710. * AHB1LPENR GPIOILPEN LL_AHB1_GRP1_DisableClockLowPower\n
  711. * AHB1LPENR GPIOJLPEN LL_AHB1_GRP1_DisableClockLowPower\n
  712. * AHB1LPENR GPIOKLPEN LL_AHB1_GRP1_DisableClockLowPower\n
  713. * AHB1LPENR CRCLPEN LL_AHB1_GRP1_DisableClockLowPower\n
  714. * AHB1LPENR BKPSRAMLPEN LL_AHB1_GRP1_DisableClockLowPower\n
  715. * AHB1LPENR FLITFLPEN LL_AHB1_GRP1_DisableClockLowPower\n
  716. * AHB1LPENR SRAM1LPEN LL_AHB1_GRP1_DisableClockLowPower\n
  717. * AHB1LPENR SRAM2LPEN LL_AHB1_GRP1_DisableClockLowPower\n
  718. * AHB1LPENR SRAM3LPEN LL_AHB1_GRP1_DisableClockLowPower\n
  719. * AHB1LPENR BKPSRAMLPEN LL_AHB1_GRP1_DisableClockLowPower\n
  720. * AHB1LPENR DMA1LPEN LL_AHB1_GRP1_DisableClockLowPower\n
  721. * AHB1LPENR DMA2LPEN LL_AHB1_GRP1_DisableClockLowPower\n
  722. * AHB1LPENR DMA2DLPEN LL_AHB1_GRP1_DisableClockLowPower\n
  723. * AHB1LPENR RNGLPEN LL_AHB1_GRP1_DisableClockLowPower\n
  724. * AHB1LPENR ETHMACLPEN LL_AHB1_GRP1_DisableClockLowPower\n
  725. * AHB1LPENR ETHMACTXLPEN LL_AHB1_GRP1_DisableClockLowPower\n
  726. * AHB1LPENR ETHMACRXLPEN LL_AHB1_GRP1_DisableClockLowPower\n
  727. * AHB1LPENR ETHMACPTPLPEN LL_AHB1_GRP1_DisableClockLowPower\n
  728. * AHB1LPENR OTGHSLPEN LL_AHB1_GRP1_DisableClockLowPower\n
  729. * AHB1LPENR OTGHSULPILPEN LL_AHB1_GRP1_DisableClockLowPower
  730. * @param Periphs This parameter can be a combination of the following values:
  731. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOA
  732. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOB
  733. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOC
  734. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOD (*)
  735. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOE (*)
  736. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOF (*)
  737. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOG (*)
  738. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOH (*)
  739. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOI (*)
  740. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOJ (*)
  741. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOK (*)
  742. * @arg @ref LL_AHB1_GRP1_PERIPH_CRC
  743. * @arg @ref LL_AHB1_GRP1_PERIPH_BKPSRAM (*)
  744. * @arg @ref LL_AHB1_GRP1_PERIPH_FLITF
  745. * @arg @ref LL_AHB1_GRP1_PERIPH_SRAM1
  746. * @arg @ref LL_AHB1_GRP1_PERIPH_SRAM2 (*)
  747. * @arg @ref LL_AHB1_GRP1_PERIPH_SRAM3 (*)
  748. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA1
  749. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2
  750. * @arg @ref LL_AHB1_GRP1_PERIPH_RNG (*)
  751. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2D (*)
  752. * @arg @ref LL_AHB1_GRP1_PERIPH_ETHMAC (*)
  753. * @arg @ref LL_AHB1_GRP1_PERIPH_ETHMACTX (*)
  754. * @arg @ref LL_AHB1_GRP1_PERIPH_ETHMACRX (*)
  755. * @arg @ref LL_AHB1_GRP1_PERIPH_ETHMACPTP (*)
  756. * @arg @ref LL_AHB1_GRP1_PERIPH_OTGHS (*)
  757. * @arg @ref LL_AHB1_GRP1_PERIPH_OTGHSULPI (*)
  758. *
  759. * (*) value not defined in all devices.
  760. * @retval None
  761. */
  762. __STATIC_INLINE void LL_AHB1_GRP1_DisableClockLowPower(uint32_t Periphs)
  763. {
  764. CLEAR_BIT(RCC->AHB1LPENR, Periphs);
  765. }
  766. /**
  767. * @}
  768. */
  769. #if defined(RCC_AHB2_SUPPORT)
  770. /** @defgroup BUS_LL_EF_AHB2 AHB2
  771. * @{
  772. */
  773. /**
  774. * @brief Enable AHB2 peripherals clock.
  775. * @rmtoll AHB2ENR DCMIEN LL_AHB2_GRP1_EnableClock\n
  776. * AHB2ENR CRYPEN LL_AHB2_GRP1_EnableClock\n
  777. * AHB2ENR AESEN LL_AHB2_GRP1_EnableClock\n
  778. * AHB2ENR HASHEN LL_AHB2_GRP1_EnableClock\n
  779. * AHB2ENR RNGEN LL_AHB2_GRP1_EnableClock\n
  780. * AHB2ENR OTGFSEN LL_AHB2_GRP1_EnableClock
  781. * @param Periphs This parameter can be a combination of the following values:
  782. * @arg @ref LL_AHB2_GRP1_PERIPH_DCMI (*)
  783. * @arg @ref LL_AHB2_GRP1_PERIPH_CRYP (*)
  784. * @arg @ref LL_AHB2_GRP1_PERIPH_AES (*)
  785. * @arg @ref LL_AHB2_GRP1_PERIPH_HASH (*)
  786. * @arg @ref LL_AHB2_GRP1_PERIPH_RNG (*)
  787. * @arg @ref LL_AHB2_GRP1_PERIPH_OTGFS (*)
  788. *
  789. * (*) value not defined in all devices.
  790. * @retval None
  791. */
  792. __STATIC_INLINE void LL_AHB2_GRP1_EnableClock(uint32_t Periphs)
  793. {
  794. __IO uint32_t tmpreg;
  795. SET_BIT(RCC->AHB2ENR, Periphs);
  796. /* Delay after an RCC peripheral clock enabling */
  797. tmpreg = READ_BIT(RCC->AHB2ENR, Periphs);
  798. (void)tmpreg;
  799. }
  800. /**
  801. * @brief Check if AHB2 peripheral clock is enabled or not
  802. * @rmtoll AHB2ENR DCMIEN LL_AHB2_GRP1_IsEnabledClock\n
  803. * AHB2ENR CRYPEN LL_AHB2_GRP1_IsEnabledClock\n
  804. * AHB2ENR AESEN LL_AHB2_GRP1_IsEnabledClock\n
  805. * AHB2ENR HASHEN LL_AHB2_GRP1_IsEnabledClock\n
  806. * AHB2ENR RNGEN LL_AHB2_GRP1_IsEnabledClock\n
  807. * AHB2ENR OTGFSEN LL_AHB2_GRP1_IsEnabledClock
  808. * @param Periphs This parameter can be a combination of the following values:
  809. * @arg @ref LL_AHB2_GRP1_PERIPH_DCMI (*)
  810. * @arg @ref LL_AHB2_GRP1_PERIPH_CRYP (*)
  811. * @arg @ref LL_AHB2_GRP1_PERIPH_AES (*)
  812. * @arg @ref LL_AHB2_GRP1_PERIPH_HASH (*)
  813. * @arg @ref LL_AHB2_GRP1_PERIPH_RNG (*)
  814. * @arg @ref LL_AHB2_GRP1_PERIPH_OTGFS (*)
  815. *
  816. * (*) value not defined in all devices.
  817. * @retval State of Periphs (1 or 0).
  818. */
  819. __STATIC_INLINE uint32_t LL_AHB2_GRP1_IsEnabledClock(uint32_t Periphs)
  820. {
  821. return (READ_BIT(RCC->AHB2ENR, Periphs) == Periphs);
  822. }
  823. /**
  824. * @brief Disable AHB2 peripherals clock.
  825. * @rmtoll AHB2ENR DCMIEN LL_AHB2_GRP1_DisableClock\n
  826. * AHB2ENR CRYPEN LL_AHB2_GRP1_DisableClock\n
  827. * AHB2ENR AESEN LL_AHB2_GRP1_DisableClock\n
  828. * AHB2ENR HASHEN LL_AHB2_GRP1_DisableClock\n
  829. * AHB2ENR RNGEN LL_AHB2_GRP1_DisableClock\n
  830. * AHB2ENR OTGFSEN LL_AHB2_GRP1_DisableClock
  831. * @param Periphs This parameter can be a combination of the following values:
  832. * @arg @ref LL_AHB2_GRP1_PERIPH_DCMI (*)
  833. * @arg @ref LL_AHB2_GRP1_PERIPH_CRYP (*)
  834. * @arg @ref LL_AHB2_GRP1_PERIPH_AES (*)
  835. * @arg @ref LL_AHB2_GRP1_PERIPH_HASH (*)
  836. * @arg @ref LL_AHB2_GRP1_PERIPH_RNG (*)
  837. * @arg @ref LL_AHB2_GRP1_PERIPH_OTGFS (*)
  838. *
  839. * (*) value not defined in all devices.
  840. * @retval None
  841. */
  842. __STATIC_INLINE void LL_AHB2_GRP1_DisableClock(uint32_t Periphs)
  843. {
  844. CLEAR_BIT(RCC->AHB2ENR, Periphs);
  845. }
  846. /**
  847. * @brief Force AHB2 peripherals reset.
  848. * @rmtoll AHB2RSTR DCMIRST LL_AHB2_GRP1_ForceReset\n
  849. * AHB2RSTR CRYPRST LL_AHB2_GRP1_ForceReset\n
  850. * AHB2RSTR AESRST LL_AHB2_GRP1_ForceReset\n
  851. * AHB2RSTR HASHRST LL_AHB2_GRP1_ForceReset\n
  852. * AHB2RSTR RNGRST LL_AHB2_GRP1_ForceReset\n
  853. * AHB2RSTR OTGFSRST LL_AHB2_GRP1_ForceReset
  854. * @param Periphs This parameter can be a combination of the following values:
  855. * @arg @ref LL_AHB2_GRP1_PERIPH_ALL
  856. * @arg @ref LL_AHB2_GRP1_PERIPH_DCMI (*)
  857. * @arg @ref LL_AHB2_GRP1_PERIPH_CRYP (*)
  858. * @arg @ref LL_AHB2_GRP1_PERIPH_AES (*)
  859. * @arg @ref LL_AHB2_GRP1_PERIPH_HASH (*)
  860. * @arg @ref LL_AHB2_GRP1_PERIPH_RNG (*)
  861. * @arg @ref LL_AHB2_GRP1_PERIPH_OTGFS (*)
  862. *
  863. * (*) value not defined in all devices.
  864. * @retval None
  865. */
  866. __STATIC_INLINE void LL_AHB2_GRP1_ForceReset(uint32_t Periphs)
  867. {
  868. SET_BIT(RCC->AHB2RSTR, Periphs);
  869. }
  870. /**
  871. * @brief Release AHB2 peripherals reset.
  872. * @rmtoll AHB2RSTR DCMIRST LL_AHB2_GRP1_ReleaseReset\n
  873. * AHB2RSTR CRYPRST LL_AHB2_GRP1_ReleaseReset\n
  874. * AHB2RSTR AESRST LL_AHB2_GRP1_ReleaseReset\n
  875. * AHB2RSTR HASHRST LL_AHB2_GRP1_ReleaseReset\n
  876. * AHB2RSTR RNGRST LL_AHB2_GRP1_ReleaseReset\n
  877. * AHB2RSTR OTGFSRST LL_AHB2_GRP1_ReleaseReset
  878. * @param Periphs This parameter can be a combination of the following values:
  879. * @arg @ref LL_AHB2_GRP1_PERIPH_ALL
  880. * @arg @ref LL_AHB2_GRP1_PERIPH_DCMI (*)
  881. * @arg @ref LL_AHB2_GRP1_PERIPH_CRYP (*)
  882. * @arg @ref LL_AHB2_GRP1_PERIPH_AES (*)
  883. * @arg @ref LL_AHB2_GRP1_PERIPH_HASH (*)
  884. * @arg @ref LL_AHB2_GRP1_PERIPH_RNG (*)
  885. * @arg @ref LL_AHB2_GRP1_PERIPH_OTGFS (*)
  886. *
  887. * (*) value not defined in all devices.
  888. * @retval None
  889. */
  890. __STATIC_INLINE void LL_AHB2_GRP1_ReleaseReset(uint32_t Periphs)
  891. {
  892. CLEAR_BIT(RCC->AHB2RSTR, Periphs);
  893. }
  894. /**
  895. * @brief Enable AHB2 peripheral clocks in low-power mode
  896. * @rmtoll AHB2LPENR DCMILPEN LL_AHB2_GRP1_EnableClockLowPower\n
  897. * AHB2LPENR CRYPLPEN LL_AHB2_GRP1_EnableClockLowPower\n
  898. * AHB2LPENR AESLPEN LL_AHB2_GRP1_EnableClockLowPower\n
  899. * AHB2LPENR HASHLPEN LL_AHB2_GRP1_EnableClockLowPower\n
  900. * AHB2LPENR RNGLPEN LL_AHB2_GRP1_EnableClockLowPower\n
  901. * AHB2LPENR OTGFSLPEN LL_AHB2_GRP1_EnableClockLowPower
  902. * @param Periphs This parameter can be a combination of the following values:
  903. * @arg @ref LL_AHB2_GRP1_PERIPH_DCMI (*)
  904. * @arg @ref LL_AHB2_GRP1_PERIPH_CRYP (*)
  905. * @arg @ref LL_AHB2_GRP1_PERIPH_AES (*)
  906. * @arg @ref LL_AHB2_GRP1_PERIPH_HASH (*)
  907. * @arg @ref LL_AHB2_GRP1_PERIPH_RNG (*)
  908. * @arg @ref LL_AHB2_GRP1_PERIPH_OTGFS (*)
  909. *
  910. * (*) value not defined in all devices.
  911. * @retval None
  912. */
  913. __STATIC_INLINE void LL_AHB2_GRP1_EnableClockLowPower(uint32_t Periphs)
  914. {
  915. __IO uint32_t tmpreg;
  916. SET_BIT(RCC->AHB2LPENR, Periphs);
  917. /* Delay after an RCC peripheral clock enabling */
  918. tmpreg = READ_BIT(RCC->AHB2LPENR, Periphs);
  919. (void)tmpreg;
  920. }
  921. /**
  922. * @brief Disable AHB2 peripheral clocks in low-power mode
  923. * @rmtoll AHB2LPENR DCMILPEN LL_AHB2_GRP1_DisableClockLowPower\n
  924. * AHB2LPENR CRYPLPEN LL_AHB2_GRP1_DisableClockLowPower\n
  925. * AHB2LPENR AESLPEN LL_AHB2_GRP1_DisableClockLowPower\n
  926. * AHB2LPENR HASHLPEN LL_AHB2_GRP1_DisableClockLowPower\n
  927. * AHB2LPENR RNGLPEN LL_AHB2_GRP1_DisableClockLowPower\n
  928. * AHB2LPENR OTGFSLPEN LL_AHB2_GRP1_DisableClockLowPower
  929. * @param Periphs This parameter can be a combination of the following values:
  930. * @arg @ref LL_AHB2_GRP1_PERIPH_DCMI (*)
  931. * @arg @ref LL_AHB2_GRP1_PERIPH_CRYP (*)
  932. * @arg @ref LL_AHB2_GRP1_PERIPH_AES (*)
  933. * @arg @ref LL_AHB2_GRP1_PERIPH_HASH (*)
  934. * @arg @ref LL_AHB2_GRP1_PERIPH_RNG (*)
  935. * @arg @ref LL_AHB2_GRP1_PERIPH_OTGFS (*)
  936. *
  937. * (*) value not defined in all devices.
  938. * @retval None
  939. */
  940. __STATIC_INLINE void LL_AHB2_GRP1_DisableClockLowPower(uint32_t Periphs)
  941. {
  942. CLEAR_BIT(RCC->AHB2LPENR, Periphs);
  943. }
  944. /**
  945. * @}
  946. */
  947. #endif /* RCC_AHB2_SUPPORT */
  948. #if defined(RCC_AHB3_SUPPORT)
  949. /** @defgroup BUS_LL_EF_AHB3 AHB3
  950. * @{
  951. */
  952. /**
  953. * @brief Enable AHB3 peripherals clock.
  954. * @rmtoll AHB3ENR FMCEN LL_AHB3_GRP1_EnableClock\n
  955. * AHB3ENR FSMCEN LL_AHB3_GRP1_EnableClock\n
  956. * AHB3ENR QSPIEN LL_AHB3_GRP1_EnableClock
  957. * @param Periphs This parameter can be a combination of the following values:
  958. * @arg @ref LL_AHB3_GRP1_PERIPH_FMC (*)
  959. * @arg @ref LL_AHB3_GRP1_PERIPH_FSMC (*)
  960. * @arg @ref LL_AHB3_GRP1_PERIPH_QSPI (*)
  961. *
  962. * (*) value not defined in all devices.
  963. * @retval None
  964. */
  965. __STATIC_INLINE void LL_AHB3_GRP1_EnableClock(uint32_t Periphs)
  966. {
  967. __IO uint32_t tmpreg;
  968. SET_BIT(RCC->AHB3ENR, Periphs);
  969. /* Delay after an RCC peripheral clock enabling */
  970. tmpreg = READ_BIT(RCC->AHB3ENR, Periphs);
  971. (void)tmpreg;
  972. }
  973. /**
  974. * @brief Check if AHB3 peripheral clock is enabled or not
  975. * @rmtoll AHB3ENR FMCEN LL_AHB3_GRP1_IsEnabledClock\n
  976. * AHB3ENR FSMCEN LL_AHB3_GRP1_IsEnabledClock\n
  977. * AHB3ENR QSPIEN LL_AHB3_GRP1_IsEnabledClock
  978. * @param Periphs This parameter can be a combination of the following values:
  979. * @arg @ref LL_AHB3_GRP1_PERIPH_FMC (*)
  980. * @arg @ref LL_AHB3_GRP1_PERIPH_FSMC (*)
  981. * @arg @ref LL_AHB3_GRP1_PERIPH_QSPI (*)
  982. *
  983. * (*) value not defined in all devices.
  984. * @retval State of Periphs (1 or 0).
  985. */
  986. __STATIC_INLINE uint32_t LL_AHB3_GRP1_IsEnabledClock(uint32_t Periphs)
  987. {
  988. return (READ_BIT(RCC->AHB3ENR, Periphs) == Periphs);
  989. }
  990. /**
  991. * @brief Disable AHB3 peripherals clock.
  992. * @rmtoll AHB3ENR FMCEN LL_AHB3_GRP1_DisableClock\n
  993. * AHB3ENR FSMCEN LL_AHB3_GRP1_DisableClock\n
  994. * AHB3ENR QSPIEN LL_AHB3_GRP1_DisableClock
  995. * @param Periphs This parameter can be a combination of the following values:
  996. * @arg @ref LL_AHB3_GRP1_PERIPH_FMC (*)
  997. * @arg @ref LL_AHB3_GRP1_PERIPH_FSMC (*)
  998. * @arg @ref LL_AHB3_GRP1_PERIPH_QSPI (*)
  999. *
  1000. * (*) value not defined in all devices.
  1001. * @retval None
  1002. */
  1003. __STATIC_INLINE void LL_AHB3_GRP1_DisableClock(uint32_t Periphs)
  1004. {
  1005. CLEAR_BIT(RCC->AHB3ENR, Periphs);
  1006. }
  1007. /**
  1008. * @brief Force AHB3 peripherals reset.
  1009. * @rmtoll AHB3RSTR FMCRST LL_AHB3_GRP1_ForceReset\n
  1010. * AHB3RSTR FSMCRST LL_AHB3_GRP1_ForceReset\n
  1011. * AHB3RSTR QSPIRST LL_AHB3_GRP1_ForceReset
  1012. * @param Periphs This parameter can be a combination of the following values:
  1013. * @arg @ref LL_AHB3_GRP1_PERIPH_ALL
  1014. * @arg @ref LL_AHB3_GRP1_PERIPH_FMC (*)
  1015. * @arg @ref LL_AHB3_GRP1_PERIPH_FSMC (*)
  1016. * @arg @ref LL_AHB3_GRP1_PERIPH_QSPI (*)
  1017. *
  1018. * (*) value not defined in all devices.
  1019. * @retval None
  1020. */
  1021. __STATIC_INLINE void LL_AHB3_GRP1_ForceReset(uint32_t Periphs)
  1022. {
  1023. SET_BIT(RCC->AHB3RSTR, Periphs);
  1024. }
  1025. /**
  1026. * @brief Release AHB3 peripherals reset.
  1027. * @rmtoll AHB3RSTR FMCRST LL_AHB3_GRP1_ReleaseReset\n
  1028. * AHB3RSTR FSMCRST LL_AHB3_GRP1_ReleaseReset\n
  1029. * AHB3RSTR QSPIRST LL_AHB3_GRP1_ReleaseReset
  1030. * @param Periphs This parameter can be a combination of the following values:
  1031. * @arg @ref LL_AHB2_GRP1_PERIPH_ALL
  1032. * @arg @ref LL_AHB3_GRP1_PERIPH_FMC (*)
  1033. * @arg @ref LL_AHB3_GRP1_PERIPH_FSMC (*)
  1034. * @arg @ref LL_AHB3_GRP1_PERIPH_QSPI (*)
  1035. *
  1036. * (*) value not defined in all devices.
  1037. * @retval None
  1038. */
  1039. __STATIC_INLINE void LL_AHB3_GRP1_ReleaseReset(uint32_t Periphs)
  1040. {
  1041. CLEAR_BIT(RCC->AHB3RSTR, Periphs);
  1042. }
  1043. /**
  1044. * @brief Enable AHB3 peripheral clocks in low-power mode
  1045. * @rmtoll AHB3LPENR FMCLPEN LL_AHB3_GRP1_EnableClockLowPower\n
  1046. * AHB3LPENR FSMCLPEN LL_AHB3_GRP1_EnableClockLowPower\n
  1047. * AHB3LPENR QSPILPEN LL_AHB3_GRP1_EnableClockLowPower
  1048. * @param Periphs This parameter can be a combination of the following values:
  1049. * @arg @ref LL_AHB3_GRP1_PERIPH_FMC (*)
  1050. * @arg @ref LL_AHB3_GRP1_PERIPH_FSMC (*)
  1051. * @arg @ref LL_AHB3_GRP1_PERIPH_QSPI (*)
  1052. *
  1053. * (*) value not defined in all devices.
  1054. * @retval None
  1055. */
  1056. __STATIC_INLINE void LL_AHB3_GRP1_EnableClockLowPower(uint32_t Periphs)
  1057. {
  1058. __IO uint32_t tmpreg;
  1059. SET_BIT(RCC->AHB3LPENR, Periphs);
  1060. /* Delay after an RCC peripheral clock enabling */
  1061. tmpreg = READ_BIT(RCC->AHB3LPENR, Periphs);
  1062. (void)tmpreg;
  1063. }
  1064. /**
  1065. * @brief Disable AHB3 peripheral clocks in low-power mode
  1066. * @rmtoll AHB3LPENR FMCLPEN LL_AHB3_GRP1_DisableClockLowPower\n
  1067. * AHB3LPENR FSMCLPEN LL_AHB3_GRP1_DisableClockLowPower\n
  1068. * AHB3LPENR QSPILPEN LL_AHB3_GRP1_DisableClockLowPower
  1069. * @param Periphs This parameter can be a combination of the following values:
  1070. * @arg @ref LL_AHB3_GRP1_PERIPH_FMC (*)
  1071. * @arg @ref LL_AHB3_GRP1_PERIPH_FSMC (*)
  1072. * @arg @ref LL_AHB3_GRP1_PERIPH_QSPI (*)
  1073. *
  1074. * (*) value not defined in all devices.
  1075. * @retval None
  1076. */
  1077. __STATIC_INLINE void LL_AHB3_GRP1_DisableClockLowPower(uint32_t Periphs)
  1078. {
  1079. CLEAR_BIT(RCC->AHB3LPENR, Periphs);
  1080. }
  1081. /**
  1082. * @}
  1083. */
  1084. #endif /* RCC_AHB3_SUPPORT */
  1085. /** @defgroup BUS_LL_EF_APB1 APB1
  1086. * @{
  1087. */
  1088. /**
  1089. * @brief Enable APB1 peripherals clock.
  1090. * @rmtoll APB1ENR TIM2EN LL_APB1_GRP1_EnableClock\n
  1091. * APB1ENR TIM3EN LL_APB1_GRP1_EnableClock\n
  1092. * APB1ENR TIM4EN LL_APB1_GRP1_EnableClock\n
  1093. * APB1ENR TIM5EN LL_APB1_GRP1_EnableClock\n
  1094. * APB1ENR TIM6EN LL_APB1_GRP1_EnableClock\n
  1095. * APB1ENR TIM7EN LL_APB1_GRP1_EnableClock\n
  1096. * APB1ENR TIM12EN LL_APB1_GRP1_EnableClock\n
  1097. * APB1ENR TIM13EN LL_APB1_GRP1_EnableClock\n
  1098. * APB1ENR TIM14EN LL_APB1_GRP1_EnableClock\n
  1099. * APB1ENR LPTIM1EN LL_APB1_GRP1_EnableClock\n
  1100. * APB1ENR WWDGEN LL_APB1_GRP1_EnableClock\n
  1101. * APB1ENR SPI2EN LL_APB1_GRP1_EnableClock\n
  1102. * APB1ENR SPI3EN LL_APB1_GRP1_EnableClock\n
  1103. * APB1ENR SPDIFRXEN LL_APB1_GRP1_EnableClock\n
  1104. * APB1ENR USART2EN LL_APB1_GRP1_EnableClock\n
  1105. * APB1ENR USART3EN LL_APB1_GRP1_EnableClock\n
  1106. * APB1ENR UART4EN LL_APB1_GRP1_EnableClock\n
  1107. * APB1ENR UART5EN LL_APB1_GRP1_EnableClock\n
  1108. * APB1ENR I2C1EN LL_APB1_GRP1_EnableClock\n
  1109. * APB1ENR I2C2EN LL_APB1_GRP1_EnableClock\n
  1110. * APB1ENR I2C3EN LL_APB1_GRP1_EnableClock\n
  1111. * APB1ENR FMPI2C1EN LL_APB1_GRP1_EnableClock\n
  1112. * APB1ENR CAN1EN LL_APB1_GRP1_EnableClock\n
  1113. * APB1ENR CAN2EN LL_APB1_GRP1_EnableClock\n
  1114. * APB1ENR CAN3EN LL_APB1_GRP1_EnableClock\n
  1115. * APB1ENR CECEN LL_APB1_GRP1_EnableClock\n
  1116. * APB1ENR PWREN LL_APB1_GRP1_EnableClock\n
  1117. * APB1ENR DACEN LL_APB1_GRP1_EnableClock\n
  1118. * APB1ENR UART7EN LL_APB1_GRP1_EnableClock\n
  1119. * APB1ENR UART8EN LL_APB1_GRP1_EnableClock\n
  1120. * APB1ENR RTCAPBEN LL_APB1_GRP1_EnableClock
  1121. * @param Periphs This parameter can be a combination of the following values:
  1122. * @arg @ref LL_APB1_GRP1_PERIPH_TIM2 (*)
  1123. * @arg @ref LL_APB1_GRP1_PERIPH_TIM3 (*)
  1124. * @arg @ref LL_APB1_GRP1_PERIPH_TIM4 (*)
  1125. * @arg @ref LL_APB1_GRP1_PERIPH_TIM5
  1126. * @arg @ref LL_APB1_GRP1_PERIPH_TIM6 (*)
  1127. * @arg @ref LL_APB1_GRP1_PERIPH_TIM7 (*)
  1128. * @arg @ref LL_APB1_GRP1_PERIPH_TIM12 (*)
  1129. * @arg @ref LL_APB1_GRP1_PERIPH_TIM13 (*)
  1130. * @arg @ref LL_APB1_GRP1_PERIPH_TIM14 (*)
  1131. * @arg @ref LL_APB1_GRP1_PERIPH_LPTIM1 (*)
  1132. * @arg @ref LL_APB1_GRP1_PERIPH_WWDG
  1133. * @arg @ref LL_APB1_GRP1_PERIPH_SPI2 (*)
  1134. * @arg @ref LL_APB1_GRP1_PERIPH_SPI3 (*)
  1135. * @arg @ref LL_APB1_GRP1_PERIPH_SPDIFRX (*)
  1136. * @arg @ref LL_APB1_GRP1_PERIPH_USART2
  1137. * @arg @ref LL_APB1_GRP1_PERIPH_USART3 (*)
  1138. * @arg @ref LL_APB1_GRP1_PERIPH_UART4 (*)
  1139. * @arg @ref LL_APB1_GRP1_PERIPH_UART5 (*)
  1140. * @arg @ref LL_APB1_GRP1_PERIPH_I2C1
  1141. * @arg @ref LL_APB1_GRP1_PERIPH_I2C2
  1142. * @arg @ref LL_APB1_GRP1_PERIPH_I2C3 (*)
  1143. * @arg @ref LL_APB1_GRP1_PERIPH_FMPI2C1 (*)
  1144. * @arg @ref LL_APB1_GRP1_PERIPH_CAN1 (*)
  1145. * @arg @ref LL_APB1_GRP1_PERIPH_CAN2 (*)
  1146. * @arg @ref LL_APB1_GRP1_PERIPH_CAN3 (*)
  1147. * @arg @ref LL_APB1_GRP1_PERIPH_CEC (*)
  1148. * @arg @ref LL_APB1_GRP1_PERIPH_PWR
  1149. * @arg @ref LL_APB1_GRP1_PERIPH_DAC1 (*)
  1150. * @arg @ref LL_APB1_GRP1_PERIPH_UART7 (*)
  1151. * @arg @ref LL_APB1_GRP1_PERIPH_UART8 (*)
  1152. * @arg @ref LL_APB1_GRP1_PERIPH_RTCAPB (*)
  1153. *
  1154. * (*) value not defined in all devices.
  1155. * @retval None
  1156. */
  1157. __STATIC_INLINE void LL_APB1_GRP1_EnableClock(uint32_t Periphs)
  1158. {
  1159. __IO uint32_t tmpreg;
  1160. SET_BIT(RCC->APB1ENR, Periphs);
  1161. /* Delay after an RCC peripheral clock enabling */
  1162. tmpreg = READ_BIT(RCC->APB1ENR, Periphs);
  1163. (void)tmpreg;
  1164. }
  1165. /**
  1166. * @brief Check if APB1 peripheral clock is enabled or not
  1167. * @rmtoll APB1ENR TIM2EN LL_APB1_GRP1_IsEnabledClock\n
  1168. * APB1ENR TIM3EN LL_APB1_GRP1_IsEnabledClock\n
  1169. * APB1ENR TIM4EN LL_APB1_GRP1_IsEnabledClock\n
  1170. * APB1ENR TIM5EN LL_APB1_GRP1_IsEnabledClock\n
  1171. * APB1ENR TIM6EN LL_APB1_GRP1_IsEnabledClock\n
  1172. * APB1ENR TIM7EN LL_APB1_GRP1_IsEnabledClock\n
  1173. * APB1ENR TIM12EN LL_APB1_GRP1_IsEnabledClock\n
  1174. * APB1ENR TIM13EN LL_APB1_GRP1_IsEnabledClock\n
  1175. * APB1ENR TIM14EN LL_APB1_GRP1_IsEnabledClock\n
  1176. * APB1ENR LPTIM1EN LL_APB1_GRP1_IsEnabledClock\n
  1177. * APB1ENR WWDGEN LL_APB1_GRP1_IsEnabledClock\n
  1178. * APB1ENR SPI2EN LL_APB1_GRP1_IsEnabledClock\n
  1179. * APB1ENR SPI3EN LL_APB1_GRP1_IsEnabledClock\n
  1180. * APB1ENR SPDIFRXEN LL_APB1_GRP1_IsEnabledClock\n
  1181. * APB1ENR USART2EN LL_APB1_GRP1_IsEnabledClock\n
  1182. * APB1ENR USART3EN LL_APB1_GRP1_IsEnabledClock\n
  1183. * APB1ENR UART4EN LL_APB1_GRP1_IsEnabledClock\n
  1184. * APB1ENR UART5EN LL_APB1_GRP1_IsEnabledClock\n
  1185. * APB1ENR I2C1EN LL_APB1_GRP1_IsEnabledClock\n
  1186. * APB1ENR I2C2EN LL_APB1_GRP1_IsEnabledClock\n
  1187. * APB1ENR I2C3EN LL_APB1_GRP1_IsEnabledClock\n
  1188. * APB1ENR FMPI2C1EN LL_APB1_GRP1_IsEnabledClock\n
  1189. * APB1ENR CAN1EN LL_APB1_GRP1_IsEnabledClock\n
  1190. * APB1ENR CAN2EN LL_APB1_GRP1_IsEnabledClock\n
  1191. * APB1ENR CAN3EN LL_APB1_GRP1_IsEnabledClock\n
  1192. * APB1ENR CECEN LL_APB1_GRP1_IsEnabledClock\n
  1193. * APB1ENR PWREN LL_APB1_GRP1_IsEnabledClock\n
  1194. * APB1ENR DACEN LL_APB1_GRP1_IsEnabledClock\n
  1195. * APB1ENR UART7EN LL_APB1_GRP1_IsEnabledClock\n
  1196. * APB1ENR UART8EN LL_APB1_GRP1_IsEnabledClock\n
  1197. * APB1ENR RTCAPBEN LL_APB1_GRP1_IsEnabledClock
  1198. * @param Periphs This parameter can be a combination of the following values:
  1199. * @arg @ref LL_APB1_GRP1_PERIPH_TIM2 (*)
  1200. * @arg @ref LL_APB1_GRP1_PERIPH_TIM3 (*)
  1201. * @arg @ref LL_APB1_GRP1_PERIPH_TIM4 (*)
  1202. * @arg @ref LL_APB1_GRP1_PERIPH_TIM5
  1203. * @arg @ref LL_APB1_GRP1_PERIPH_TIM6 (*)
  1204. * @arg @ref LL_APB1_GRP1_PERIPH_TIM7 (*)
  1205. * @arg @ref LL_APB1_GRP1_PERIPH_TIM12 (*)
  1206. * @arg @ref LL_APB1_GRP1_PERIPH_TIM13 (*)
  1207. * @arg @ref LL_APB1_GRP1_PERIPH_TIM14 (*)
  1208. * @arg @ref LL_APB1_GRP1_PERIPH_LPTIM1 (*)
  1209. * @arg @ref LL_APB1_GRP1_PERIPH_WWDG
  1210. * @arg @ref LL_APB1_GRP1_PERIPH_SPI2 (*)
  1211. * @arg @ref LL_APB1_GRP1_PERIPH_SPI3 (*)
  1212. * @arg @ref LL_APB1_GRP1_PERIPH_SPDIFRX (*)
  1213. * @arg @ref LL_APB1_GRP1_PERIPH_USART2
  1214. * @arg @ref LL_APB1_GRP1_PERIPH_USART3 (*)
  1215. * @arg @ref LL_APB1_GRP1_PERIPH_UART4 (*)
  1216. * @arg @ref LL_APB1_GRP1_PERIPH_UART5 (*)
  1217. * @arg @ref LL_APB1_GRP1_PERIPH_I2C1
  1218. * @arg @ref LL_APB1_GRP1_PERIPH_I2C2
  1219. * @arg @ref LL_APB1_GRP1_PERIPH_I2C3 (*)
  1220. * @arg @ref LL_APB1_GRP1_PERIPH_FMPI2C1 (*)
  1221. * @arg @ref LL_APB1_GRP1_PERIPH_CAN1 (*)
  1222. * @arg @ref LL_APB1_GRP1_PERIPH_CAN2 (*)
  1223. * @arg @ref LL_APB1_GRP1_PERIPH_CAN3 (*)
  1224. * @arg @ref LL_APB1_GRP1_PERIPH_CEC (*)
  1225. * @arg @ref LL_APB1_GRP1_PERIPH_PWR
  1226. * @arg @ref LL_APB1_GRP1_PERIPH_DAC1 (*)
  1227. * @arg @ref LL_APB1_GRP1_PERIPH_UART7 (*)
  1228. * @arg @ref LL_APB1_GRP1_PERIPH_UART8 (*)
  1229. * @arg @ref LL_APB1_GRP1_PERIPH_RTCAPB (*)
  1230. *
  1231. * (*) value not defined in all devices.
  1232. * @retval State of Periphs (1 or 0).
  1233. */
  1234. __STATIC_INLINE uint32_t LL_APB1_GRP1_IsEnabledClock(uint32_t Periphs)
  1235. {
  1236. return (READ_BIT(RCC->APB1ENR, Periphs) == Periphs);
  1237. }
  1238. /**
  1239. * @brief Disable APB1 peripherals clock.
  1240. * @rmtoll APB1ENR TIM2EN LL_APB1_GRP1_DisableClock\n
  1241. * APB1ENR TIM3EN LL_APB1_GRP1_DisableClock\n
  1242. * APB1ENR TIM4EN LL_APB1_GRP1_DisableClock\n
  1243. * APB1ENR TIM5EN LL_APB1_GRP1_DisableClock\n
  1244. * APB1ENR TIM6EN LL_APB1_GRP1_DisableClock\n
  1245. * APB1ENR TIM7EN LL_APB1_GRP1_DisableClock\n
  1246. * APB1ENR TIM12EN LL_APB1_GRP1_DisableClock\n
  1247. * APB1ENR TIM13EN LL_APB1_GRP1_DisableClock\n
  1248. * APB1ENR TIM14EN LL_APB1_GRP1_DisableClock\n
  1249. * APB1ENR LPTIM1EN LL_APB1_GRP1_DisableClock\n
  1250. * APB1ENR WWDGEN LL_APB1_GRP1_DisableClock\n
  1251. * APB1ENR SPI2EN LL_APB1_GRP1_DisableClock\n
  1252. * APB1ENR SPI3EN LL_APB1_GRP1_DisableClock\n
  1253. * APB1ENR SPDIFRXEN LL_APB1_GRP1_DisableClock\n
  1254. * APB1ENR USART2EN LL_APB1_GRP1_DisableClock\n
  1255. * APB1ENR USART3EN LL_APB1_GRP1_DisableClock\n
  1256. * APB1ENR UART4EN LL_APB1_GRP1_DisableClock\n
  1257. * APB1ENR UART5EN LL_APB1_GRP1_DisableClock\n
  1258. * APB1ENR I2C1EN LL_APB1_GRP1_DisableClock\n
  1259. * APB1ENR I2C2EN LL_APB1_GRP1_DisableClock\n
  1260. * APB1ENR I2C3EN LL_APB1_GRP1_DisableClock\n
  1261. * APB1ENR FMPI2C1EN LL_APB1_GRP1_DisableClock\n
  1262. * APB1ENR CAN1EN LL_APB1_GRP1_DisableClock\n
  1263. * APB1ENR CAN2EN LL_APB1_GRP1_DisableClock\n
  1264. * APB1ENR CAN3EN LL_APB1_GRP1_DisableClock\n
  1265. * APB1ENR CECEN LL_APB1_GRP1_DisableClock\n
  1266. * APB1ENR PWREN LL_APB1_GRP1_DisableClock\n
  1267. * APB1ENR DACEN LL_APB1_GRP1_DisableClock\n
  1268. * APB1ENR UART7EN LL_APB1_GRP1_DisableClock\n
  1269. * APB1ENR UART8EN LL_APB1_GRP1_DisableClock\n
  1270. * APB1ENR RTCAPBEN LL_APB1_GRP1_DisableClock
  1271. * @param Periphs This parameter can be a combination of the following values:
  1272. * @arg @ref LL_APB1_GRP1_PERIPH_TIM2 (*)
  1273. * @arg @ref LL_APB1_GRP1_PERIPH_TIM3 (*)
  1274. * @arg @ref LL_APB1_GRP1_PERIPH_TIM4 (*)
  1275. * @arg @ref LL_APB1_GRP1_PERIPH_TIM5
  1276. * @arg @ref LL_APB1_GRP1_PERIPH_TIM6 (*)
  1277. * @arg @ref LL_APB1_GRP1_PERIPH_TIM7 (*)
  1278. * @arg @ref LL_APB1_GRP1_PERIPH_TIM12 (*)
  1279. * @arg @ref LL_APB1_GRP1_PERIPH_TIM13 (*)
  1280. * @arg @ref LL_APB1_GRP1_PERIPH_TIM14 (*)
  1281. * @arg @ref LL_APB1_GRP1_PERIPH_LPTIM1 (*)
  1282. * @arg @ref LL_APB1_GRP1_PERIPH_WWDG
  1283. * @arg @ref LL_APB1_GRP1_PERIPH_SPI2 (*)
  1284. * @arg @ref LL_APB1_GRP1_PERIPH_SPI3 (*)
  1285. * @arg @ref LL_APB1_GRP1_PERIPH_SPDIFRX (*)
  1286. * @arg @ref LL_APB1_GRP1_PERIPH_USART2
  1287. * @arg @ref LL_APB1_GRP1_PERIPH_USART3 (*)
  1288. * @arg @ref LL_APB1_GRP1_PERIPH_UART4 (*)
  1289. * @arg @ref LL_APB1_GRP1_PERIPH_UART5 (*)
  1290. * @arg @ref LL_APB1_GRP1_PERIPH_I2C1
  1291. * @arg @ref LL_APB1_GRP1_PERIPH_I2C2
  1292. * @arg @ref LL_APB1_GRP1_PERIPH_I2C3 (*)
  1293. * @arg @ref LL_APB1_GRP1_PERIPH_FMPI2C1 (*)
  1294. * @arg @ref LL_APB1_GRP1_PERIPH_CAN1 (*)
  1295. * @arg @ref LL_APB1_GRP1_PERIPH_CAN2 (*)
  1296. * @arg @ref LL_APB1_GRP1_PERIPH_CAN3 (*)
  1297. * @arg @ref LL_APB1_GRP1_PERIPH_CEC (*)
  1298. * @arg @ref LL_APB1_GRP1_PERIPH_PWR
  1299. * @arg @ref LL_APB1_GRP1_PERIPH_DAC1 (*)
  1300. * @arg @ref LL_APB1_GRP1_PERIPH_UART7 (*)
  1301. * @arg @ref LL_APB1_GRP1_PERIPH_UART8 (*)
  1302. * @arg @ref LL_APB1_GRP1_PERIPH_RTCAPB (*)
  1303. *
  1304. * (*) value not defined in all devices.
  1305. * @retval None
  1306. */
  1307. __STATIC_INLINE void LL_APB1_GRP1_DisableClock(uint32_t Periphs)
  1308. {
  1309. CLEAR_BIT(RCC->APB1ENR, Periphs);
  1310. }
  1311. /**
  1312. * @brief Force APB1 peripherals reset.
  1313. * @rmtoll APB1RSTR TIM2RST LL_APB1_GRP1_ForceReset\n
  1314. * APB1RSTR TIM3RST LL_APB1_GRP1_ForceReset\n
  1315. * APB1RSTR TIM4RST LL_APB1_GRP1_ForceReset\n
  1316. * APB1RSTR TIM5RST LL_APB1_GRP1_ForceReset\n
  1317. * APB1RSTR TIM6RST LL_APB1_GRP1_ForceReset\n
  1318. * APB1RSTR TIM7RST LL_APB1_GRP1_ForceReset\n
  1319. * APB1RSTR TIM12RST LL_APB1_GRP1_ForceReset\n
  1320. * APB1RSTR TIM13RST LL_APB1_GRP1_ForceReset\n
  1321. * APB1RSTR TIM14RST LL_APB1_GRP1_ForceReset\n
  1322. * APB1RSTR LPTIM1RST LL_APB1_GRP1_ForceReset\n
  1323. * APB1RSTR WWDGRST LL_APB1_GRP1_ForceReset\n
  1324. * APB1RSTR SPI2RST LL_APB1_GRP1_ForceReset\n
  1325. * APB1RSTR SPI3RST LL_APB1_GRP1_ForceReset\n
  1326. * APB1RSTR SPDIFRXRST LL_APB1_GRP1_ForceReset\n
  1327. * APB1RSTR USART2RST LL_APB1_GRP1_ForceReset\n
  1328. * APB1RSTR USART3RST LL_APB1_GRP1_ForceReset\n
  1329. * APB1RSTR UART4RST LL_APB1_GRP1_ForceReset\n
  1330. * APB1RSTR UART5RST LL_APB1_GRP1_ForceReset\n
  1331. * APB1RSTR I2C1RST LL_APB1_GRP1_ForceReset\n
  1332. * APB1RSTR I2C2RST LL_APB1_GRP1_ForceReset\n
  1333. * APB1RSTR I2C3RST LL_APB1_GRP1_ForceReset\n
  1334. * APB1RSTR FMPI2C1RST LL_APB1_GRP1_ForceReset\n
  1335. * APB1RSTR CAN1RST LL_APB1_GRP1_ForceReset\n
  1336. * APB1RSTR CAN2RST LL_APB1_GRP1_ForceReset\n
  1337. * APB1RSTR CAN3RST LL_APB1_GRP1_ForceReset\n
  1338. * APB1RSTR CECRST LL_APB1_GRP1_ForceReset\n
  1339. * APB1RSTR PWRRST LL_APB1_GRP1_ForceReset\n
  1340. * APB1RSTR DACRST LL_APB1_GRP1_ForceReset\n
  1341. * APB1RSTR UART7RST LL_APB1_GRP1_ForceReset\n
  1342. * APB1RSTR UART8RST LL_APB1_GRP1_ForceReset
  1343. * @param Periphs This parameter can be a combination of the following values:
  1344. * @arg @ref LL_APB1_GRP1_PERIPH_TIM2 (*)
  1345. * @arg @ref LL_APB1_GRP1_PERIPH_TIM3 (*)
  1346. * @arg @ref LL_APB1_GRP1_PERIPH_TIM4 (*)
  1347. * @arg @ref LL_APB1_GRP1_PERIPH_TIM5
  1348. * @arg @ref LL_APB1_GRP1_PERIPH_TIM6 (*)
  1349. * @arg @ref LL_APB1_GRP1_PERIPH_TIM7 (*)
  1350. * @arg @ref LL_APB1_GRP1_PERIPH_TIM12 (*)
  1351. * @arg @ref LL_APB1_GRP1_PERIPH_TIM13 (*)
  1352. * @arg @ref LL_APB1_GRP1_PERIPH_TIM14 (*)
  1353. * @arg @ref LL_APB1_GRP1_PERIPH_LPTIM1 (*)
  1354. * @arg @ref LL_APB1_GRP1_PERIPH_WWDG
  1355. * @arg @ref LL_APB1_GRP1_PERIPH_SPI2 (*)
  1356. * @arg @ref LL_APB1_GRP1_PERIPH_SPI3 (*)
  1357. * @arg @ref LL_APB1_GRP1_PERIPH_SPDIFRX (*)
  1358. * @arg @ref LL_APB1_GRP1_PERIPH_USART2
  1359. * @arg @ref LL_APB1_GRP1_PERIPH_USART3 (*)
  1360. * @arg @ref LL_APB1_GRP1_PERIPH_UART4 (*)
  1361. * @arg @ref LL_APB1_GRP1_PERIPH_UART5 (*)
  1362. * @arg @ref LL_APB1_GRP1_PERIPH_I2C1
  1363. * @arg @ref LL_APB1_GRP1_PERIPH_I2C2
  1364. * @arg @ref LL_APB1_GRP1_PERIPH_I2C3 (*)
  1365. * @arg @ref LL_APB1_GRP1_PERIPH_FMPI2C1 (*)
  1366. * @arg @ref LL_APB1_GRP1_PERIPH_CAN1 (*)
  1367. * @arg @ref LL_APB1_GRP1_PERIPH_CAN2 (*)
  1368. * @arg @ref LL_APB1_GRP1_PERIPH_CAN3 (*)
  1369. * @arg @ref LL_APB1_GRP1_PERIPH_CEC (*)
  1370. * @arg @ref LL_APB1_GRP1_PERIPH_PWR
  1371. * @arg @ref LL_APB1_GRP1_PERIPH_DAC1 (*)
  1372. * @arg @ref LL_APB1_GRP1_PERIPH_UART7 (*)
  1373. * @arg @ref LL_APB1_GRP1_PERIPH_UART8 (*)
  1374. *
  1375. * (*) value not defined in all devices.
  1376. * @retval None
  1377. */
  1378. __STATIC_INLINE void LL_APB1_GRP1_ForceReset(uint32_t Periphs)
  1379. {
  1380. SET_BIT(RCC->APB1RSTR, Periphs);
  1381. }
  1382. /**
  1383. * @brief Release APB1 peripherals reset.
  1384. * @rmtoll APB1RSTR TIM2RST LL_APB1_GRP1_ReleaseReset\n
  1385. * APB1RSTR TIM3RST LL_APB1_GRP1_ReleaseReset\n
  1386. * APB1RSTR TIM4RST LL_APB1_GRP1_ReleaseReset\n
  1387. * APB1RSTR TIM5RST LL_APB1_GRP1_ReleaseReset\n
  1388. * APB1RSTR TIM6RST LL_APB1_GRP1_ReleaseReset\n
  1389. * APB1RSTR TIM7RST LL_APB1_GRP1_ReleaseReset\n
  1390. * APB1RSTR TIM12RST LL_APB1_GRP1_ReleaseReset\n
  1391. * APB1RSTR TIM13RST LL_APB1_GRP1_ReleaseReset\n
  1392. * APB1RSTR TIM14RST LL_APB1_GRP1_ReleaseReset\n
  1393. * APB1RSTR LPTIM1RST LL_APB1_GRP1_ReleaseReset\n
  1394. * APB1RSTR WWDGRST LL_APB1_GRP1_ReleaseReset\n
  1395. * APB1RSTR SPI2RST LL_APB1_GRP1_ReleaseReset\n
  1396. * APB1RSTR SPI3RST LL_APB1_GRP1_ReleaseReset\n
  1397. * APB1RSTR SPDIFRXRST LL_APB1_GRP1_ReleaseReset\n
  1398. * APB1RSTR USART2RST LL_APB1_GRP1_ReleaseReset\n
  1399. * APB1RSTR USART3RST LL_APB1_GRP1_ReleaseReset\n
  1400. * APB1RSTR UART4RST LL_APB1_GRP1_ReleaseReset\n
  1401. * APB1RSTR UART5RST LL_APB1_GRP1_ReleaseReset\n
  1402. * APB1RSTR I2C1RST LL_APB1_GRP1_ReleaseReset\n
  1403. * APB1RSTR I2C2RST LL_APB1_GRP1_ReleaseReset\n
  1404. * APB1RSTR I2C3RST LL_APB1_GRP1_ReleaseReset\n
  1405. * APB1RSTR FMPI2C1RST LL_APB1_GRP1_ReleaseReset\n
  1406. * APB1RSTR CAN1RST LL_APB1_GRP1_ReleaseReset\n
  1407. * APB1RSTR CAN2RST LL_APB1_GRP1_ReleaseReset\n
  1408. * APB1RSTR CAN3RST LL_APB1_GRP1_ReleaseReset\n
  1409. * APB1RSTR CECRST LL_APB1_GRP1_ReleaseReset\n
  1410. * APB1RSTR PWRRST LL_APB1_GRP1_ReleaseReset\n
  1411. * APB1RSTR DACRST LL_APB1_GRP1_ReleaseReset\n
  1412. * APB1RSTR UART7RST LL_APB1_GRP1_ReleaseReset\n
  1413. * APB1RSTR UART8RST LL_APB1_GRP1_ReleaseReset
  1414. * @param Periphs This parameter can be a combination of the following values:
  1415. * @arg @ref LL_APB1_GRP1_PERIPH_TIM2 (*)
  1416. * @arg @ref LL_APB1_GRP1_PERIPH_TIM3 (*)
  1417. * @arg @ref LL_APB1_GRP1_PERIPH_TIM4 (*)
  1418. * @arg @ref LL_APB1_GRP1_PERIPH_TIM5
  1419. * @arg @ref LL_APB1_GRP1_PERIPH_TIM6 (*)
  1420. * @arg @ref LL_APB1_GRP1_PERIPH_TIM7 (*)
  1421. * @arg @ref LL_APB1_GRP1_PERIPH_TIM12 (*)
  1422. * @arg @ref LL_APB1_GRP1_PERIPH_TIM13 (*)
  1423. * @arg @ref LL_APB1_GRP1_PERIPH_TIM14 (*)
  1424. * @arg @ref LL_APB1_GRP1_PERIPH_LPTIM1 (*)
  1425. * @arg @ref LL_APB1_GRP1_PERIPH_WWDG
  1426. * @arg @ref LL_APB1_GRP1_PERIPH_SPI2 (*)
  1427. * @arg @ref LL_APB1_GRP1_PERIPH_SPI3 (*)
  1428. * @arg @ref LL_APB1_GRP1_PERIPH_SPDIFRX (*)
  1429. * @arg @ref LL_APB1_GRP1_PERIPH_USART2
  1430. * @arg @ref LL_APB1_GRP1_PERIPH_USART3 (*)
  1431. * @arg @ref LL_APB1_GRP1_PERIPH_UART4 (*)
  1432. * @arg @ref LL_APB1_GRP1_PERIPH_UART5 (*)
  1433. * @arg @ref LL_APB1_GRP1_PERIPH_I2C1
  1434. * @arg @ref LL_APB1_GRP1_PERIPH_I2C2
  1435. * @arg @ref LL_APB1_GRP1_PERIPH_I2C3 (*)
  1436. * @arg @ref LL_APB1_GRP1_PERIPH_FMPI2C1 (*)
  1437. * @arg @ref LL_APB1_GRP1_PERIPH_CAN1 (*)
  1438. * @arg @ref LL_APB1_GRP1_PERIPH_CAN2 (*)
  1439. * @arg @ref LL_APB1_GRP1_PERIPH_CAN3 (*)
  1440. * @arg @ref LL_APB1_GRP1_PERIPH_CEC (*)
  1441. * @arg @ref LL_APB1_GRP1_PERIPH_PWR
  1442. * @arg @ref LL_APB1_GRP1_PERIPH_DAC1 (*)
  1443. * @arg @ref LL_APB1_GRP1_PERIPH_UART7 (*)
  1444. * @arg @ref LL_APB1_GRP1_PERIPH_UART8 (*)
  1445. *
  1446. * (*) value not defined in all devices.
  1447. * @retval None
  1448. */
  1449. __STATIC_INLINE void LL_APB1_GRP1_ReleaseReset(uint32_t Periphs)
  1450. {
  1451. CLEAR_BIT(RCC->APB1RSTR, Periphs);
  1452. }
  1453. /**
  1454. * @brief Enable APB1 peripheral clocks in low-power mode
  1455. * @rmtoll APB1LPENR TIM2LPEN LL_APB1_GRP1_EnableClockLowPower\n
  1456. * APB1LPENR TIM3LPEN LL_APB1_GRP1_EnableClockLowPower\n
  1457. * APB1LPENR TIM4LPEN LL_APB1_GRP1_EnableClockLowPower\n
  1458. * APB1LPENR TIM5LPEN LL_APB1_GRP1_EnableClockLowPower\n
  1459. * APB1LPENR TIM6LPEN LL_APB1_GRP1_EnableClockLowPower\n
  1460. * APB1LPENR TIM7LPEN LL_APB1_GRP1_EnableClockLowPower\n
  1461. * APB1LPENR TIM12LPEN LL_APB1_GRP1_EnableClockLowPower\n
  1462. * APB1LPENR TIM13LPEN LL_APB1_GRP1_EnableClockLowPower\n
  1463. * APB1LPENR TIM14LPEN LL_APB1_GRP1_EnableClockLowPower\n
  1464. * APB1LPENR LPTIM1LPEN LL_APB1_GRP1_EnableClockLowPower\n
  1465. * APB1LPENR WWDGLPEN LL_APB1_GRP1_EnableClockLowPower\n
  1466. * APB1LPENR SPI2LPEN LL_APB1_GRP1_EnableClockLowPower\n
  1467. * APB1LPENR SPI3LPEN LL_APB1_GRP1_EnableClockLowPower\n
  1468. * APB1LPENR SPDIFRXLPEN LL_APB1_GRP1_EnableClockLowPower\n
  1469. * APB1LPENR USART2LPEN LL_APB1_GRP1_EnableClockLowPower\n
  1470. * APB1LPENR USART3LPEN LL_APB1_GRP1_EnableClockLowPower\n
  1471. * APB1LPENR UART4LPEN LL_APB1_GRP1_EnableClockLowPower\n
  1472. * APB1LPENR UART5LPEN LL_APB1_GRP1_EnableClockLowPower\n
  1473. * APB1LPENR I2C1LPEN LL_APB1_GRP1_EnableClockLowPower\n
  1474. * APB1LPENR I2C2LPEN LL_APB1_GRP1_EnableClockLowPower\n
  1475. * APB1LPENR I2C3LPEN LL_APB1_GRP1_EnableClockLowPower\n
  1476. * APB1LPENR FMPI2C1LPEN LL_APB1_GRP1_EnableClockLowPower\n
  1477. * APB1LPENR CAN1LPEN LL_APB1_GRP1_EnableClockLowPower\n
  1478. * APB1LPENR CAN2LPEN LL_APB1_GRP1_EnableClockLowPower\n
  1479. * APB1LPENR CAN3LPEN LL_APB1_GRP1_EnableClockLowPower\n
  1480. * APB1LPENR CECLPEN LL_APB1_GRP1_EnableClockLowPower\n
  1481. * APB1LPENR PWRLPEN LL_APB1_GRP1_EnableClockLowPower\n
  1482. * APB1LPENR DACLPEN LL_APB1_GRP1_EnableClockLowPower\n
  1483. * APB1LPENR UART7LPEN LL_APB1_GRP1_EnableClockLowPower\n
  1484. * APB1LPENR UART8LPEN LL_APB1_GRP1_EnableClockLowPower\n
  1485. * APB1LPENR RTCAPBLPEN LL_APB1_GRP1_EnableClockLowPower
  1486. * @param Periphs This parameter can be a combination of the following values:
  1487. * @arg @ref LL_APB1_GRP1_PERIPH_TIM2 (*)
  1488. * @arg @ref LL_APB1_GRP1_PERIPH_TIM3 (*)
  1489. * @arg @ref LL_APB1_GRP1_PERIPH_TIM4 (*)
  1490. * @arg @ref LL_APB1_GRP1_PERIPH_TIM5
  1491. * @arg @ref LL_APB1_GRP1_PERIPH_TIM6 (*)
  1492. * @arg @ref LL_APB1_GRP1_PERIPH_TIM7 (*)
  1493. * @arg @ref LL_APB1_GRP1_PERIPH_TIM12 (*)
  1494. * @arg @ref LL_APB1_GRP1_PERIPH_TIM13 (*)
  1495. * @arg @ref LL_APB1_GRP1_PERIPH_TIM14 (*)
  1496. * @arg @ref LL_APB1_GRP1_PERIPH_LPTIM1 (*)
  1497. * @arg @ref LL_APB1_GRP1_PERIPH_WWDG
  1498. * @arg @ref LL_APB1_GRP1_PERIPH_SPI2 (*)
  1499. * @arg @ref LL_APB1_GRP1_PERIPH_SPI3 (*)
  1500. * @arg @ref LL_APB1_GRP1_PERIPH_SPDIFRX (*)
  1501. * @arg @ref LL_APB1_GRP1_PERIPH_USART2
  1502. * @arg @ref LL_APB1_GRP1_PERIPH_USART3 (*)
  1503. * @arg @ref LL_APB1_GRP1_PERIPH_UART4 (*)
  1504. * @arg @ref LL_APB1_GRP1_PERIPH_UART5 (*)
  1505. * @arg @ref LL_APB1_GRP1_PERIPH_I2C1
  1506. * @arg @ref LL_APB1_GRP1_PERIPH_I2C2
  1507. * @arg @ref LL_APB1_GRP1_PERIPH_I2C3 (*)
  1508. * @arg @ref LL_APB1_GRP1_PERIPH_FMPI2C1 (*)
  1509. * @arg @ref LL_APB1_GRP1_PERIPH_CAN1 (*)
  1510. * @arg @ref LL_APB1_GRP1_PERIPH_CAN2 (*)
  1511. * @arg @ref LL_APB1_GRP1_PERIPH_CAN3 (*)
  1512. * @arg @ref LL_APB1_GRP1_PERIPH_CEC (*)
  1513. * @arg @ref LL_APB1_GRP1_PERIPH_PWR
  1514. * @arg @ref LL_APB1_GRP1_PERIPH_DAC1 (*)
  1515. * @arg @ref LL_APB1_GRP1_PERIPH_UART7 (*)
  1516. * @arg @ref LL_APB1_GRP1_PERIPH_UART8 (*)
  1517. * @arg @ref LL_APB1_GRP1_PERIPH_RTCAPB (*)
  1518. *
  1519. * (*) value not defined in all devices.
  1520. * @retval None
  1521. */
  1522. __STATIC_INLINE void LL_APB1_GRP1_EnableClockLowPower(uint32_t Periphs)
  1523. {
  1524. __IO uint32_t tmpreg;
  1525. SET_BIT(RCC->APB1LPENR, Periphs);
  1526. /* Delay after an RCC peripheral clock enabling */
  1527. tmpreg = READ_BIT(RCC->APB1LPENR, Periphs);
  1528. (void)tmpreg;
  1529. }
  1530. /**
  1531. * @brief Disable APB1 peripheral clocks in low-power mode
  1532. * @rmtoll APB1LPENR TIM2LPEN LL_APB1_GRP1_DisableClockLowPower\n
  1533. * APB1LPENR TIM3LPEN LL_APB1_GRP1_DisableClockLowPower\n
  1534. * APB1LPENR TIM4LPEN LL_APB1_GRP1_DisableClockLowPower\n
  1535. * APB1LPENR TIM5LPEN LL_APB1_GRP1_DisableClockLowPower\n
  1536. * APB1LPENR TIM6LPEN LL_APB1_GRP1_DisableClockLowPower\n
  1537. * APB1LPENR TIM7LPEN LL_APB1_GRP1_DisableClockLowPower\n
  1538. * APB1LPENR TIM12LPEN LL_APB1_GRP1_DisableClockLowPower\n
  1539. * APB1LPENR TIM13LPEN LL_APB1_GRP1_DisableClockLowPower\n
  1540. * APB1LPENR TIM14LPEN LL_APB1_GRP1_DisableClockLowPower\n
  1541. * APB1LPENR LPTIM1LPEN LL_APB1_GRP1_DisableClockLowPower\n
  1542. * APB1LPENR WWDGLPEN LL_APB1_GRP1_DisableClockLowPower\n
  1543. * APB1LPENR SPI2LPEN LL_APB1_GRP1_DisableClockLowPower\n
  1544. * APB1LPENR SPI3LPEN LL_APB1_GRP1_DisableClockLowPower\n
  1545. * APB1LPENR SPDIFRXLPEN LL_APB1_GRP1_DisableClockLowPower\n
  1546. * APB1LPENR USART2LPEN LL_APB1_GRP1_DisableClockLowPower\n
  1547. * APB1LPENR USART3LPEN LL_APB1_GRP1_DisableClockLowPower\n
  1548. * APB1LPENR UART4LPEN LL_APB1_GRP1_DisableClockLowPower\n
  1549. * APB1LPENR UART5LPEN LL_APB1_GRP1_DisableClockLowPower\n
  1550. * APB1LPENR I2C1LPEN LL_APB1_GRP1_DisableClockLowPower\n
  1551. * APB1LPENR I2C2LPEN LL_APB1_GRP1_DisableClockLowPower\n
  1552. * APB1LPENR I2C3LPEN LL_APB1_GRP1_DisableClockLowPower\n
  1553. * APB1LPENR FMPI2C1LPEN LL_APB1_GRP1_DisableClockLowPower\n
  1554. * APB1LPENR CAN1LPEN LL_APB1_GRP1_DisableClockLowPower\n
  1555. * APB1LPENR CAN2LPEN LL_APB1_GRP1_DisableClockLowPower\n
  1556. * APB1LPENR CAN3LPEN LL_APB1_GRP1_DisableClockLowPower\n
  1557. * APB1LPENR CECLPEN LL_APB1_GRP1_DisableClockLowPower\n
  1558. * APB1LPENR PWRLPEN LL_APB1_GRP1_DisableClockLowPower\n
  1559. * APB1LPENR DACLPEN LL_APB1_GRP1_DisableClockLowPower\n
  1560. * APB1LPENR UART7LPEN LL_APB1_GRP1_DisableClockLowPower\n
  1561. * APB1LPENR UART8LPEN LL_APB1_GRP1_DisableClockLowPower\n
  1562. * APB1LPENR RTCAPBLPEN LL_APB1_GRP1_DisableClockLowPower
  1563. * @param Periphs This parameter can be a combination of the following values:
  1564. * @arg @ref LL_APB1_GRP1_PERIPH_TIM2 (*)
  1565. * @arg @ref LL_APB1_GRP1_PERIPH_TIM3 (*)
  1566. * @arg @ref LL_APB1_GRP1_PERIPH_TIM4 (*)
  1567. * @arg @ref LL_APB1_GRP1_PERIPH_TIM5
  1568. * @arg @ref LL_APB1_GRP1_PERIPH_TIM6 (*)
  1569. * @arg @ref LL_APB1_GRP1_PERIPH_TIM7 (*)
  1570. * @arg @ref LL_APB1_GRP1_PERIPH_TIM12 (*)
  1571. * @arg @ref LL_APB1_GRP1_PERIPH_TIM13 (*)
  1572. * @arg @ref LL_APB1_GRP1_PERIPH_TIM14 (*)
  1573. * @arg @ref LL_APB1_GRP1_PERIPH_LPTIM1 (*)
  1574. * @arg @ref LL_APB1_GRP1_PERIPH_WWDG
  1575. * @arg @ref LL_APB1_GRP1_PERIPH_SPI2 (*)
  1576. * @arg @ref LL_APB1_GRP1_PERIPH_SPI3 (*)
  1577. * @arg @ref LL_APB1_GRP1_PERIPH_SPDIFRX (*)
  1578. * @arg @ref LL_APB1_GRP1_PERIPH_USART2
  1579. * @arg @ref LL_APB1_GRP1_PERIPH_USART3 (*)
  1580. * @arg @ref LL_APB1_GRP1_PERIPH_UART4 (*)
  1581. * @arg @ref LL_APB1_GRP1_PERIPH_UART5 (*)
  1582. * @arg @ref LL_APB1_GRP1_PERIPH_I2C1
  1583. * @arg @ref LL_APB1_GRP1_PERIPH_I2C2
  1584. * @arg @ref LL_APB1_GRP1_PERIPH_I2C3 (*)
  1585. * @arg @ref LL_APB1_GRP1_PERIPH_FMPI2C1 (*)
  1586. * @arg @ref LL_APB1_GRP1_PERIPH_CAN1 (*)
  1587. * @arg @ref LL_APB1_GRP1_PERIPH_CAN2 (*)
  1588. * @arg @ref LL_APB1_GRP1_PERIPH_CAN3 (*)
  1589. * @arg @ref LL_APB1_GRP1_PERIPH_CEC (*)
  1590. * @arg @ref LL_APB1_GRP1_PERIPH_PWR
  1591. * @arg @ref LL_APB1_GRP1_PERIPH_DAC1 (*)
  1592. * @arg @ref LL_APB1_GRP1_PERIPH_UART7 (*)
  1593. * @arg @ref LL_APB1_GRP1_PERIPH_UART8 (*)
  1594. * @arg @ref LL_APB1_GRP1_PERIPH_RTCAPB (*)
  1595. *
  1596. * (*) value not defined in all devices.
  1597. * @retval None
  1598. */
  1599. __STATIC_INLINE void LL_APB1_GRP1_DisableClockLowPower(uint32_t Periphs)
  1600. {
  1601. CLEAR_BIT(RCC->APB1LPENR, Periphs);
  1602. }
  1603. /**
  1604. * @}
  1605. */
  1606. /** @defgroup BUS_LL_EF_APB2 APB2
  1607. * @{
  1608. */
  1609. /**
  1610. * @brief Enable APB2 peripherals clock.
  1611. * @rmtoll APB2ENR TIM1EN LL_APB2_GRP1_EnableClock\n
  1612. * APB2ENR TIM8EN LL_APB2_GRP1_EnableClock\n
  1613. * APB2ENR USART1EN LL_APB2_GRP1_EnableClock\n
  1614. * APB2ENR USART6EN LL_APB2_GRP1_EnableClock\n
  1615. * APB2ENR UART9EN LL_APB2_GRP1_EnableClock\n
  1616. * APB2ENR UART10EN LL_APB2_GRP1_EnableClock\n
  1617. * APB2ENR ADC1EN LL_APB2_GRP1_EnableClock\n
  1618. * APB2ENR ADC2EN LL_APB2_GRP1_EnableClock\n
  1619. * APB2ENR ADC3EN LL_APB2_GRP1_EnableClock\n
  1620. * APB2ENR SDIOEN LL_APB2_GRP1_EnableClock\n
  1621. * APB2ENR SPI1EN LL_APB2_GRP1_EnableClock\n
  1622. * APB2ENR SPI4EN LL_APB2_GRP1_EnableClock\n
  1623. * APB2ENR SYSCFGEN LL_APB2_GRP1_EnableClock\n
  1624. * APB2ENR EXTITEN LL_APB2_GRP1_EnableClock\n
  1625. * APB2ENR TIM9EN LL_APB2_GRP1_EnableClock\n
  1626. * APB2ENR TIM10EN LL_APB2_GRP1_EnableClock\n
  1627. * APB2ENR TIM11EN LL_APB2_GRP1_EnableClock\n
  1628. * APB2ENR SPI5EN LL_APB2_GRP1_EnableClock\n
  1629. * APB2ENR SPI6EN LL_APB2_GRP1_EnableClock\n
  1630. * APB2ENR SAI1EN LL_APB2_GRP1_EnableClock\n
  1631. * APB2ENR SAI2EN LL_APB2_GRP1_EnableClock\n
  1632. * APB2ENR LTDCEN LL_APB2_GRP1_EnableClock\n
  1633. * APB2ENR DSIEN LL_APB2_GRP1_EnableClock\n
  1634. * APB2ENR DFSDM1EN LL_APB2_GRP1_EnableClock\n
  1635. * APB2ENR DFSDM2EN LL_APB2_GRP1_EnableClock
  1636. * @param Periphs This parameter can be a combination of the following values:
  1637. * @arg @ref LL_APB2_GRP1_PERIPH_TIM1
  1638. * @arg @ref LL_APB2_GRP1_PERIPH_TIM8 (*)
  1639. * @arg @ref LL_APB2_GRP1_PERIPH_USART1
  1640. * @arg @ref LL_APB2_GRP1_PERIPH_USART6 (*)
  1641. * @arg @ref LL_APB2_GRP1_PERIPH_UART9 (*)
  1642. * @arg @ref LL_APB2_GRP1_PERIPH_UART10 (*)
  1643. * @arg @ref LL_APB2_GRP1_PERIPH_ADC1
  1644. * @arg @ref LL_APB2_GRP1_PERIPH_ADC2 (*)
  1645. * @arg @ref LL_APB2_GRP1_PERIPH_ADC3 (*)
  1646. * @arg @ref LL_APB2_GRP1_PERIPH_SDIO (*)
  1647. * @arg @ref LL_APB2_GRP1_PERIPH_SPI1
  1648. * @arg @ref LL_APB2_GRP1_PERIPH_SPI4 (*)
  1649. * @arg @ref LL_APB2_GRP1_PERIPH_SYSCFG
  1650. * @arg @ref LL_APB2_GRP1_PERIPH_EXTI (*)
  1651. * @arg @ref LL_APB2_GRP1_PERIPH_TIM9
  1652. * @arg @ref LL_APB2_GRP1_PERIPH_TIM10 (*)
  1653. * @arg @ref LL_APB2_GRP1_PERIPH_TIM11
  1654. * @arg @ref LL_APB2_GRP1_PERIPH_SPI5 (*)
  1655. * @arg @ref LL_APB2_GRP1_PERIPH_SPI6 (*)
  1656. * @arg @ref LL_APB2_GRP1_PERIPH_SAI1 (*)
  1657. * @arg @ref LL_APB2_GRP1_PERIPH_SAI2 (*)
  1658. * @arg @ref LL_APB2_GRP1_PERIPH_LTDC (*)
  1659. * @arg @ref LL_APB2_GRP1_PERIPH_DSI (*)
  1660. * @arg @ref LL_APB2_GRP1_PERIPH_DFSDM1 (*)
  1661. * @arg @ref LL_APB2_GRP1_PERIPH_DFSDM2 (*)
  1662. *
  1663. * (*) value not defined in all devices.
  1664. * @retval None
  1665. */
  1666. __STATIC_INLINE void LL_APB2_GRP1_EnableClock(uint32_t Periphs)
  1667. {
  1668. __IO uint32_t tmpreg;
  1669. SET_BIT(RCC->APB2ENR, Periphs);
  1670. /* Delay after an RCC peripheral clock enabling */
  1671. tmpreg = READ_BIT(RCC->APB2ENR, Periphs);
  1672. (void)tmpreg;
  1673. }
  1674. /**
  1675. * @brief Check if APB2 peripheral clock is enabled or not
  1676. * @rmtoll APB2ENR TIM1EN LL_APB2_GRP1_IsEnabledClock\n
  1677. * APB2ENR TIM8EN LL_APB2_GRP1_IsEnabledClock\n
  1678. * APB2ENR USART1EN LL_APB2_GRP1_IsEnabledClock\n
  1679. * APB2ENR USART6EN LL_APB2_GRP1_IsEnabledClock\n
  1680. * APB2ENR UART9EN LL_APB2_GRP1_IsEnabledClock\n
  1681. * APB2ENR UART10EN LL_APB2_GRP1_IsEnabledClock\n
  1682. * APB2ENR ADC1EN LL_APB2_GRP1_IsEnabledClock\n
  1683. * APB2ENR ADC2EN LL_APB2_GRP1_IsEnabledClock\n
  1684. * APB2ENR ADC3EN LL_APB2_GRP1_IsEnabledClock\n
  1685. * APB2ENR SDIOEN LL_APB2_GRP1_IsEnabledClock\n
  1686. * APB2ENR SPI1EN LL_APB2_GRP1_IsEnabledClock\n
  1687. * APB2ENR SPI4EN LL_APB2_GRP1_IsEnabledClock\n
  1688. * APB2ENR SYSCFGEN LL_APB2_GRP1_IsEnabledClock\n
  1689. * APB2ENR EXTITEN LL_APB2_GRP1_IsEnabledClock\n
  1690. * APB2ENR TIM9EN LL_APB2_GRP1_IsEnabledClock\n
  1691. * APB2ENR TIM10EN LL_APB2_GRP1_IsEnabledClock\n
  1692. * APB2ENR TIM11EN LL_APB2_GRP1_IsEnabledClock\n
  1693. * APB2ENR SPI5EN LL_APB2_GRP1_IsEnabledClock\n
  1694. * APB2ENR SPI6EN LL_APB2_GRP1_IsEnabledClock\n
  1695. * APB2ENR SAI1EN LL_APB2_GRP1_IsEnabledClock\n
  1696. * APB2ENR SAI2EN LL_APB2_GRP1_IsEnabledClock\n
  1697. * APB2ENR LTDCEN LL_APB2_GRP1_IsEnabledClock\n
  1698. * APB2ENR DSIEN LL_APB2_GRP1_IsEnabledClock\n
  1699. * APB2ENR DFSDM1EN LL_APB2_GRP1_IsEnabledClock\n
  1700. * APB2ENR DFSDM2EN LL_APB2_GRP1_IsEnabledClock
  1701. * @param Periphs This parameter can be a combination of the following values:
  1702. * @arg @ref LL_APB2_GRP1_PERIPH_TIM1
  1703. * @arg @ref LL_APB2_GRP1_PERIPH_TIM8 (*)
  1704. * @arg @ref LL_APB2_GRP1_PERIPH_USART1
  1705. * @arg @ref LL_APB2_GRP1_PERIPH_USART6 (*)
  1706. * @arg @ref LL_APB2_GRP1_PERIPH_UART9 (*)
  1707. * @arg @ref LL_APB2_GRP1_PERIPH_UART10 (*)
  1708. * @arg @ref LL_APB2_GRP1_PERIPH_ADC1
  1709. * @arg @ref LL_APB2_GRP1_PERIPH_ADC2 (*)
  1710. * @arg @ref LL_APB2_GRP1_PERIPH_ADC3 (*)
  1711. * @arg @ref LL_APB2_GRP1_PERIPH_SDIO (*)
  1712. * @arg @ref LL_APB2_GRP1_PERIPH_SPI1
  1713. * @arg @ref LL_APB2_GRP1_PERIPH_SPI4 (*)
  1714. * @arg @ref LL_APB2_GRP1_PERIPH_SYSCFG
  1715. * @arg @ref LL_APB2_GRP1_PERIPH_EXTI (*)
  1716. * @arg @ref LL_APB2_GRP1_PERIPH_TIM9
  1717. * @arg @ref LL_APB2_GRP1_PERIPH_TIM10 (*)
  1718. * @arg @ref LL_APB2_GRP1_PERIPH_TIM11
  1719. * @arg @ref LL_APB2_GRP1_PERIPH_SPI5 (*)
  1720. * @arg @ref LL_APB2_GRP1_PERIPH_SPI6 (*)
  1721. * @arg @ref LL_APB2_GRP1_PERIPH_SAI1 (*)
  1722. * @arg @ref LL_APB2_GRP1_PERIPH_SAI2 (*)
  1723. * @arg @ref LL_APB2_GRP1_PERIPH_LTDC (*)
  1724. * @arg @ref LL_APB2_GRP1_PERIPH_DSI (*)
  1725. * @arg @ref LL_APB2_GRP1_PERIPH_DFSDM1 (*)
  1726. * @arg @ref LL_APB2_GRP1_PERIPH_DFSDM2 (*)
  1727. *
  1728. * (*) value not defined in all devices.
  1729. * @retval State of Periphs (1 or 0).
  1730. */
  1731. __STATIC_INLINE uint32_t LL_APB2_GRP1_IsEnabledClock(uint32_t Periphs)
  1732. {
  1733. return (READ_BIT(RCC->APB2ENR, Periphs) == Periphs);
  1734. }
  1735. /**
  1736. * @brief Disable APB2 peripherals clock.
  1737. * @rmtoll APB2ENR TIM1EN LL_APB2_GRP1_DisableClock\n
  1738. * APB2ENR TIM8EN LL_APB2_GRP1_DisableClock\n
  1739. * APB2ENR USART1EN LL_APB2_GRP1_DisableClock\n
  1740. * APB2ENR USART6EN LL_APB2_GRP1_DisableClock\n
  1741. * APB2ENR UART9EN LL_APB2_GRP1_DisableClock\n
  1742. * APB2ENR UART10EN LL_APB2_GRP1_DisableClock\n
  1743. * APB2ENR ADC1EN LL_APB2_GRP1_DisableClock\n
  1744. * APB2ENR ADC2EN LL_APB2_GRP1_DisableClock\n
  1745. * APB2ENR ADC3EN LL_APB2_GRP1_DisableClock\n
  1746. * APB2ENR SDIOEN LL_APB2_GRP1_DisableClock\n
  1747. * APB2ENR SPI1EN LL_APB2_GRP1_DisableClock\n
  1748. * APB2ENR SPI4EN LL_APB2_GRP1_DisableClock\n
  1749. * APB2ENR SYSCFGEN LL_APB2_GRP1_DisableClock\n
  1750. * APB2ENR EXTITEN LL_APB2_GRP1_DisableClock\n
  1751. * APB2ENR TIM9EN LL_APB2_GRP1_DisableClock\n
  1752. * APB2ENR TIM10EN LL_APB2_GRP1_DisableClock\n
  1753. * APB2ENR TIM11EN LL_APB2_GRP1_DisableClock\n
  1754. * APB2ENR SPI5EN LL_APB2_GRP1_DisableClock\n
  1755. * APB2ENR SPI6EN LL_APB2_GRP1_DisableClock\n
  1756. * APB2ENR SAI1EN LL_APB2_GRP1_DisableClock\n
  1757. * APB2ENR SAI2EN LL_APB2_GRP1_DisableClock\n
  1758. * APB2ENR LTDCEN LL_APB2_GRP1_DisableClock\n
  1759. * APB2ENR DSIEN LL_APB2_GRP1_DisableClock\n
  1760. * APB2ENR DFSDM1EN LL_APB2_GRP1_DisableClock\n
  1761. * APB2ENR DFSDM2EN LL_APB2_GRP1_DisableClock
  1762. * @param Periphs This parameter can be a combination of the following values:
  1763. * @arg @ref LL_APB2_GRP1_PERIPH_TIM1
  1764. * @arg @ref LL_APB2_GRP1_PERIPH_TIM8 (*)
  1765. * @arg @ref LL_APB2_GRP1_PERIPH_USART1
  1766. * @arg @ref LL_APB2_GRP1_PERIPH_USART6 (*)
  1767. * @arg @ref LL_APB2_GRP1_PERIPH_UART9 (*)
  1768. * @arg @ref LL_APB2_GRP1_PERIPH_UART10 (*)
  1769. * @arg @ref LL_APB2_GRP1_PERIPH_ADC1
  1770. * @arg @ref LL_APB2_GRP1_PERIPH_ADC2 (*)
  1771. * @arg @ref LL_APB2_GRP1_PERIPH_ADC3 (*)
  1772. * @arg @ref LL_APB2_GRP1_PERIPH_SDIO (*)
  1773. * @arg @ref LL_APB2_GRP1_PERIPH_SPI1
  1774. * @arg @ref LL_APB2_GRP1_PERIPH_SPI4 (*)
  1775. * @arg @ref LL_APB2_GRP1_PERIPH_SYSCFG
  1776. * @arg @ref LL_APB2_GRP1_PERIPH_EXTI (*)
  1777. * @arg @ref LL_APB2_GRP1_PERIPH_TIM9
  1778. * @arg @ref LL_APB2_GRP1_PERIPH_TIM10 (*)
  1779. * @arg @ref LL_APB2_GRP1_PERIPH_TIM11
  1780. * @arg @ref LL_APB2_GRP1_PERIPH_SPI5 (*)
  1781. * @arg @ref LL_APB2_GRP1_PERIPH_SPI6 (*)
  1782. * @arg @ref LL_APB2_GRP1_PERIPH_SAI1 (*)
  1783. * @arg @ref LL_APB2_GRP1_PERIPH_SAI2 (*)
  1784. * @arg @ref LL_APB2_GRP1_PERIPH_LTDC (*)
  1785. * @arg @ref LL_APB2_GRP1_PERIPH_DSI (*)
  1786. * @arg @ref LL_APB2_GRP1_PERIPH_DFSDM1 (*)
  1787. * @arg @ref LL_APB2_GRP1_PERIPH_DFSDM2 (*)
  1788. *
  1789. * (*) value not defined in all devices.
  1790. * @retval None
  1791. */
  1792. __STATIC_INLINE void LL_APB2_GRP1_DisableClock(uint32_t Periphs)
  1793. {
  1794. CLEAR_BIT(RCC->APB2ENR, Periphs);
  1795. }
  1796. /**
  1797. * @brief Force APB2 peripherals reset.
  1798. * @rmtoll APB2RSTR TIM1RST LL_APB2_GRP1_ForceReset\n
  1799. * APB2RSTR TIM8RST LL_APB2_GRP1_ForceReset\n
  1800. * APB2RSTR USART1RST LL_APB2_GRP1_ForceReset\n
  1801. * APB2RSTR USART6RST LL_APB2_GRP1_ForceReset\n
  1802. * APB2RSTR UART9RST LL_APB2_GRP1_ForceReset\n
  1803. * APB2RSTR UART10RST LL_APB2_GRP1_ForceReset\n
  1804. * APB2RSTR ADCRST LL_APB2_GRP1_ForceReset\n
  1805. * APB2RSTR SDIORST LL_APB2_GRP1_ForceReset\n
  1806. * APB2RSTR SPI1RST LL_APB2_GRP1_ForceReset\n
  1807. * APB2RSTR SPI4RST LL_APB2_GRP1_ForceReset\n
  1808. * APB2RSTR SYSCFGRST LL_APB2_GRP1_ForceReset\n
  1809. * APB2RSTR TIM9RST LL_APB2_GRP1_ForceReset\n
  1810. * APB2RSTR TIM10RST LL_APB2_GRP1_ForceReset\n
  1811. * APB2RSTR TIM11RST LL_APB2_GRP1_ForceReset\n
  1812. * APB2RSTR SPI5RST LL_APB2_GRP1_ForceReset\n
  1813. * APB2RSTR SPI6RST LL_APB2_GRP1_ForceReset\n
  1814. * APB2RSTR SAI1RST LL_APB2_GRP1_ForceReset\n
  1815. * APB2RSTR SAI2RST LL_APB2_GRP1_ForceReset\n
  1816. * APB2RSTR LTDCRST LL_APB2_GRP1_ForceReset\n
  1817. * APB2RSTR DSIRST LL_APB2_GRP1_ForceReset\n
  1818. * APB2RSTR DFSDM1RST LL_APB2_GRP1_ForceReset\n
  1819. * APB2RSTR DFSDM2RST LL_APB2_GRP1_ForceReset
  1820. * @param Periphs This parameter can be a combination of the following values:
  1821. * @arg @ref LL_APB2_GRP1_PERIPH_ALL
  1822. * @arg @ref LL_APB2_GRP1_PERIPH_TIM1
  1823. * @arg @ref LL_APB2_GRP1_PERIPH_TIM8 (*)
  1824. * @arg @ref LL_APB2_GRP1_PERIPH_USART1
  1825. * @arg @ref LL_APB2_GRP1_PERIPH_USART6 (*)
  1826. * @arg @ref LL_APB2_GRP1_PERIPH_UART9 (*)
  1827. * @arg @ref LL_APB2_GRP1_PERIPH_UART10 (*)
  1828. * @arg @ref LL_APB2_GRP1_PERIPH_ADC
  1829. * @arg @ref LL_APB2_GRP1_PERIPH_SDIO (*)
  1830. * @arg @ref LL_APB2_GRP1_PERIPH_SPI1
  1831. * @arg @ref LL_APB2_GRP1_PERIPH_SPI4 (*)
  1832. * @arg @ref LL_APB2_GRP1_PERIPH_SYSCFG
  1833. * @arg @ref LL_APB2_GRP1_PERIPH_TIM9
  1834. * @arg @ref LL_APB2_GRP1_PERIPH_TIM10 (*)
  1835. * @arg @ref LL_APB2_GRP1_PERIPH_TIM11
  1836. * @arg @ref LL_APB2_GRP1_PERIPH_SPI5 (*)
  1837. * @arg @ref LL_APB2_GRP1_PERIPH_SPI6 (*)
  1838. * @arg @ref LL_APB2_GRP1_PERIPH_SAI1 (*)
  1839. * @arg @ref LL_APB2_GRP1_PERIPH_SAI2 (*)
  1840. * @arg @ref LL_APB2_GRP1_PERIPH_LTDC (*)
  1841. * @arg @ref LL_APB2_GRP1_PERIPH_DSI (*)
  1842. * @arg @ref LL_APB2_GRP1_PERIPH_DFSDM1 (*)
  1843. * @arg @ref LL_APB2_GRP1_PERIPH_DFSDM2 (*)
  1844. *
  1845. * (*) value not defined in all devices.
  1846. * @retval None
  1847. */
  1848. __STATIC_INLINE void LL_APB2_GRP1_ForceReset(uint32_t Periphs)
  1849. {
  1850. SET_BIT(RCC->APB2RSTR, Periphs);
  1851. }
  1852. /**
  1853. * @brief Release APB2 peripherals reset.
  1854. * @rmtoll APB2RSTR TIM1RST LL_APB2_GRP1_ReleaseReset\n
  1855. * APB2RSTR TIM8RST LL_APB2_GRP1_ReleaseReset\n
  1856. * APB2RSTR USART1RST LL_APB2_GRP1_ReleaseReset\n
  1857. * APB2RSTR USART6RST LL_APB2_GRP1_ReleaseReset\n
  1858. * APB2RSTR UART9RST LL_APB2_GRP1_ReleaseReset\n
  1859. * APB2RSTR UART10RST LL_APB2_GRP1_ReleaseReset\n
  1860. * APB2RSTR ADCRST LL_APB2_GRP1_ReleaseReset\n
  1861. * APB2RSTR SDIORST LL_APB2_GRP1_ReleaseReset\n
  1862. * APB2RSTR SPI1RST LL_APB2_GRP1_ReleaseReset\n
  1863. * APB2RSTR SPI4RST LL_APB2_GRP1_ReleaseReset\n
  1864. * APB2RSTR SYSCFGRST LL_APB2_GRP1_ReleaseReset\n
  1865. * APB2RSTR TIM9RST LL_APB2_GRP1_ReleaseReset\n
  1866. * APB2RSTR TIM10RST LL_APB2_GRP1_ReleaseReset\n
  1867. * APB2RSTR TIM11RST LL_APB2_GRP1_ReleaseReset\n
  1868. * APB2RSTR SPI5RST LL_APB2_GRP1_ReleaseReset\n
  1869. * APB2RSTR SPI6RST LL_APB2_GRP1_ReleaseReset\n
  1870. * APB2RSTR SAI1RST LL_APB2_GRP1_ReleaseReset\n
  1871. * APB2RSTR SAI2RST LL_APB2_GRP1_ReleaseReset\n
  1872. * APB2RSTR LTDCRST LL_APB2_GRP1_ReleaseReset\n
  1873. * APB2RSTR DSIRST LL_APB2_GRP1_ReleaseReset\n
  1874. * APB2RSTR DFSDM1RST LL_APB2_GRP1_ReleaseReset\n
  1875. * APB2RSTR DFSDM2RST LL_APB2_GRP1_ReleaseReset
  1876. * @param Periphs This parameter can be a combination of the following values:
  1877. * @arg @ref LL_APB2_GRP1_PERIPH_ALL
  1878. * @arg @ref LL_APB2_GRP1_PERIPH_TIM1
  1879. * @arg @ref LL_APB2_GRP1_PERIPH_TIM8 (*)
  1880. * @arg @ref LL_APB2_GRP1_PERIPH_USART1
  1881. * @arg @ref LL_APB2_GRP1_PERIPH_USART6 (*)
  1882. * @arg @ref LL_APB2_GRP1_PERIPH_UART9 (*)
  1883. * @arg @ref LL_APB2_GRP1_PERIPH_UART10 (*)
  1884. * @arg @ref LL_APB2_GRP1_PERIPH_ADC
  1885. * @arg @ref LL_APB2_GRP1_PERIPH_SDIO (*)
  1886. * @arg @ref LL_APB2_GRP1_PERIPH_SPI1
  1887. * @arg @ref LL_APB2_GRP1_PERIPH_SPI4 (*)
  1888. * @arg @ref LL_APB2_GRP1_PERIPH_SYSCFG
  1889. * @arg @ref LL_APB2_GRP1_PERIPH_EXTI (*)
  1890. * @arg @ref LL_APB2_GRP1_PERIPH_TIM9
  1891. * @arg @ref LL_APB2_GRP1_PERIPH_TIM10 (*)
  1892. * @arg @ref LL_APB2_GRP1_PERIPH_TIM11
  1893. * @arg @ref LL_APB2_GRP1_PERIPH_SPI5 (*)
  1894. * @arg @ref LL_APB2_GRP1_PERIPH_SPI6 (*)
  1895. * @arg @ref LL_APB2_GRP1_PERIPH_SAI1 (*)
  1896. * @arg @ref LL_APB2_GRP1_PERIPH_SAI2 (*)
  1897. * @arg @ref LL_APB2_GRP1_PERIPH_LTDC (*)
  1898. * @arg @ref LL_APB2_GRP1_PERIPH_DSI (*)
  1899. * @arg @ref LL_APB2_GRP1_PERIPH_DFSDM1 (*)
  1900. * @arg @ref LL_APB2_GRP1_PERIPH_DFSDM2 (*)
  1901. *
  1902. * (*) value not defined in all devices.
  1903. * @retval None
  1904. */
  1905. __STATIC_INLINE void LL_APB2_GRP1_ReleaseReset(uint32_t Periphs)
  1906. {
  1907. CLEAR_BIT(RCC->APB2RSTR, Periphs);
  1908. }
  1909. /**
  1910. * @brief Enable APB2 peripheral clocks in low-power mode
  1911. * @rmtoll APB2LPENR TIM1LPEN LL_APB2_GRP1_EnableClockLowPower\n
  1912. * APB2LPENR TIM8LPEN LL_APB2_GRP1_EnableClockLowPower\n
  1913. * APB2LPENR USART1LPEN LL_APB2_GRP1_EnableClockLowPower\n
  1914. * APB2LPENR USART6LPEN LL_APB2_GRP1_EnableClockLowPower\n
  1915. * APB2LPENR UART9LPEN LL_APB2_GRP1_EnableClockLowPower\n
  1916. * APB2LPENR UART10LPEN LL_APB2_GRP1_EnableClockLowPower\n
  1917. * APB2LPENR ADC1LPEN LL_APB2_GRP1_EnableClockLowPower\n
  1918. * APB2LPENR ADC2LPEN LL_APB2_GRP1_EnableClockLowPower\n
  1919. * APB2LPENR ADC3LPEN LL_APB2_GRP1_EnableClockLowPower\n
  1920. * APB2LPENR SDIOLPEN LL_APB2_GRP1_EnableClockLowPower\n
  1921. * APB2LPENR SPI1LPEN LL_APB2_GRP1_EnableClockLowPower\n
  1922. * APB2LPENR SPI4LPEN LL_APB2_GRP1_EnableClockLowPower\n
  1923. * APB2LPENR SYSCFGLPEN LL_APB2_GRP1_EnableClockLowPower\n
  1924. * APB2LPENR EXTITLPEN LL_APB2_GRP1_EnableClockLowPower\n
  1925. * APB2LPENR TIM9LPEN LL_APB2_GRP1_EnableClockLowPower\n
  1926. * APB2LPENR TIM10LPEN LL_APB2_GRP1_EnableClockLowPower\n
  1927. * APB2LPENR TIM11LPEN LL_APB2_GRP1_EnableClockLowPower\n
  1928. * APB2LPENR SPI5LPEN LL_APB2_GRP1_EnableClockLowPower\n
  1929. * APB2LPENR SPI6LPEN LL_APB2_GRP1_EnableClockLowPower\n
  1930. * APB2LPENR SAI1LPEN LL_APB2_GRP1_EnableClockLowPower\n
  1931. * APB2LPENR SAI2LPEN LL_APB2_GRP1_EnableClockLowPower\n
  1932. * APB2LPENR LTDCLPEN LL_APB2_GRP1_EnableClockLowPower\n
  1933. * APB2LPENR DSILPEN LL_APB2_GRP1_EnableClockLowPower\n
  1934. * APB2LPENR DFSDM1LPEN LL_APB2_GRP1_EnableClockLowPower\n
  1935. * APB2LPENR DSILPEN LL_APB2_GRP1_EnableClockLowPower\n
  1936. * APB2LPENR DFSDM2LPEN LL_APB2_GRP1_EnableClockLowPower
  1937. * @param Periphs This parameter can be a combination of the following values:
  1938. * @arg @ref LL_APB2_GRP1_PERIPH_TIM1
  1939. * @arg @ref LL_APB2_GRP1_PERIPH_TIM8 (*)
  1940. * @arg @ref LL_APB2_GRP1_PERIPH_USART1
  1941. * @arg @ref LL_APB2_GRP1_PERIPH_USART6 (*)
  1942. * @arg @ref LL_APB2_GRP1_PERIPH_UART9 (*)
  1943. * @arg @ref LL_APB2_GRP1_PERIPH_UART10 (*)
  1944. * @arg @ref LL_APB2_GRP1_PERIPH_ADC1
  1945. * @arg @ref LL_APB2_GRP1_PERIPH_ADC2 (*)
  1946. * @arg @ref LL_APB2_GRP1_PERIPH_ADC3 (*)
  1947. * @arg @ref LL_APB2_GRP1_PERIPH_SDIO (*)
  1948. * @arg @ref LL_APB2_GRP1_PERIPH_SPI1
  1949. * @arg @ref LL_APB2_GRP1_PERIPH_SPI4 (*)
  1950. * @arg @ref LL_APB2_GRP1_PERIPH_SYSCFG
  1951. * @arg @ref LL_APB2_GRP1_PERIPH_EXTI (*)
  1952. * @arg @ref LL_APB2_GRP1_PERIPH_TIM9
  1953. * @arg @ref LL_APB2_GRP1_PERIPH_TIM10 (*)
  1954. * @arg @ref LL_APB2_GRP1_PERIPH_TIM11
  1955. * @arg @ref LL_APB2_GRP1_PERIPH_SPI5 (*)
  1956. * @arg @ref LL_APB2_GRP1_PERIPH_SPI6 (*)
  1957. * @arg @ref LL_APB2_GRP1_PERIPH_SAI1 (*)
  1958. * @arg @ref LL_APB2_GRP1_PERIPH_SAI2 (*)
  1959. * @arg @ref LL_APB2_GRP1_PERIPH_LTDC (*)
  1960. * @arg @ref LL_APB2_GRP1_PERIPH_DSI (*)
  1961. * @arg @ref LL_APB2_GRP1_PERIPH_DFSDM1 (*)
  1962. * @arg @ref LL_APB2_GRP1_PERIPH_DFSDM2 (*)
  1963. *
  1964. * (*) value not defined in all devices.
  1965. * @retval None
  1966. */
  1967. __STATIC_INLINE void LL_APB2_GRP1_EnableClockLowPower(uint32_t Periphs)
  1968. {
  1969. __IO uint32_t tmpreg;
  1970. SET_BIT(RCC->APB2LPENR, Periphs);
  1971. /* Delay after an RCC peripheral clock enabling */
  1972. tmpreg = READ_BIT(RCC->APB2LPENR, Periphs);
  1973. (void)tmpreg;
  1974. }
  1975. /**
  1976. * @brief Disable APB2 peripheral clocks in low-power mode
  1977. * @rmtoll APB2LPENR TIM1LPEN LL_APB2_GRP1_DisableClockLowPower\n
  1978. * APB2LPENR TIM8LPEN LL_APB2_GRP1_DisableClockLowPower\n
  1979. * APB2LPENR USART1LPEN LL_APB2_GRP1_DisableClockLowPower\n
  1980. * APB2LPENR USART6LPEN LL_APB2_GRP1_DisableClockLowPower\n
  1981. * APB2LPENR UART9LPEN LL_APB2_GRP1_DisableClockLowPower\n
  1982. * APB2LPENR UART10LPEN LL_APB2_GRP1_DisableClockLowPower\n
  1983. * APB2LPENR ADC1LPEN LL_APB2_GRP1_DisableClockLowPower\n
  1984. * APB2LPENR ADC2LPEN LL_APB2_GRP1_DisableClockLowPower\n
  1985. * APB2LPENR ADC3LPEN LL_APB2_GRP1_DisableClockLowPower\n
  1986. * APB2LPENR SDIOLPEN LL_APB2_GRP1_DisableClockLowPower\n
  1987. * APB2LPENR SPI1LPEN LL_APB2_GRP1_DisableClockLowPower\n
  1988. * APB2LPENR SPI4LPEN LL_APB2_GRP1_DisableClockLowPower\n
  1989. * APB2LPENR SYSCFGLPEN LL_APB2_GRP1_DisableClockLowPower\n
  1990. * APB2LPENR EXTITLPEN LL_APB2_GRP1_DisableClockLowPower\n
  1991. * APB2LPENR TIM9LPEN LL_APB2_GRP1_DisableClockLowPower\n
  1992. * APB2LPENR TIM10LPEN LL_APB2_GRP1_DisableClockLowPower\n
  1993. * APB2LPENR TIM11LPEN LL_APB2_GRP1_DisableClockLowPower\n
  1994. * APB2LPENR SPI5LPEN LL_APB2_GRP1_DisableClockLowPower\n
  1995. * APB2LPENR SPI6LPEN LL_APB2_GRP1_DisableClockLowPower\n
  1996. * APB2LPENR SAI1LPEN LL_APB2_GRP1_DisableClockLowPower\n
  1997. * APB2LPENR SAI2LPEN LL_APB2_GRP1_DisableClockLowPower\n
  1998. * APB2LPENR LTDCLPEN LL_APB2_GRP1_DisableClockLowPower\n
  1999. * APB2LPENR DSILPEN LL_APB2_GRP1_DisableClockLowPower\n
  2000. * APB2LPENR DFSDM1LPEN LL_APB2_GRP1_DisableClockLowPower\n
  2001. * APB2LPENR DSILPEN LL_APB2_GRP1_DisableClockLowPower\n
  2002. * APB2LPENR DFSDM2LPEN LL_APB2_GRP1_DisableClockLowPower
  2003. * @param Periphs This parameter can be a combination of the following values:
  2004. * @arg @ref LL_APB2_GRP1_PERIPH_TIM1
  2005. * @arg @ref LL_APB2_GRP1_PERIPH_TIM8 (*)
  2006. * @arg @ref LL_APB2_GRP1_PERIPH_USART1
  2007. * @arg @ref LL_APB2_GRP1_PERIPH_USART6 (*)
  2008. * @arg @ref LL_APB2_GRP1_PERIPH_UART9 (*)
  2009. * @arg @ref LL_APB2_GRP1_PERIPH_UART10 (*)
  2010. * @arg @ref LL_APB2_GRP1_PERIPH_ADC1
  2011. * @arg @ref LL_APB2_GRP1_PERIPH_ADC2 (*)
  2012. * @arg @ref LL_APB2_GRP1_PERIPH_ADC3 (*)
  2013. * @arg @ref LL_APB2_GRP1_PERIPH_SDIO (*)
  2014. * @arg @ref LL_APB2_GRP1_PERIPH_SPI1
  2015. * @arg @ref LL_APB2_GRP1_PERIPH_SPI4 (*)
  2016. * @arg @ref LL_APB2_GRP1_PERIPH_SYSCFG
  2017. * @arg @ref LL_APB2_GRP1_PERIPH_EXTI (*)
  2018. * @arg @ref LL_APB2_GRP1_PERIPH_TIM9
  2019. * @arg @ref LL_APB2_GRP1_PERIPH_TIM10 (*)
  2020. * @arg @ref LL_APB2_GRP1_PERIPH_TIM11
  2021. * @arg @ref LL_APB2_GRP1_PERIPH_SPI5 (*)
  2022. * @arg @ref LL_APB2_GRP1_PERIPH_SPI6 (*)
  2023. * @arg @ref LL_APB2_GRP1_PERIPH_SAI1 (*)
  2024. * @arg @ref LL_APB2_GRP1_PERIPH_SAI2 (*)
  2025. * @arg @ref LL_APB2_GRP1_PERIPH_LTDC (*)
  2026. * @arg @ref LL_APB2_GRP1_PERIPH_DSI (*)
  2027. * @arg @ref LL_APB2_GRP1_PERIPH_DFSDM1 (*)
  2028. * @arg @ref LL_APB2_GRP1_PERIPH_DFSDM2 (*)
  2029. *
  2030. * (*) value not defined in all devices.
  2031. * @retval None
  2032. */
  2033. __STATIC_INLINE void LL_APB2_GRP1_DisableClockLowPower(uint32_t Periphs)
  2034. {
  2035. CLEAR_BIT(RCC->APB2LPENR, Periphs);
  2036. }
  2037. /**
  2038. * @}
  2039. */
  2040. /**
  2041. * @}
  2042. */
  2043. /**
  2044. * @}
  2045. */
  2046. #endif /* defined(RCC) */
  2047. /**
  2048. * @}
  2049. */
  2050. #ifdef __cplusplus
  2051. }
  2052. #endif
  2053. #endif /* __STM32F4xx_LL_BUS_H */
  2054. /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/