stm32f3xx_ll_system.h 83 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725
  1. /**
  2. ******************************************************************************
  3. * @file stm32f3xx_ll_system.h
  4. * @author MCD Application Team
  5. * @brief Header file of SYSTEM LL module.
  6. *
  7. ******************************************************************************
  8. * @attention
  9. *
  10. * Copyright (c) 2016 STMicroelectronics.
  11. * All rights reserved.
  12. *
  13. * This software is licensed under terms that can be found in the LICENSE file
  14. * in the root directory of this software component.
  15. * If no LICENSE file comes with this software, it is provided AS-IS.
  16. *
  17. ******************************************************************************
  18. @verbatim
  19. ==============================================================================
  20. ##### How to use this driver #####
  21. ==============================================================================
  22. [..]
  23. The LL SYSTEM driver contains a set of generic APIs that can be
  24. used by user:
  25. (+) Some of the FLASH features need to be handled in the SYSTEM file.
  26. (+) Access to DBGCMU registers
  27. (+) Access to SYSCFG registers
  28. @endverbatim
  29. ******************************************************************************
  30. */
  31. /* Define to prevent recursive inclusion -------------------------------------*/
  32. #ifndef __STM32F3xx_LL_SYSTEM_H
  33. #define __STM32F3xx_LL_SYSTEM_H
  34. #ifdef __cplusplus
  35. extern "C" {
  36. #endif
  37. /* Includes ------------------------------------------------------------------*/
  38. #include "stm32f3xx.h"
  39. /** @addtogroup STM32F3xx_LL_Driver
  40. * @{
  41. */
  42. #if defined (FLASH) || defined (SYSCFG) || defined (DBGMCU)
  43. /** @defgroup SYSTEM_LL SYSTEM
  44. * @{
  45. */
  46. /* Private types -------------------------------------------------------------*/
  47. /* Private variables ---------------------------------------------------------*/
  48. /* Private constants ---------------------------------------------------------*/
  49. /** @defgroup SYSTEM_LL_Private_Constants SYSTEM Private Constants
  50. * @{
  51. */
  52. /* Offset used to access to SYSCFG_CFGR1 and SYSCFG_CFGR3 registers */
  53. #define SYSCFG_OFFSET_CFGR1 0x00000000U
  54. #define SYSCFG_OFFSET_CFGR3 0x00000050U
  55. /* Mask used for TIM breaks functions */
  56. #if defined(SYSCFG_CFGR2_PVD_LOCK) && defined(SYSCFG_CFGR2_SRAM_PARITY_LOCK)
  57. #define SYSCFG_MASK_TIM_BREAK (SYSCFG_CFGR2_LOCKUP_LOCK | SYSCFG_CFGR2_SRAM_PARITY_LOCK | SYSCFG_CFGR2_PVD_LOCK)
  58. #elif defined(SYSCFG_CFGR2_PVD_LOCK) && !defined(SYSCFG_CFGR2_SRAM_PARITY_LOCK)
  59. #define SYSCFG_MASK_TIM_BREAK (SYSCFG_CFGR2_LOCKUP_LOCK | SYSCFG_CFGR2_PVD_LOCK)
  60. #elif !defined(SYSCFG_CFGR2_PVD_LOCK) && defined(SYSCFG_CFGR2_SRAM_PARITY_LOCK)
  61. #define SYSCFG_MASK_TIM_BREAK (SYSCFG_CFGR2_LOCKUP_LOCK | SYSCFG_CFGR2_SRAM_PARITY_LOCK)
  62. #else
  63. #define SYSCFG_MASK_TIM_BREAK (SYSCFG_CFGR2_LOCKUP_LOCK)
  64. #endif /* SYSCFG_CFGR2_PVD_LOCK && SYSCFG_CFGR2_SRAM_PARITY_LOCK */
  65. /**
  66. * @}
  67. */
  68. /* Private macros ------------------------------------------------------------*/
  69. /* Exported types ------------------------------------------------------------*/
  70. /* Exported constants --------------------------------------------------------*/
  71. /** @defgroup SYSTEM_LL_Exported_Constants SYSTEM Exported Constants
  72. * @{
  73. */
  74. /** @defgroup SYSTEM_LL_EC_REMAP SYSCFG REMAP
  75. * @{
  76. */
  77. #define LL_SYSCFG_REMAP_FLASH (uint32_t)0x00000000 /* Main Flash memory mapped at 0x00000000 */
  78. #define LL_SYSCFG_REMAP_SYSTEMFLASH SYSCFG_CFGR1_MEM_MODE_0 /* System Flash memory mapped at 0x00000000 */
  79. #define LL_SYSCFG_REMAP_SRAM (SYSCFG_CFGR1_MEM_MODE_1 | SYSCFG_CFGR1_MEM_MODE_0) /* Embedded SRAM mapped at 0x00000000 */
  80. #if defined(FMC_BANK1)
  81. #define LL_SYSCFG_REMAP_FMC SYSCFG_CFGR1_MEM_MODE_2 /*<! FMC Bank (Only the first two banks) */
  82. #endif /* FMC_BANK1 */
  83. /**
  84. * @}
  85. */
  86. #if defined(SYSCFG_CFGR3_SPI1_RX_DMA_RMP)
  87. /** @defgroup SYSTEM_LL_EC_SPI1_DMA_RMP_RX SYSCFG SPI1 RX/TX DMA1 request REMAP
  88. * @{
  89. */
  90. #define LL_SYSCFG_SPI1RX_RMP_DMA1_CH2 (SYSCFG_CFGR3_SPI1_RX_DMA_RMP << 16U | (uint32_t)0x00000000U) /*!< SPI1_RX mapped on DMA1 CH2 */
  91. #define LL_SYSCFG_SPI1RX_RMP_DMA1_CH4 (SYSCFG_CFGR3_SPI1_RX_DMA_RMP << 16U | SYSCFG_CFGR3_SPI1_RX_DMA_RMP_0) /*!< SPI1_RX mapped on DMA1 CH4 */
  92. #define LL_SYSCFG_SPI1RX_RMP_DMA1_CH6 (SYSCFG_CFGR3_SPI1_RX_DMA_RMP << 16U | SYSCFG_CFGR3_SPI1_RX_DMA_RMP_1) /*!< SPI1_RX mapped on DMA1 CH6 */
  93. #define LL_SYSCFG_SPI1TX_RMP_DMA1_CH3 (SYSCFG_CFGR3_SPI1_TX_DMA_RMP << 16U | (uint32_t)0x00000000U) /*!< SPI1_TX mapped on DMA1 CH3 */
  94. #define LL_SYSCFG_SPI1TX_RMP_DMA1_CH5 (SYSCFG_CFGR3_SPI1_TX_DMA_RMP << 16U | SYSCFG_CFGR3_SPI1_TX_DMA_RMP_0) /*!< SPI1_TX mapped on DMA1 CH5 */
  95. #define LL_SYSCFG_SPI1TX_RMP_DMA1_CH7 (SYSCFG_CFGR3_SPI1_TX_DMA_RMP << 16U | SYSCFG_CFGR3_SPI1_TX_DMA_RMP_1) /*!< SPI1_TX mapped on DMA1 CH7 */
  96. /**
  97. * @}
  98. */
  99. #endif /* SYSCFG_CFGR3_SPI1_RX_DMA_RMP */
  100. #if defined(SYSCFG_CFGR3_I2C1_RX_DMA_RMP)
  101. /** @defgroup SYSTEM_LL_EC_I2C1_DMA_RMP_RX SYSCFG I2C1 RX/TX DMA1 request REMAP
  102. * @{
  103. */
  104. #define LL_SYSCFG_I2C1RX_RMP_DMA1_CH7 (SYSCFG_CFGR3_I2C1_RX_DMA_RMP << 16U | (uint32_t)0x00000000U) /*!< I2C1_RX mapped on DMA1 CH7 */
  105. #define LL_SYSCFG_I2C1RX_RMP_DMA1_CH3 (SYSCFG_CFGR3_I2C1_RX_DMA_RMP << 16U | SYSCFG_CFGR3_I2C1_RX_DMA_RMP_0) /*!< I2C1_RX mapped on DMA1 CH3 */
  106. #define LL_SYSCFG_I2C1RX_RMP_DMA1_CH5 (SYSCFG_CFGR3_I2C1_RX_DMA_RMP << 16U | SYSCFG_CFGR3_I2C1_RX_DMA_RMP_1) /*!< I2C1_RX mapped on DMA1 CH5 */
  107. #define LL_SYSCFG_I2C1TX_RMP_DMA1_CH6 (SYSCFG_CFGR3_I2C1_TX_DMA_RMP << 16U | (uint32_t)0x00000000U) /*!< I2C1_TX mapped on DMA1 CH6 */
  108. #define LL_SYSCFG_I2C1TX_RMP_DMA1_CH2 (SYSCFG_CFGR3_I2C1_TX_DMA_RMP << 16U | SYSCFG_CFGR3_I2C1_TX_DMA_RMP_0) /*!< I2C1_TX mapped on DMA1 CH2 */
  109. #define LL_SYSCFG_I2C1TX_RMP_DMA1_CH4 (SYSCFG_CFGR3_I2C1_TX_DMA_RMP << 16U | SYSCFG_CFGR3_I2C1_TX_DMA_RMP_1) /*!< I2C1_TX mapped on DMA1 CH4 */
  110. /**
  111. * @}
  112. */
  113. #endif /* SYSCFG_CFGR3_I2C1_RX_DMA_RMP */
  114. #if defined(SYSCFG_CFGR1_ADC24_DMA_RMP) || defined(SYSCFG_CFGR3_ADC2_DMA_RMP)
  115. /** @defgroup SYSTEM_LL_EC_ADC24_DMA_REMAP SYSCFG ADC DMA request REMAP
  116. * @{
  117. */
  118. #if defined (SYSCFG_CFGR1_ADC24_DMA_RMP)
  119. #define LL_SYSCFG_ADC24_RMP_DMA2_CH12 (SYSCFG_OFFSET_CFGR1 << 24U | SYSCFG_CFGR1_ADC24_DMA_RMP << 8U | (uint32_t)0x00000000U) /*!< ADC24 DMA requests mapped on DMA2 channels 1 and 2 */
  120. #define LL_SYSCFG_ADC24_RMP_DMA2_CH34 (SYSCFG_OFFSET_CFGR1 << 24U | SYSCFG_CFGR1_ADC24_DMA_RMP << 8U | SYSCFG_CFGR1_ADC24_DMA_RMP) /*!< ADC24 DMA requests mapped on DMA2 channels 3 and 4 */
  121. #endif /*SYSCFG_CFGR1_ADC24_DMA_RMP*/
  122. #if defined (SYSCFG_CFGR3_ADC2_DMA_RMP)
  123. #define LL_SYSCFG_ADC2_RMP_DMA1_CH2 (SYSCFG_OFFSET_CFGR3 << 24U | SYSCFG_CFGR3_ADC2_DMA_RMP_0 << 8U | (uint32_t)0x00000000U) /*!< ADC2 mapped on DMA1 channel 2 */
  124. #define LL_SYSCFG_ADC2_RMP_DMA1_CH4 (SYSCFG_OFFSET_CFGR3 << 24U | SYSCFG_CFGR3_ADC2_DMA_RMP_0 << 8U | SYSCFG_CFGR3_ADC2_DMA_RMP_0) /*!< ADC2 mapped on DMA1 channel 4 */
  125. #define LL_SYSCFG_ADC2_RMP_DMA2 (SYSCFG_OFFSET_CFGR3 << 24U | SYSCFG_CFGR3_ADC2_DMA_RMP_1 << 8U | (uint32_t)0x00000000U) /*!< ADC2 mapped on DMA2 */
  126. #define LL_SYSCFG_ADC2_RMP_DMA1 (SYSCFG_OFFSET_CFGR3 << 24U | SYSCFG_CFGR3_ADC2_DMA_RMP_1 << 8U | SYSCFG_CFGR3_ADC2_DMA_RMP_1) /*!< ADC2 mapped on DMA1 */
  127. #endif /*SYSCFG_CFGR3_ADC2_DMA_RMP*/
  128. /**
  129. * @}
  130. */
  131. #endif /* SYSCFG_CFGR1_ADC24_DMA_RMP || SYSCFG_CFGR3_ADC2_DMA_RMP */
  132. /** @defgroup SYSTEM_LL_EC_DAC1_DMA2_REMAP SYSCFG DAC1/2 DMA1/2 request REMAP
  133. * @{
  134. */
  135. #define LL_SYSCFG_DAC1_CH1_RMP_DMA2_CH3 ((SYSCFG_CFGR1_TIM6DAC1Ch1_DMA_RMP << 8U) | (uint32_t)0x00000000U) /*!< DAC_CH1 DMA requests mapped on DMA2 channel 3 */
  136. #define LL_SYSCFG_DAC1_CH1_RMP_DMA1_CH3 ((SYSCFG_CFGR1_TIM6DAC1Ch1_DMA_RMP << 8U) | SYSCFG_CFGR1_TIM6DAC1Ch1_DMA_RMP) /*!< DAC_CH1 DMA requests mapped on DMA1 channel 3 */
  137. #if defined(SYSCFG_CFGR1_TIM7DAC1Ch2_DMA_RMP)
  138. #define LL_SYSCFG_DAC1_OUT2_RMP_DMA2_CH4 ((SYSCFG_CFGR1_TIM7DAC1Ch2_DMA_RMP << 8U) | (uint32_t)0x00000000U) /*!< DAC1_OUT2 DMA requests mapped on DMA2 channel 4 */
  139. #define LL_SYSCFG_DAC1_OUT2_RMP_DMA1_CH4 ((SYSCFG_CFGR1_TIM7DAC1Ch2_DMA_RMP << 8U) | SYSCFG_CFGR1_TIM7DAC1Ch2_DMA_RMP) /*!< DAC1_OUT2 DMA requests mapped on DMA1 channel 4 */
  140. #endif /*SYSCFG_CFGR1_TIM7DAC1Ch2_DMA_RMP*/
  141. #if defined(SYSCFG_CFGR1_TIM18DAC2Ch1_DMA_RMP)
  142. #define LL_SYSCFG_DAC2_OUT1_RMP_DMA2_CH5 ((SYSCFG_CFGR1_TIM18DAC2Ch1_DMA_RMP << 8U) | (uint32_t)0x00000000U) /*!< DAC2_OUT1 DMA requests mapped on DMA2 channel 5 */
  143. #define LL_SYSCFG_DAC2_OUT1_RMP_DMA1_CH5 ((SYSCFG_CFGR1_TIM18DAC2Ch1_DMA_RMP << 8U) | SYSCFG_CFGR1_TIM18DAC2Ch1_DMA_RMP) /*!< DAC2_OUT1 DMA requests mapped on DMA1 channel 5 */
  144. #endif /*SYSCFG_CFGR1_TIM18DAC2Ch1_DMA_RMP*/
  145. #if defined(SYSCFG_CFGR1_DAC2Ch1_DMA_RMP)
  146. #define LL_SYSCFG_DAC2_CH1_RMP_NO ((SYSCFG_CFGR1_DAC2Ch1_DMA_RMP << 8U) | (uint32_t)0x00000000U) /*!< No remap */
  147. #define LL_SYSCFG_DAC2_CH1_RMP_DMA1_CH5 ((SYSCFG_CFGR1_DAC2Ch1_DMA_RMP << 8U) | SYSCFG_CFGR1_DAC2Ch1_DMA_RMP) /*!< DAC2_CH1 DMA requests mapped on DMA1 channel 5 */
  148. #endif /*SYSCFG_CFGR1_DAC2Ch1_DMA_RMP*/
  149. /**
  150. * @}
  151. */
  152. /** @defgroup SYSTEM_LL_EC_TIM16_DMA1_REMAP SYSCFG TIM DMA request REMAP
  153. * @{
  154. */
  155. #define LL_SYSCFG_TIM16_RMP_DMA1_CH3 ((SYSCFG_CFGR1_TIM16_DMA_RMP << 8U) | (uint32_t)0x00000000U) /*!< TIM16_CH1 and TIM16_UP DMA requests mapped on DMA1 channel 3 */
  156. #define LL_SYSCFG_TIM16_RMP_DMA1_CH6 ((SYSCFG_CFGR1_TIM16_DMA_RMP << 8U) | SYSCFG_CFGR1_TIM16_DMA_RMP) /*!< TIM16_CH1 and TIM16_UP DMA requests mapped on DMA1 channel 6 */
  157. #define LL_SYSCFG_TIM17_RMP_DMA1_CH1 ((SYSCFG_CFGR1_TIM17_DMA_RMP << 8U) | (uint32_t)0x00000000U) /*!< TIM17_CH1 and TIM17_UP DMA requests mapped on DMA1 channel 1 */
  158. #define LL_SYSCFG_TIM17_RMP_DMA1_CH7 ((SYSCFG_CFGR1_TIM17_DMA_RMP << 8U) | SYSCFG_CFGR1_TIM17_DMA_RMP) /*!< TIM17_CH1 and TIM17_UP DMA requests mapped on DMA1 channel 7 */
  159. #define LL_SYSCFG_TIM6_RMP_DMA2_CH3 ((SYSCFG_CFGR1_TIM6DAC1Ch1_DMA_RMP << 8U) | (uint32_t)0x00000000U) /*!< TIM6 DMA requests mapped on DMA2 channel 3 */
  160. #define LL_SYSCFG_TIM6_RMP_DMA1_CH3 ((SYSCFG_CFGR1_TIM6DAC1Ch1_DMA_RMP << 8U) | SYSCFG_CFGR1_TIM6DAC1Ch1_DMA_RMP) /*!< TIM6 DMA requests mapped on DMA1 channel 3 */
  161. #if defined(SYSCFG_CFGR1_TIM7DAC1Ch2_DMA_RMP)
  162. #define LL_SYSCFG_TIM7_RMP_DMA2_CH4 ((SYSCFG_CFGR1_TIM7DAC1Ch2_DMA_RMP << 8U) | (uint32_t)0x00000000U) /*!< TIM7 DMA requests mapped on DMA2 channel 4 */
  163. #define LL_SYSCFG_TIM7_RMP_DMA1_CH4 ((SYSCFG_CFGR1_TIM7DAC1Ch2_DMA_RMP << 8U) | SYSCFG_CFGR1_TIM7DAC1Ch2_DMA_RMP) /*!< TIM7 DMA requests mapped on DMA1 channel 4 */
  164. #endif /*SYSCFG_CFGR1_TIM7DAC1Ch2_DMA_RMP*/
  165. #if defined(SYSCFG_CFGR1_TIM18DAC2Ch1_DMA_RMP)
  166. #define LL_SYSCFG_TIM18_RMP_DMA2_CH5 ((SYSCFG_CFGR1_TIM18DAC2Ch1_DMA_RMP << 8U) | (uint32_t)0x00000000U) /*!< TIM18 DMA requests mapped on DMA2 channel 5 */
  167. #define LL_SYSCFG_TIM18_RMP_DMA1_CH5 ((SYSCFG_CFGR1_TIM18DAC2Ch1_DMA_RMP << 8U) | SYSCFG_CFGR1_TIM18DAC2Ch1_DMA_RMP) /*!< TIM18 DMA requests mapped on DMA1 channel 5 */
  168. #endif /*SYSCFG_CFGR1_TIM18DAC2Ch1_DMA_RMP*/
  169. /**
  170. * @}
  171. */
  172. #if defined(SYSCFG_CFGR1_TIM1_ITR3_RMP) || defined(SYSCFG_CFGR1_ENCODER_MODE)
  173. /** @defgroup SYSTEM_LL_EC_TIM1_ITR3_RMP_TIM4 SYSCFG TIM REMAP
  174. * @{
  175. */
  176. #if defined(SYSCFG_CFGR1_TIM1_ITR3_RMP)
  177. #define LL_SYSCFG_TIM1_ITR3_RMP_TIM4_TRGO ((SYSCFG_CFGR1_TIM1_ITR3_RMP << 8U) | (uint32_t)0x00000000U) /*!< TIM1_ITR3 = TIM4_TRGO */
  178. #define LL_SYSCFG_TIM1_ITR3_RMP_TIM17_OC ((SYSCFG_CFGR1_TIM1_ITR3_RMP << 8U) | SYSCFG_CFGR1_TIM1_ITR3_RMP) /*!< TIM1_ITR3 = TIM17_OC */
  179. #endif /* SYSCFG_CFGR1_TIM1_ITR3_RMP */
  180. #if defined(SYSCFG_CFGR1_ENCODER_MODE)
  181. #define LL_SYSCFG_TIM15_ENCODEMODE_NOREDIRECTION ((SYSCFG_CFGR1_ENCODER_MODE << 8U) | (uint32_t)0x00000000U) /*!< No redirection */
  182. #define LL_SYSCFG_TIM15_ENCODEMODE_TIM2 ((SYSCFG_CFGR1_ENCODER_MODE_0 << 8U) | SYSCFG_CFGR1_ENCODER_MODE_0) /*!< TIM2 IC1 and TIM2 IC2 are connected to TIM15 IC1 and TIM15 IC2 respectively */
  183. #if defined(SYSCFG_CFGR1_ENCODER_MODE_TIM3)
  184. #define LL_SYSCFG_TIM15_ENCODEMODE_TIM3 ((SYSCFG_CFGR1_ENCODER_MODE_TIM3 << 8U) | SYSCFG_CFGR1_ENCODER_MODE_TIM3) /*!< TIM3 IC1 and TIM3 IC2 are connected to TIM15 IC1 and TIM15 IC2 respectively */
  185. #endif /* SYSCFG_CFGR1_ENCODER_MODE_TIM3 */
  186. #if defined(SYSCFG_CFGR1_ENCODER_MODE_TIM4)
  187. #define LL_SYSCFG_TIM15_ENCODEMODE_TIM4 ((SYSCFG_CFGR1_ENCODER_MODE_TIM4 << 8U) | SYSCFG_CFGR1_ENCODER_MODE_TIM4) /*!< TIM4 IC1 and TIM4 IC2 are connected to TIM15 IC1 and TIM15 IC2 respectively */
  188. #endif /* SYSCFG_CFGR1_ENCODER_MODE_TIM4 */
  189. #endif /* SYSCFG_CFGR1_ENCODER_MODE */
  190. /**
  191. * @}
  192. */
  193. #endif /* SYSCFG_CFGR1_TIM1_ITR3_RMP || SYSCFG_CFGR1_ENCODER_MODE */
  194. #if defined(SYSCFG_CFGR4_ADC12_EXT2_RMP)
  195. /** @defgroup SYSTEM_LL_EC_ADC12_EXT2_RMP_TIM1 SYSCFG ADC Trigger REMAP
  196. * @{
  197. */
  198. #define LL_SYSCFG_ADC12_EXT2_RMP_TIM1_CC3 ((SYSCFG_CFGR4_ADC12_EXT2_RMP << 16U) | (uint32_t)0x00000000U) /*!< Input trigger of ADC12 regular channel EXT2:Trigger source is TIM1_CC3 */
  199. #define LL_SYSCFG_ADC12_EXT2_RMP_TIM20_TRGO ((SYSCFG_CFGR4_ADC12_EXT2_RMP << 16U) | SYSCFG_CFGR4_ADC12_EXT2_RMP) /*!< Input trigger of ADC12 regular channel EXT2:Trigger source is TIM20_TRGO */
  200. #define LL_SYSCFG_ADC12_EXT3_RMP_TIM2_CC2 ((SYSCFG_CFGR4_ADC12_EXT3_RMP << 16U) | (uint32_t)0x00000000U) /*!< Input trigger of ADC12 regular channel EXT3:Trigger source is TIM2_CC2 */
  201. #define LL_SYSCFG_ADC12_EXT3_RMP_TIM20_TRGO2 ((SYSCFG_CFGR4_ADC12_EXT3_RMP << 16U) | SYSCFG_CFGR4_ADC12_EXT3_RMP) /*!< Input trigger of ADC12 regular channel EXT3:Trigger source is TIM20_TRGO2 */
  202. #define LL_SYSCFG_ADC12_EXT5_RMP_TIM4_CC4 ((SYSCFG_CFGR4_ADC12_EXT5_RMP << 16U) | (uint32_t)0x00000000U) /*!< Input trigger of ADC12 regular channel EXT5:Trigger source is TIM4_CC4 */
  203. #define LL_SYSCFG_ADC12_EXT5_RMP_TIM20_CC1 ((SYSCFG_CFGR4_ADC12_EXT5_RMP << 16U) | SYSCFG_CFGR4_ADC12_EXT5_RMP) /*!< Input trigger of ADC12 regular channel EXT5:Trigger source is TIM20_CC1 */
  204. #define LL_SYSCFG_ADC12_EXT13_RMP_TIM6_TRGO ((SYSCFG_CFGR4_ADC12_EXT13_RMP << 16U) | (uint32_t)0x00000000U) /*!< Input trigger of ADC12 regular channel EXT13:Trigger source is TIM6_TRGO */
  205. #define LL_SYSCFG_ADC12_EXT13_RMP_TIM20_CC2 ((SYSCFG_CFGR4_ADC12_EXT13_RMP << 16U) | SYSCFG_CFGR4_ADC12_EXT13_RMP) /*!< Input trigger of ADC12 regular channel EXT13:Trigger source is TIM20_CC2 */
  206. #define LL_SYSCFG_ADC12_EXT15_RMP_TIM3_CC4 ((SYSCFG_CFGR4_ADC12_EXT15_RMP << 16U) | (uint32_t)0x00000000U) /*!< Input trigger of ADC12 regular channel EXT15:Trigger source is TIM3_CC4 */
  207. #define LL_SYSCFG_ADC12_EXT15_RMP_TIM20_CC3 ((SYSCFG_CFGR4_ADC12_EXT15_RMP << 16U) | SYSCFG_CFGR4_ADC12_EXT15_RMP) /*!< Input trigger of ADC12 regular channel EXT15:Trigger source is TIM20_CC3 */
  208. #define LL_SYSCFG_ADC12_JEXT3_RMP_TIM2_CC1 ((SYSCFG_CFGR4_ADC12_JEXT3_RMP << 16U) | (uint32_t)0x00000000U) /*!< Input trigger of ADC12 regular channel JEXT3:Trigger source is TIM2_CC1 */
  209. #define LL_SYSCFG_ADC12_JEXT3_RMP_TIM20_TRGO ((SYSCFG_CFGR4_ADC12_JEXT3_RMP << 16U) | SYSCFG_CFGR4_ADC12_JEXT3_RMP) /*!< Input trigger of ADC12 regular channel JEXT3:Trigger source is TIM20_TRGO */
  210. #define LL_SYSCFG_ADC12_JEXT6_RMP_EXTI_LINE_15 ((SYSCFG_CFGR4_ADC12_JEXT6_RMP << 16U) | (uint32_t)0x00000000U) /*!< Input trigger of ADC12 regular channel JEXT6:Trigger source is EXTI_LINE_15 */
  211. #define LL_SYSCFG_ADC12_JEXT6_RMP_TIM20_TRGO2 ((SYSCFG_CFGR4_ADC12_JEXT6_RMP << 16U) | SYSCFG_CFGR4_ADC12_JEXT6_RMP) /*!< Input trigger of ADC12 regular channel JEXT6:Trigger source is TIM20_TRGO2 */
  212. #define LL_SYSCFG_ADC12_JEXT13_RMP_TIM3_CC1 ((SYSCFG_CFGR4_ADC12_JEXT13_RMP << 16U) | (uint32_t)0x00000000U) /*!< Input trigger of ADC12 regular channel JEXT13:Trigger source is TIM3_CC1 */
  213. #define LL_SYSCFG_ADC12_JEXT13_RMP_TIM20_CC4 ((SYSCFG_CFGR4_ADC12_JEXT13_RMP << 16U) | SYSCFG_CFGR4_ADC12_JEXT13_RMP) /*!< Input trigger of ADC12 regular channel JEXT13:Trigger source is TIM20_CC4 */
  214. #define LL_SYSCFG_ADC34_EXT5_RMP_EXTI_LINE_2 ((SYSCFG_CFGR4_ADC34_EXT5_RMP << 16U) | (uint32_t)0x00000000U) /*!< Input trigger of ADC34 regular channel EXT5:Trigger source is EXTI_LINE_2 */
  215. #define LL_SYSCFG_ADC34_EXT5_RMP_TIM20_TRGO ((SYSCFG_CFGR4_ADC34_EXT5_RMP << 16U) | SYSCFG_CFGR4_ADC34_EXT5_RMP) /*!< Input trigger of ADC34 regular channel EXT5:Trigger source is TIM20_TRGO */
  216. #define LL_SYSCFG_ADC34_EXT6_RMP_TIM4_CC1 ((SYSCFG_CFGR4_ADC34_EXT6_RMP << 16U) | (uint32_t)0x00000000U) /*!< Input trigger of ADC34 regular channel EXT6:Trigger source is TIM4_CC1 */
  217. #define LL_SYSCFG_ADC34_EXT6_RMP_TIM20_TRGO2 ((SYSCFG_CFGR4_ADC34_EXT6_RMP << 16U) | SYSCFG_CFGR4_ADC34_EXT6_RMP) /*!< Input trigger of ADC34 regular channel EXT6:Trigger source is TIM20_TRGO2 */
  218. #define LL_SYSCFG_ADC34_EXT15_RMP_TIM2_CC1 ((SYSCFG_CFGR4_ADC34_EXT15_RMP << 16U) | (uint32_t)0x00000000U) /*!< Input trigger of ADC34 regular channel EXT15:Trigger source is TIM2_CC1 */
  219. #define LL_SYSCFG_ADC34_EXT15_RMP_TIM20_CC1 ((SYSCFG_CFGR4_ADC34_EXT15_RMP << 16U) | SYSCFG_CFGR4_ADC34_EXT15_RMP) /*!< Input trigger of ADC34 regular channel EXT15:Trigger source is TIM20_CC1 */
  220. #define LL_SYSCFG_ADC34_JEXT5_RMP_TIM4_CC3 ((SYSCFG_CFGR4_ADC34_JEXT5_RMP << 16U) | (uint32_t)0x00000000U) /*!< Input trigger of ADC34 regular channel JEXT5:Trigger source is TIM4_CC3 */
  221. #define LL_SYSCFG_ADC34_JEXT5_RMP_TIM20_TRGO ((SYSCFG_CFGR4_ADC34_JEXT5_RMP << 16U) | SYSCFG_CFGR4_ADC34_JEXT5_RMP) /*!< Input trigger of ADC34 regular channel JEXT5:Trigger source is TIM20_TRGO */
  222. #define LL_SYSCFG_ADC34_JEXT11_RMP_TIM1_CC3 ((SYSCFG_CFGR4_ADC34_JEXT11_RMP << 16U) | (uint32_t)0x00000000U) /*!< Input trigger of ADC34 regular channel JEXT11:Trigger source is TIM1_CC3 */
  223. #define LL_SYSCFG_ADC34_JEXT11_RMP_TIM20_TRGO2 ((SYSCFG_CFGR4_ADC34_JEXT11_RMP << 16U) | SYSCFG_CFGR4_ADC34_JEXT11_RMP) /*!< Input trigger of ADC34 regular channel JEXT11:Trigger source is TIM20_TRGO2 */
  224. #define LL_SYSCFG_ADC34_JEXT14_RMP_TIM7_TRGO ((SYSCFG_CFGR4_ADC34_JEXT14_RMP << 16U) | (uint32_t)0x00000000U) /*!< Input trigger of ADC34 regular channel JEXT14:Trigger source is TIM7_TRGO */
  225. #define LL_SYSCFG_ADC34_JEXT14_RMP_TIM20_CC2 ((SYSCFG_CFGR4_ADC34_JEXT14_RMP << 16U) | SYSCFG_CFGR4_ADC34_JEXT14_RMP) /*!< Input trigger of ADC34 regular channel JEXT14:Trigger source is TIM20_CC2 */
  226. /**
  227. * @}
  228. */
  229. #endif /* SYSCFG_CFGR4_ADC12_EXT2_RMP */
  230. #if defined(SYSCFG_CFGR1_DAC1_TRIG1_RMP) || defined(SYSCFG_CFGR3_TRIGGER_RMP)
  231. /** @defgroup SYSTEM_LL_EC_DAC1_TRIG1_REMAP SYSCFG DAC1 Trigger REMAP
  232. * @{
  233. */
  234. #if defined(SYSCFG_CFGR1_DAC1_TRIG1_RMP)
  235. #define LL_SYSCFG_DAC1_TRIG1_RMP_TIM8_TRGO (SYSCFG_OFFSET_CFGR1 << 24U | SYSCFG_CFGR1_DAC1_TRIG1_RMP << 4 | (uint32_t)0x00000000U) /*!< No remap: DAC trigger TRIG1 is TIM8_TRGO */
  236. #define LL_SYSCFG_DAC1_TRIG1_RMP_TIM3_TRGO (SYSCFG_OFFSET_CFGR1 << 24U | SYSCFG_CFGR1_DAC1_TRIG1_RMP << 4 | SYSCFG_CFGR1_DAC1_TRIG1_RMP) /*!< DAC trigger is TIM3_TRGO */
  237. #endif /* SYSCFG_CFGR1_DAC1_TRIG1_RMP */
  238. #if defined(SYSCFG_CFGR3_DAC1_TRG3_RMP)
  239. #define LL_SYSCFG_DAC1_TRIG3_RMP_TIM15_TRGO (SYSCFG_OFFSET_CFGR3 << 24U | SYSCFG_CFGR3_DAC1_TRG3_RMP << 4 | (uint32_t)0x00000000U) /*!< DAC trigger is TIM15_TRGO */
  240. #define LL_SYSCFG_DAC1_TRIG3_RMP_HRTIM1_DAC1_TRIG1 (SYSCFG_OFFSET_CFGR3 << 24U | SYSCFG_CFGR3_DAC1_TRG3_RMP << 4 | SYSCFG_CFGR3_DAC1_TRG3_RMP) /*!< DAC trigger is HRTIM1_DAC1_TRIG1 */
  241. #endif /* SYSCFG_CFGR3_DAC1_TRG3_RMP */
  242. #if defined(SYSCFG_CFGR3_DAC1_TRG5_RMP)
  243. #define LL_SYSCFG_DAC1_TRIG5_RMP_NO (SYSCFG_OFFSET_CFGR3 << 24U | SYSCFG_CFGR3_DAC1_TRG5_RMP << 4 | (uint32_t)0x00000000U) /*!< No remap */
  244. #define LL_SYSCFG_DAC1_TRIG5_RMP_HRTIM1_DAC1_TRIG2 (SYSCFG_OFFSET_CFGR3 << 24U | SYSCFG_CFGR3_DAC1_TRG5_RMP << 4 | SYSCFG_CFGR3_DAC1_TRG5_RMP) /*!< DAC trigger is HRTIM1_DAC1_TRIG2 */
  245. #endif /* SYSCFG_CFGR3_DAC1_TRG5_RMP */
  246. /**
  247. * @}
  248. */
  249. #endif /* SYSCFG_CFGR1_DAC1_TRIG1_RMP || SYSCFG_CFGR3_TRIGGER_RMP */
  250. /** @defgroup SYSTEM_LL_EC_I2C_FASTMODEPLUS SYSCFG I2C FASTMODEPLUS
  251. * @{
  252. */
  253. #define LL_SYSCFG_I2C_FASTMODEPLUS_PB6 SYSCFG_CFGR1_I2C_PB6_FMP /*!< I2C PB6 Fast mode plus */
  254. #define LL_SYSCFG_I2C_FASTMODEPLUS_PB7 SYSCFG_CFGR1_I2C_PB7_FMP /*!< I2C PB7 Fast mode plus */
  255. #define LL_SYSCFG_I2C_FASTMODEPLUS_PB8 SYSCFG_CFGR1_I2C_PB8_FMP /*!< I2C PB8 Fast mode plus */
  256. #define LL_SYSCFG_I2C_FASTMODEPLUS_PB9 SYSCFG_CFGR1_I2C_PB9_FMP /*!< I2C PB9 Fast mode plus */
  257. #define LL_SYSCFG_I2C_FASTMODEPLUS_I2C1 SYSCFG_CFGR1_I2C1_FMP /*!< I2C1 Fast mode plus */
  258. #if defined(SYSCFG_CFGR1_I2C2_FMP)
  259. #define LL_SYSCFG_I2C_FASTMODEPLUS_I2C2 SYSCFG_CFGR1_I2C2_FMP /*!< I2C2 Fast mode plus */
  260. #endif /*SYSCFG_CFGR1_I2C2_FMP*/
  261. #if defined(SYSCFG_CFGR1_I2C3_FMP)
  262. #define LL_SYSCFG_I2C_FASTMODEPLUS_I2C3 SYSCFG_CFGR1_I2C3_FMP /*!< I2C3 Fast mode plus */
  263. #endif /*SYSCFG_CFGR1_I2C3_FMP*/
  264. /**
  265. * @}
  266. */
  267. /** @defgroup SYSTEM_LL_EC_EXTI_PORT SYSCFG EXTI PORT
  268. * @{
  269. */
  270. #define LL_SYSCFG_EXTI_PORTA (uint32_t)0U /*!< EXTI PORT A */
  271. #define LL_SYSCFG_EXTI_PORTB (uint32_t)1U /*!< EXTI PORT B */
  272. #define LL_SYSCFG_EXTI_PORTC (uint32_t)2U /*!< EXTI PORT C */
  273. #define LL_SYSCFG_EXTI_PORTD (uint32_t)3U /*!< EXTI PORT D */
  274. #if defined(GPIOE)
  275. #define LL_SYSCFG_EXTI_PORTE (uint32_t)4U /*!< EXTI PORT E */
  276. #endif /* GPIOE */
  277. #define LL_SYSCFG_EXTI_PORTF (uint32_t)5U /*!< EXTI PORT F */
  278. #if defined(GPIOG)
  279. #define LL_SYSCFG_EXTI_PORTG (uint32_t)6U /*!< EXTI PORT G */
  280. #endif /* GPIOG */
  281. #if defined(GPIOH)
  282. #define LL_SYSCFG_EXTI_PORTH (uint32_t)7U /*!< EXTI PORT H */
  283. #endif /* GPIOH */
  284. /**
  285. * @}
  286. */
  287. /** @defgroup SYSTEM_LL_EC_EXTI_LINE SYSCFG EXTI LINE
  288. * @{
  289. */
  290. #define LL_SYSCFG_EXTI_LINE0 (uint32_t)(0x000FU << 16U | 0U) /* EXTI_POSITION_0 | EXTICR[0] */
  291. #define LL_SYSCFG_EXTI_LINE1 (uint32_t)(0x00F0U << 16U | 0U) /* EXTI_POSITION_4 | EXTICR[0] */
  292. #define LL_SYSCFG_EXTI_LINE2 (uint32_t)(0x0F00U << 16U | 0U) /* EXTI_POSITION_8 | EXTICR[0] */
  293. #define LL_SYSCFG_EXTI_LINE3 (uint32_t)(0xF000U << 16U | 0U) /* EXTI_POSITION_12 | EXTICR[0] */
  294. #define LL_SYSCFG_EXTI_LINE4 (uint32_t)(0x000FU << 16U | 1U) /* EXTI_POSITION_0 | EXTICR[1] */
  295. #define LL_SYSCFG_EXTI_LINE5 (uint32_t)(0x00F0U << 16U | 1U) /* EXTI_POSITION_4 | EXTICR[1] */
  296. #define LL_SYSCFG_EXTI_LINE6 (uint32_t)(0x0F00U << 16U | 1U) /* EXTI_POSITION_8 | EXTICR[1] */
  297. #define LL_SYSCFG_EXTI_LINE7 (uint32_t)(0xF000U << 16U | 1U) /* EXTI_POSITION_12 | EXTICR[1] */
  298. #define LL_SYSCFG_EXTI_LINE8 (uint32_t)(0x000FU << 16U | 2U) /* EXTI_POSITION_0 | EXTICR[2] */
  299. #define LL_SYSCFG_EXTI_LINE9 (uint32_t)(0x00F0U << 16U | 2U) /* EXTI_POSITION_4 | EXTICR[2] */
  300. #define LL_SYSCFG_EXTI_LINE10 (uint32_t)(0x0F00U << 16U | 2U) /* EXTI_POSITION_8 | EXTICR[2] */
  301. #define LL_SYSCFG_EXTI_LINE11 (uint32_t)(0xF000U << 16U | 2U) /* EXTI_POSITION_12 | EXTICR[2] */
  302. #define LL_SYSCFG_EXTI_LINE12 (uint32_t)(0x000FU << 16U | 3U) /* EXTI_POSITION_0 | EXTICR[3] */
  303. #define LL_SYSCFG_EXTI_LINE13 (uint32_t)(0x00F0U << 16U | 3U) /* EXTI_POSITION_4 | EXTICR[3] */
  304. #define LL_SYSCFG_EXTI_LINE14 (uint32_t)(0x0F00U << 16U | 3U) /* EXTI_POSITION_8 | EXTICR[3] */
  305. #define LL_SYSCFG_EXTI_LINE15 (uint32_t)(0xF000U << 16U | 3U) /* EXTI_POSITION_12 | EXTICR[3] */
  306. /**
  307. * @}
  308. */
  309. /** @defgroup SYSTEM_LL_EC_TIMBREAK SYSCFG TIMER BREAK
  310. * @{
  311. */
  312. #if defined(SYSCFG_CFGR2_PVD_LOCK)
  313. #define LL_SYSCFG_TIMBREAK_PVD SYSCFG_CFGR2_PVD_LOCK /*!< Enables and locks the PVD connection with TIMx Break Input and also the PVDE and PLS bits of the Power Control Interface */
  314. #endif /*SYSCFG_CFGR2_PVD_LOCK*/
  315. #if defined(SYSCFG_CFGR2_SRAM_PARITY_LOCK)
  316. #define LL_SYSCFG_TIMBREAK_SRAM_PARITY SYSCFG_CFGR2_SRAM_PARITY_LOCK /*!< Enables and locks the SRAM_PARITY error signal with Break Input of TIMx */
  317. #endif /* SYSCFG_CFGR2_SRAM_PARITY_LOCK */
  318. #define LL_SYSCFG_TIMBREAK_LOCKUP SYSCFG_CFGR2_LOCKUP_LOCK /*!< Enables and locks the LOCKUP (Hardfault) output of CortexM0 with Break Input of TIMx */
  319. /**
  320. * @}
  321. */
  322. #if defined(SYSCFG_RCR_PAGE0)
  323. /** @defgroup SYSTEM_LL_EC_CCMSRAMWRP SYSCFG CCM SRAM WRP
  324. * @{
  325. */
  326. #define LL_SYSCFG_CCMSRAMWRP_PAGE0 SYSCFG_RCR_PAGE0 /*!< ICODE SRAM Write protection page 0 */
  327. #define LL_SYSCFG_CCMSRAMWRP_PAGE1 SYSCFG_RCR_PAGE1 /*!< ICODE SRAM Write protection page 1 */
  328. #define LL_SYSCFG_CCMSRAMWRP_PAGE2 SYSCFG_RCR_PAGE2 /*!< ICODE SRAM Write protection page 2 */
  329. #define LL_SYSCFG_CCMSRAMWRP_PAGE3 SYSCFG_RCR_PAGE3 /*!< ICODE SRAM Write protection page 3 */
  330. #if defined(SYSCFG_RCR_PAGE4)
  331. #define LL_SYSCFG_CCMSRAMWRP_PAGE4 SYSCFG_RCR_PAGE4 /*!< ICODE SRAM Write protection page 4 */
  332. #define LL_SYSCFG_CCMSRAMWRP_PAGE5 SYSCFG_RCR_PAGE5 /*!< ICODE SRAM Write protection page 5 */
  333. #define LL_SYSCFG_CCMSRAMWRP_PAGE6 SYSCFG_RCR_PAGE6 /*!< ICODE SRAM Write protection page 6 */
  334. #define LL_SYSCFG_CCMSRAMWRP_PAGE7 SYSCFG_RCR_PAGE7 /*!< ICODE SRAM Write protection page 7 */
  335. #endif
  336. #if defined(SYSCFG_RCR_PAGE8)
  337. #define LL_SYSCFG_CCMSRAMWRP_PAGE8 SYSCFG_RCR_PAGE8 /*!< ICODE SRAM Write protection page 8 */
  338. #define LL_SYSCFG_CCMSRAMWRP_PAGE9 SYSCFG_RCR_PAGE9 /*!< ICODE SRAM Write protection page 9 */
  339. #define LL_SYSCFG_CCMSRAMWRP_PAGE10 SYSCFG_RCR_PAGE10 /*!< ICODE SRAM Write protection page 10 */
  340. #define LL_SYSCFG_CCMSRAMWRP_PAGE11 SYSCFG_RCR_PAGE11 /*!< ICODE SRAM Write protection page 11 */
  341. #define LL_SYSCFG_CCMSRAMWRP_PAGE12 SYSCFG_RCR_PAGE12 /*!< ICODE SRAM Write protection page 12 */
  342. #define LL_SYSCFG_CCMSRAMWRP_PAGE13 SYSCFG_RCR_PAGE13 /*!< ICODE SRAM Write protection page 13 */
  343. #define LL_SYSCFG_CCMSRAMWRP_PAGE14 SYSCFG_RCR_PAGE14 /*!< ICODE SRAM Write protection page 14 */
  344. #define LL_SYSCFG_CCMSRAMWRP_PAGE15 SYSCFG_RCR_PAGE15 /*!< ICODE SRAM Write protection page 15 */
  345. #endif
  346. /**
  347. * @}
  348. */
  349. #endif /* SYSCFG_RCR_PAGE0 */
  350. /** @defgroup SYSTEM_LL_EC_TRACE DBGMCU TRACE Pin Assignment
  351. * @{
  352. */
  353. #define LL_DBGMCU_TRACE_NONE 0x00000000U /*!< TRACE pins not assigned (default state) */
  354. #define LL_DBGMCU_TRACE_ASYNCH DBGMCU_CR_TRACE_IOEN /*!< TRACE pin assignment for Asynchronous Mode */
  355. #define LL_DBGMCU_TRACE_SYNCH_SIZE1 (DBGMCU_CR_TRACE_IOEN | DBGMCU_CR_TRACE_MODE_0) /*!< TRACE pin assignment for Synchronous Mode with a TRACEDATA size of 1 */
  356. #define LL_DBGMCU_TRACE_SYNCH_SIZE2 (DBGMCU_CR_TRACE_IOEN | DBGMCU_CR_TRACE_MODE_1) /*!< TRACE pin assignment for Synchronous Mode with a TRACEDATA size of 2 */
  357. #define LL_DBGMCU_TRACE_SYNCH_SIZE4 (DBGMCU_CR_TRACE_IOEN | DBGMCU_CR_TRACE_MODE) /*!< TRACE pin assignment for Synchronous Mode with a TRACEDATA size of 4 */
  358. /**
  359. * @}
  360. */
  361. /** @defgroup SYSTEM_LL_EC_APB1_GRP1_STOP_IP DBGMCU APB1 GRP1 STOP IP
  362. * @{
  363. */
  364. #define LL_DBGMCU_APB1_GRP1_TIM2_STOP DBGMCU_APB1_FZ_DBG_TIM2_STOP /*!< TIM2 counter stopped when core is halted */
  365. #if defined(DBGMCU_APB1_FZ_DBG_TIM3_STOP)
  366. #define LL_DBGMCU_APB1_GRP1_TIM3_STOP DBGMCU_APB1_FZ_DBG_TIM3_STOP /*!< TIM3 counter stopped when core is halted */
  367. #endif /*DBGMCU_APB1_FZ_DBG_TIM3_STOP*/
  368. #if defined(DBGMCU_APB1_FZ_DBG_TIM4_STOP)
  369. #define LL_DBGMCU_APB1_GRP1_TIM4_STOP DBGMCU_APB1_FZ_DBG_TIM4_STOP /*!< TIM4 counter stopped when core is halted */
  370. #endif /*DBGMCU_APB1_FZ_DBG_TIM4_STOP*/
  371. #if defined(DBGMCU_APB1_FZ_DBG_TIM5_STOP)
  372. #define LL_DBGMCU_APB1_GRP1_TIM5_STOP DBGMCU_APB1_FZ_DBG_TIM5_STOP /*!< TIM5 counter stopped when core is halted */
  373. #endif /*DBGMCU_APB1_FZ_DBG_TIM5_STOP*/
  374. #define LL_DBGMCU_APB1_GRP1_TIM6_STOP DBGMCU_APB1_FZ_DBG_TIM6_STOP /*!< TIM6 counter stopped when core is halted */
  375. #if defined(DBGMCU_APB1_FZ_DBG_TIM7_STOP)
  376. #define LL_DBGMCU_APB1_GRP1_TIM7_STOP DBGMCU_APB1_FZ_DBG_TIM7_STOP /*!< TIM7 counter stopped when core is halted */
  377. #endif /*DBGMCU_APB1_FZ_DBG_TIM7_STOP*/
  378. #if defined(DBGMCU_APB1_FZ_DBG_TIM12_STOP)
  379. #define LL_DBGMCU_APB1_GRP1_TIM12_STOP DBGMCU_APB1_FZ_DBG_TIM12_STOP /*!< TIM12 counter stopped when core is halted */
  380. #endif /*DBGMCU_APB1_FZ_DBG_TIM12_STOP*/
  381. #if defined(DBGMCU_APB1_FZ_DBG_TIM13_STOP)
  382. #define LL_DBGMCU_APB1_GRP1_TIM13_STOP DBGMCU_APB1_FZ_DBG_TIM13_STOP /*!< TIM13 counter stopped when core is halted */
  383. #endif /*DBGMCU_APB1_FZ_DBG_TIM13_STOP*/
  384. #if defined(DBGMCU_APB1_FZ_DBG_TIM14_STOP)
  385. #define LL_DBGMCU_APB1_GRP1_TIM14_STOP DBGMCU_APB1_FZ_DBG_TIM14_STOP /*!< TIM14 counter stopped when core is halted */
  386. #endif /*DBGMCU_APB1_FZ_DBG_TIM14_STOP*/
  387. #if defined(DBGMCU_APB1_FZ_DBG_TIM18_STOP)
  388. #define LL_DBGMCU_APB1_GRP1_TIM18_STOP DBGMCU_APB1_FZ_DBG_TIM18_STOP /*!< TIM18 counter stopped when core is halted */
  389. #endif /*DBGMCU_APB1_FZ_DBG_TIM18_STOP*/
  390. #define LL_DBGMCU_APB1_GRP1_RTC_STOP DBGMCU_APB1_FZ_DBG_RTC_STOP /*!< RTC counter stopped when core is halted */
  391. #define LL_DBGMCU_APB1_GRP1_WWDG_STOP DBGMCU_APB1_FZ_DBG_WWDG_STOP /*!< Debug Window Watchdog stopped when Core is halted */
  392. #define LL_DBGMCU_APB1_GRP1_IWDG_STOP DBGMCU_APB1_FZ_DBG_IWDG_STOP /*!< Debug Independent Watchdog stopped when Core is halted */
  393. #define LL_DBGMCU_APB1_GRP1_I2C1_STOP DBGMCU_APB1_FZ_DBG_I2C1_SMBUS_TIMEOUT /*!< I2C1 SMBUS timeout mode stopped when Core is halted */
  394. #if defined(DBGMCU_APB1_FZ_DBG_I2C2_SMBUS_TIMEOUT)
  395. #define LL_DBGMCU_APB1_GRP1_I2C2_STOP DBGMCU_APB1_FZ_DBG_I2C2_SMBUS_TIMEOUT /*!< I2C2 SMBUS timeout mode stopped when Core is halted */
  396. #endif /*DBGMCU_APB1_FZ_DBG_I2C2_SMBUS_TIMEOUT*/
  397. #if defined(DBGMCU_APB1_FZ_DBG_I2C3_SMBUS_TIMEOUT)
  398. #define LL_DBGMCU_APB1_GRP1_I2C3_STOP DBGMCU_APB1_FZ_DBG_I2C3_SMBUS_TIMEOUT /*!< I2C3 SMBUS timeout mode stopped when Core is halted */
  399. #endif /*DBGMCU_APB1_FZ_DBG_I2C3_SMBUS_TIMEOUT*/
  400. #if defined(DBGMCU_APB1_FZ_DBG_CAN_STOP)
  401. #define LL_DBGMCU_APB1_GRP1_CAN_STOP DBGMCU_APB1_FZ_DBG_CAN_STOP /*!< CAN debug stopped when Core is halted */
  402. #endif /*DBGMCU_APB1_FZ_DBG_CAN_STOP*/
  403. /**
  404. * @}
  405. */
  406. /** @defgroup SYSTEM_LL_EC_APB2_GRP1_STOP_IP DBGMCU APB2 GRP1 STOP IP
  407. * @{
  408. */
  409. #if defined(DBGMCU_APB2_FZ_DBG_TIM1_STOP)
  410. #define LL_DBGMCU_APB2_GRP1_TIM1_STOP DBGMCU_APB2_FZ_DBG_TIM1_STOP /*!< TIM1 counter stopped when core is halted */
  411. #endif /*DBGMCU_APB2_FZ_DBG_TIM1_STOP*/
  412. #if defined(DBGMCU_APB2_FZ_DBG_TIM8_STOP)
  413. #define LL_DBGMCU_APB2_GRP1_TIM8_STOP DBGMCU_APB2_FZ_DBG_TIM8_STOP /*!< TIM8 counter stopped when core is halted */
  414. #endif /*DBGMCU_APB2_FZ_DBG_TIM8_STOP*/
  415. #define LL_DBGMCU_APB2_GRP1_TIM15_STOP DBGMCU_APB2_FZ_DBG_TIM15_STOP /*!< TIM15 counter stopped when core is halted */
  416. #define LL_DBGMCU_APB2_GRP1_TIM16_STOP DBGMCU_APB2_FZ_DBG_TIM16_STOP /*!< TIM16 counter stopped when core is halted */
  417. #define LL_DBGMCU_APB2_GRP1_TIM17_STOP DBGMCU_APB2_FZ_DBG_TIM17_STOP /*!< TIM17 counter stopped when core is halted */
  418. #if defined(DBGMCU_APB2_FZ_DBG_TIM19_STOP)
  419. #define LL_DBGMCU_APB2_GRP1_TIM19_STOP DBGMCU_APB2_FZ_DBG_TIM19_STOP /*!< TIM19 counter stopped when core is halted */
  420. #endif /*DBGMCU_APB2_FZ_DBG_TIM19_STOP*/
  421. #if defined(DBGMCU_APB2_FZ_DBG_TIM20_STOP)
  422. #define LL_DBGMCU_APB2_GRP1_TIM20_STOP DBGMCU_APB2_FZ_DBG_TIM20_STOP /*!< TIM20 counter stopped when core is halted */
  423. #endif /*DBGMCU_APB2_FZ_DBG_TIM20_STOP*/
  424. #if defined(DBGMCU_APB2_FZ_DBG_HRTIM1_STOP)
  425. #define LL_DBGMCU_APB2_GRP1_HRTIM1_STOP DBGMCU_APB2_FZ_DBG_HRTIM1_STOP /*!< HRTIM1 counter stopped when core is halted */
  426. #endif /*DBGMCU_APB2_FZ_DBG_HRTIM1_STOP*/
  427. /**
  428. * @}
  429. */
  430. /** @defgroup SYSTEM_LL_EC_LATENCY FLASH LATENCY
  431. * @{
  432. */
  433. #define LL_FLASH_LATENCY_0 0x00000000U /*!< FLASH Zero Latency cycle */
  434. #define LL_FLASH_LATENCY_1 FLASH_ACR_LATENCY_0 /*!< FLASH One Latency cycle */
  435. #define LL_FLASH_LATENCY_2 FLASH_ACR_LATENCY_1 /*!< FLASH Two Latency cycles */
  436. /**
  437. * @}
  438. */
  439. /**
  440. * @}
  441. */
  442. /* Exported macro ------------------------------------------------------------*/
  443. /* Exported functions --------------------------------------------------------*/
  444. /** @defgroup SYSTEM_LL_Exported_Functions SYSTEM Exported Functions
  445. * @{
  446. */
  447. /** @defgroup SYSTEM_LL_EF_SYSCFG SYSCFG
  448. * @{
  449. */
  450. /**
  451. * @brief Set memory mapping at address 0x00000000
  452. * @rmtoll SYSCFG_CFGR1 MEM_MODE LL_SYSCFG_SetRemapMemory
  453. * @param Memory This parameter can be one of the following values:
  454. * @arg @ref LL_SYSCFG_REMAP_FLASH
  455. * @arg @ref LL_SYSCFG_REMAP_SYSTEMFLASH
  456. * @arg @ref LL_SYSCFG_REMAP_SRAM
  457. * @arg @ref LL_SYSCFG_REMAP_FMC (*)
  458. *
  459. * (*) value not defined in all devices.
  460. * @retval None
  461. */
  462. __STATIC_INLINE void LL_SYSCFG_SetRemapMemory(uint32_t Memory)
  463. {
  464. MODIFY_REG(SYSCFG->CFGR1, SYSCFG_CFGR1_MEM_MODE, Memory);
  465. }
  466. /**
  467. * @brief Get memory mapping at address 0x00000000
  468. * @rmtoll SYSCFG_CFGR1 MEM_MODE LL_SYSCFG_GetRemapMemory
  469. * @retval Returned value can be one of the following values:
  470. * @arg @ref LL_SYSCFG_REMAP_FLASH
  471. * @arg @ref LL_SYSCFG_REMAP_SYSTEMFLASH
  472. * @arg @ref LL_SYSCFG_REMAP_SRAM
  473. * @arg @ref LL_SYSCFG_REMAP_FMC (*)
  474. *
  475. * (*) value not defined in all devices.
  476. */
  477. __STATIC_INLINE uint32_t LL_SYSCFG_GetRemapMemory(void)
  478. {
  479. return (uint32_t)(READ_BIT(SYSCFG->CFGR1, SYSCFG_CFGR1_MEM_MODE));
  480. }
  481. #if defined(SYSCFG_CFGR3_SPI1_RX_DMA_RMP)
  482. /**
  483. * @brief Set DMA request remapping bits for SPI
  484. * @rmtoll SYSCFG_CFGR3 SPI1_RX_DMA_RMP LL_SYSCFG_SetRemapDMA_SPI\n
  485. * SYSCFG_CFGR3 SPI1_TX_DMA_RMP LL_SYSCFG_SetRemapDMA_SPI
  486. * @param Remap This parameter can be one of the following values:
  487. * @arg @ref LL_SYSCFG_SPI1RX_RMP_DMA1_CH2
  488. * @arg @ref LL_SYSCFG_SPI1RX_RMP_DMA1_CH4
  489. * @arg @ref LL_SYSCFG_SPI1RX_RMP_DMA1_CH6
  490. * @arg @ref LL_SYSCFG_SPI1TX_RMP_DMA1_CH3
  491. * @arg @ref LL_SYSCFG_SPI1TX_RMP_DMA1_CH5
  492. * @arg @ref LL_SYSCFG_SPI1TX_RMP_DMA1_CH7
  493. * @retval None
  494. */
  495. __STATIC_INLINE void LL_SYSCFG_SetRemapDMA_SPI(uint32_t Remap)
  496. {
  497. MODIFY_REG(SYSCFG->CFGR3, (Remap >> 16U), (Remap & 0x0000FFFF));
  498. }
  499. #endif /* SYSCFG_CFGR3_SPI1_RX_DMA_RMP */
  500. #if defined(SYSCFG_CFGR3_I2C1_RX_DMA_RMP)
  501. /**
  502. * @brief Set DMA request remapping bits for I2C
  503. * @rmtoll SYSCFG_CFGR3 I2C1_RX_DMA_RMP LL_SYSCFG_SetRemapDMA_I2C\n
  504. * SYSCFG_CFGR3 I2C1_TX_DMA_RMP LL_SYSCFG_SetRemapDMA_I2C
  505. * @param Remap This parameter can be one of the following values:
  506. * @arg @ref LL_SYSCFG_I2C1RX_RMP_DMA1_CH7
  507. * @arg @ref LL_SYSCFG_I2C1RX_RMP_DMA1_CH3
  508. * @arg @ref LL_SYSCFG_I2C1RX_RMP_DMA1_CH5
  509. * @arg @ref LL_SYSCFG_I2C1TX_RMP_DMA1_CH6
  510. * @arg @ref LL_SYSCFG_I2C1TX_RMP_DMA1_CH2
  511. * @arg @ref LL_SYSCFG_I2C1TX_RMP_DMA1_CH4
  512. * @retval None
  513. */
  514. __STATIC_INLINE void LL_SYSCFG_SetRemapDMA_I2C(uint32_t Remap)
  515. {
  516. MODIFY_REG(SYSCFG->CFGR3, (Remap >> 16U), (Remap & 0x0000FFFF));
  517. }
  518. #endif /* SYSCFG_CFGR3_I2C1_RX_DMA_RMP */
  519. #if defined(SYSCFG_CFGR1_ADC24_DMA_RMP) || defined(SYSCFG_CFGR3_ADC2_DMA_RMP)
  520. /**
  521. * @brief Set DMA request remapping bits for ADC
  522. * @rmtoll SYSCFG_CFGR1 ADC24_DMA_RMP LL_SYSCFG_SetRemapDMA_ADC\n
  523. * SYSCFG_CFGR3 ADC2_DMA_RMP LL_SYSCFG_SetRemapDMA_ADC
  524. * @param Remap This parameter can be one of the following values:
  525. * @arg @ref LL_SYSCFG_ADC24_RMP_DMA2_CH12 (*)
  526. * @arg @ref LL_SYSCFG_ADC24_RMP_DMA2_CH34 (*)
  527. * @arg @ref LL_SYSCFG_ADC2_RMP_DMA1_CH2 (*)
  528. * @arg @ref LL_SYSCFG_ADC2_RMP_DMA1_CH4 (*)
  529. * @arg @ref LL_SYSCFG_ADC2_RMP_DMA2 (*)
  530. * @arg @ref LL_SYSCFG_ADC2_RMP_DMA1 (*)
  531. *
  532. * (*) value not defined in all devices.
  533. * @retval None
  534. */
  535. __STATIC_INLINE void LL_SYSCFG_SetRemapDMA_ADC(uint32_t Remap)
  536. {
  537. __IO uint32_t *reg = (__IO uint32_t *)(uint32_t)(SYSCFG_BASE + (Remap >> 24U));
  538. MODIFY_REG(*reg, (Remap & 0x00FF0000U) >> 8U, (Remap & 0x0000FFFFU));
  539. }
  540. #endif /* SYSCFG_CFGR1_ADC24_DMA_RMP || SYSCFG_CFGR3_ADC2_DMA_RMP */
  541. /**
  542. * @brief Set DMA request remapping bits for DAC
  543. * @rmtoll SYSCFG_CFGR1 TIM6DAC1Ch1_DMA_RMP LL_SYSCFG_SetRemapDMA_DAC\n
  544. * SYSCFG_CFGR1 DAC2Ch1_DMA_RMP LL_SYSCFG_SetRemapDMA_DAC
  545. * @param Remap This parameter can be one of the following values:
  546. * @arg @ref LL_SYSCFG_DAC1_CH1_RMP_DMA2_CH3
  547. * @arg @ref LL_SYSCFG_DAC1_CH1_RMP_DMA1_CH3
  548. * @arg @ref LL_SYSCFG_DAC1_OUT2_RMP_DMA2_CH4 (*)
  549. * @arg @ref LL_SYSCFG_DAC1_OUT2_RMP_DMA1_CH4 (*)
  550. * @arg @ref LL_SYSCFG_DAC2_OUT1_RMP_DMA2_CH5 (*)
  551. * @arg @ref LL_SYSCFG_DAC2_OUT1_RMP_DMA1_CH5 (*)
  552. * @arg @ref LL_SYSCFG_DAC2_CH1_RMP_NO (*)
  553. * @arg @ref LL_SYSCFG_DAC2_CH1_RMP_DMA1_CH5 (*)
  554. *
  555. * (*) value not defined in all devices.
  556. * @retval None
  557. */
  558. __STATIC_INLINE void LL_SYSCFG_SetRemapDMA_DAC(uint32_t Remap)
  559. {
  560. MODIFY_REG(SYSCFG->CFGR1, (Remap & 0x00FF0000U) >> 8U, (Remap & 0x0000FF00U));
  561. }
  562. /**
  563. * @brief Set DMA request remapping bits for TIM
  564. * @rmtoll SYSCFG_CFGR1 TIM16_DMA_RMP LL_SYSCFG_SetRemapDMA_TIM\n
  565. * SYSCFG_CFGR1 TIM17_DMA_RMP LL_SYSCFG_SetRemapDMA_TIM\n
  566. * SYSCFG_CFGR1 TIM6DAC1Ch1_DMA_RMP LL_SYSCFG_SetRemapDMA_TIM\n
  567. * SYSCFG_CFGR1 TIM7DAC1Ch2_DMA_RMP LL_SYSCFG_SetRemapDMA_TIM\n
  568. * SYSCFG_CFGR1 TIM18DAC2Ch1_DMA_RMP LL_SYSCFG_SetRemapDMA_TIM
  569. * @param Remap This parameter can be a combination of the following values:
  570. * @arg @ref LL_SYSCFG_TIM16_RMP_DMA1_CH3 or @ref LL_SYSCFG_TIM16_RMP_DMA1_CH6
  571. * @arg @ref LL_SYSCFG_TIM17_RMP_DMA1_CH1 or @ref LL_SYSCFG_TIM17_RMP_DMA1_CH7
  572. * @arg @ref LL_SYSCFG_TIM6_RMP_DMA2_CH3 or @ref LL_SYSCFG_TIM6_RMP_DMA1_CH3
  573. * @arg @ref LL_SYSCFG_TIM7_RMP_DMA2_CH4 or @ref LL_SYSCFG_TIM7_RMP_DMA1_CH4 (*)
  574. * @arg @ref LL_SYSCFG_TIM18_RMP_DMA2_CH5 or @ref LL_SYSCFG_TIM18_RMP_DMA1_CH5 (*)
  575. *
  576. * (*) value not defined in all devices.
  577. * @retval None
  578. */
  579. __STATIC_INLINE void LL_SYSCFG_SetRemapDMA_TIM(uint32_t Remap)
  580. {
  581. MODIFY_REG(SYSCFG->CFGR1, (Remap & 0x00FF0000U) >> 8U, (Remap & 0x0000FF00U));
  582. }
  583. #if defined(SYSCFG_CFGR1_TIM1_ITR3_RMP) || defined(SYSCFG_CFGR1_ENCODER_MODE)
  584. /**
  585. * @brief Set Timer input remap
  586. * @rmtoll SYSCFG_CFGR1 TIM1_ITR3_RMP LL_SYSCFG_SetRemapInput_TIM\n
  587. * SYSCFG_CFGR1 ENCODER_MODE LL_SYSCFG_SetRemapInput_TIM
  588. * @param Remap This parameter can be one of the following values:
  589. * @arg @ref LL_SYSCFG_TIM1_ITR3_RMP_TIM4_TRGO (*)
  590. * @arg @ref LL_SYSCFG_TIM1_ITR3_RMP_TIM17_OC (*)
  591. * @arg @ref LL_SYSCFG_TIM15_ENCODEMODE_NOREDIRECTION (*)
  592. * @arg @ref LL_SYSCFG_TIM15_ENCODEMODE_TIM2 (*)
  593. * @arg @ref LL_SYSCFG_TIM15_ENCODEMODE_TIM3 (*)
  594. * @arg @ref LL_SYSCFG_TIM15_ENCODEMODE_TIM4 (*)
  595. *
  596. * (*) value not defined in all devices.
  597. * @retval None
  598. */
  599. __STATIC_INLINE void LL_SYSCFG_SetRemapInput_TIM(uint32_t Remap)
  600. {
  601. MODIFY_REG(SYSCFG->CFGR1, (Remap & 0xFF00FF00U) >> 8U, (Remap & 0x00FF00FFU));
  602. }
  603. #endif /* SYSCFG_CFGR1_TIM1_ITR3_RMP || SYSCFG_CFGR1_ENCODER_MODE */
  604. #if defined(SYSCFG_CFGR4_ADC12_EXT2_RMP)
  605. /**
  606. * @brief Set ADC Trigger remap
  607. * @rmtoll SYSCFG_CFGR4 ADC12_EXT2_RMP LL_SYSCFG_SetRemapTrigger_ADC\n
  608. * SYSCFG_CFGR4 ADC12_EXT3_RMP LL_SYSCFG_SetRemapTrigger_ADC\n
  609. * SYSCFG_CFGR4 ADC12_EXT5_RMP LL_SYSCFG_SetRemapTrigger_ADC\n
  610. * SYSCFG_CFGR4 ADC12_EXT13_RMP LL_SYSCFG_SetRemapTrigger_ADC\n
  611. * SYSCFG_CFGR4 ADC12_EXT15_RMP LL_SYSCFG_SetRemapTrigger_ADC\n
  612. * SYSCFG_CFGR4 ADC12_JEXT3_RMP LL_SYSCFG_SetRemapTrigger_ADC\n
  613. * SYSCFG_CFGR4 ADC12_JEXT6_RMP LL_SYSCFG_SetRemapTrigger_ADC\n
  614. * SYSCFG_CFGR4 ADC12_JEXT13_RMP LL_SYSCFG_SetRemapTrigger_ADC\n
  615. * SYSCFG_CFGR4 ADC34_EXT5_RMP LL_SYSCFG_SetRemapTrigger_ADC\n
  616. * SYSCFG_CFGR4 ADC34_EXT6_RMP LL_SYSCFG_SetRemapTrigger_ADC\n
  617. * SYSCFG_CFGR4 ADC34_EXT15_RMP LL_SYSCFG_SetRemapTrigger_ADC\n
  618. * SYSCFG_CFGR4 ADC34_JEXT5_RMP LL_SYSCFG_SetRemapTrigger_ADC\n
  619. * SYSCFG_CFGR4 ADC34_JEXT11_RMP LL_SYSCFG_SetRemapTrigger_ADC\n
  620. * SYSCFG_CFGR4 ADC34_JEXT14_RMP LL_SYSCFG_SetRemapTrigger_ADC
  621. * @param Remap This parameter can be one of the following values:
  622. * @arg @ref LL_SYSCFG_ADC12_EXT2_RMP_TIM1_CC3
  623. * @arg @ref LL_SYSCFG_ADC12_EXT2_RMP_TIM20_TRGO
  624. * @arg @ref LL_SYSCFG_ADC12_EXT3_RMP_TIM2_CC2
  625. * @arg @ref LL_SYSCFG_ADC12_EXT3_RMP_TIM20_TRGO2
  626. * @arg @ref LL_SYSCFG_ADC12_EXT5_RMP_TIM4_CC4
  627. * @arg @ref LL_SYSCFG_ADC12_EXT5_RMP_TIM20_CC1
  628. * @arg @ref LL_SYSCFG_ADC12_EXT13_RMP_TIM6_TRGO
  629. * @arg @ref LL_SYSCFG_ADC12_EXT13_RMP_TIM20_CC2
  630. * @arg @ref LL_SYSCFG_ADC12_EXT15_RMP_TIM3_CC4
  631. * @arg @ref LL_SYSCFG_ADC12_EXT15_RMP_TIM20_CC3
  632. * @arg @ref LL_SYSCFG_ADC12_JEXT3_RMP_TIM2_CC1
  633. * @arg @ref LL_SYSCFG_ADC12_JEXT3_RMP_TIM20_TRGO
  634. * @arg @ref LL_SYSCFG_ADC12_JEXT6_RMP_EXTI_LINE_15
  635. * @arg @ref LL_SYSCFG_ADC12_JEXT6_RMP_TIM20_TRGO2
  636. * @arg @ref LL_SYSCFG_ADC12_JEXT13_RMP_TIM3_CC1
  637. * @arg @ref LL_SYSCFG_ADC12_JEXT13_RMP_TIM20_CC4
  638. * @arg @ref LL_SYSCFG_ADC34_EXT5_RMP_EXTI_LINE_2
  639. * @arg @ref LL_SYSCFG_ADC34_EXT5_RMP_TIM20_TRGO
  640. * @arg @ref LL_SYSCFG_ADC34_EXT6_RMP_TIM4_CC1
  641. * @arg @ref LL_SYSCFG_ADC34_EXT6_RMP_TIM20_TRGO2
  642. * @arg @ref LL_SYSCFG_ADC34_EXT15_RMP_TIM2_CC1
  643. * @arg @ref LL_SYSCFG_ADC34_EXT15_RMP_TIM20_CC1
  644. * @arg @ref LL_SYSCFG_ADC34_JEXT5_RMP_TIM4_CC3
  645. * @arg @ref LL_SYSCFG_ADC34_JEXT5_RMP_TIM20_TRGO
  646. * @arg @ref LL_SYSCFG_ADC34_JEXT11_RMP_TIM1_CC3
  647. * @arg @ref LL_SYSCFG_ADC34_JEXT11_RMP_TIM20_TRGO2
  648. * @arg @ref LL_SYSCFG_ADC34_JEXT14_RMP_TIM7_TRGO
  649. * @arg @ref LL_SYSCFG_ADC34_JEXT14_RMP_TIM20_CC2
  650. * @retval None
  651. */
  652. __STATIC_INLINE void LL_SYSCFG_SetRemapTrigger_ADC(uint32_t Remap)
  653. {
  654. MODIFY_REG(SYSCFG->CFGR4, (Remap & 0xFFFF0000U) >> 16U, (Remap & 0x0000FFFFU));
  655. }
  656. #endif /* SYSCFG_CFGR4_ADC12_EXT2_RMP */
  657. #if defined(SYSCFG_CFGR1_DAC1_TRIG1_RMP) || defined(SYSCFG_CFGR3_TRIGGER_RMP)
  658. /**
  659. * @brief Set DAC Trigger remap
  660. * @rmtoll SYSCFG_CFGR1 DAC1_TRIG1_RMP LL_SYSCFG_SetRemapTrigger_DAC\n
  661. * SYSCFG_CFGR3 DAC1_TRG3_RMP LL_SYSCFG_SetRemapTrigger_DAC\n
  662. * SYSCFG_CFGR3 DAC1_TRG5_RMP LL_SYSCFG_SetRemapTrigger_DAC
  663. * @param Remap This parameter can be one of the following values:
  664. * @arg @ref LL_SYSCFG_DAC1_TRIG1_RMP_TIM8_TRGO (*)
  665. * @arg @ref LL_SYSCFG_DAC1_TRIG1_RMP_TIM3_TRGO (*)
  666. * @arg @ref LL_SYSCFG_DAC1_TRIG3_RMP_TIM15_TRGO (*)
  667. * @arg @ref LL_SYSCFG_DAC1_TRIG3_RMP_HRTIM1_DAC1_TRIG1 (*)
  668. * @arg @ref LL_SYSCFG_DAC1_TRIG5_RMP_NO (*)
  669. * @arg @ref LL_SYSCFG_DAC1_TRIG5_RMP_HRTIM1_DAC1_TRIG2 (*)
  670. * (*) value not defined in all devices.
  671. * @retval None
  672. */
  673. __STATIC_INLINE void LL_SYSCFG_SetRemapTrigger_DAC(uint32_t Remap)
  674. {
  675. __IO uint32_t *reg = (__IO uint32_t *)(uint32_t)(SYSCFG_BASE + (Remap >> 24U));
  676. MODIFY_REG(*reg, (Remap & 0x00F00F00U) >> 4U, (Remap & 0x000F00F0U));
  677. }
  678. #endif /* SYSCFG_CFGR1_DAC1_TRIG1_RMP || SYSCFG_CFGR3_TRIGGER_RMP */
  679. #if defined(SYSCFG_CFGR1_USB_IT_RMP)
  680. /**
  681. * @brief Enable USB interrupt remap
  682. * @note Remap the USB interrupts (USB_HP, USB_LP and USB_WKUP) on interrupt lines 74, 75 and 76
  683. * respectively
  684. * @rmtoll SYSCFG_CFGR1 USB_IT_RMP LL_SYSCFG_EnableRemapIT_USB
  685. * @retval None
  686. */
  687. __STATIC_INLINE void LL_SYSCFG_EnableRemapIT_USB(void)
  688. {
  689. SET_BIT(SYSCFG->CFGR1, SYSCFG_CFGR1_USB_IT_RMP);
  690. }
  691. /**
  692. * @brief Disable USB interrupt remap
  693. * @rmtoll SYSCFG_CFGR1 USB_IT_RMP LL_SYSCFG_DisableRemapIT_USB
  694. * @retval None
  695. */
  696. __STATIC_INLINE void LL_SYSCFG_DisableRemapIT_USB(void)
  697. {
  698. CLEAR_BIT(SYSCFG->CFGR1, SYSCFG_CFGR1_USB_IT_RMP);
  699. }
  700. #endif /* SYSCFG_CFGR1_USB_IT_RMP */
  701. #if defined(SYSCFG_CFGR1_VBAT)
  702. /**
  703. * @brief Enable VBAT monitoring (to enable the power switch to deliver VBAT voltage on ADC channel 18 input)
  704. * @rmtoll SYSCFG_CFGR1 VBAT LL_SYSCFG_EnableVBATMonitoring
  705. * @retval None
  706. */
  707. __STATIC_INLINE void LL_SYSCFG_EnableVBATMonitoring(void)
  708. {
  709. SET_BIT(SYSCFG->CFGR1, SYSCFG_CFGR1_VBAT);
  710. }
  711. /**
  712. * @brief Disable VBAT monitoring
  713. * @rmtoll SYSCFG_CFGR1 VBAT LL_SYSCFG_DisableVBATMonitoring
  714. * @retval None
  715. */
  716. __STATIC_INLINE void LL_SYSCFG_DisableVBATMonitoring(void)
  717. {
  718. CLEAR_BIT(SYSCFG->CFGR1, SYSCFG_CFGR1_VBAT);
  719. }
  720. #endif /* SYSCFG_CFGR1_VBAT */
  721. /**
  722. * @brief Enable the I2C fast mode plus driving capability.
  723. * @rmtoll SYSCFG_CFGR1 I2C_PB6_FMP LL_SYSCFG_EnableFastModePlus\n
  724. * SYSCFG_CFGR1 I2C_PB7_FMP LL_SYSCFG_EnableFastModePlus\n
  725. * SYSCFG_CFGR1 I2C_PB8_FMP LL_SYSCFG_EnableFastModePlus\n
  726. * SYSCFG_CFGR1 I2C_PB9_FMP LL_SYSCFG_EnableFastModePlus\n
  727. * SYSCFG_CFGR1 I2C1_FMP LL_SYSCFG_EnableFastModePlus\n
  728. * SYSCFG_CFGR1 I2C2_FMP LL_SYSCFG_EnableFastModePlus\n
  729. * SYSCFG_CFGR1 I2C3_FMP LL_SYSCFG_EnableFastModePlus
  730. * @param ConfigFastModePlus This parameter can be a combination of the following values:
  731. * @arg @ref LL_SYSCFG_I2C_FASTMODEPLUS_PB6
  732. * @arg @ref LL_SYSCFG_I2C_FASTMODEPLUS_PB7
  733. * @arg @ref LL_SYSCFG_I2C_FASTMODEPLUS_PB8
  734. * @arg @ref LL_SYSCFG_I2C_FASTMODEPLUS_PB9
  735. * @arg @ref LL_SYSCFG_I2C_FASTMODEPLUS_I2C1
  736. * @arg @ref LL_SYSCFG_I2C_FASTMODEPLUS_I2C2 (*)
  737. * @arg @ref LL_SYSCFG_I2C_FASTMODEPLUS_I2C3 (*)
  738. *
  739. * (*) value not defined in all devices.
  740. * @retval None
  741. */
  742. __STATIC_INLINE void LL_SYSCFG_EnableFastModePlus(uint32_t ConfigFastModePlus)
  743. {
  744. SET_BIT(SYSCFG->CFGR1, ConfigFastModePlus);
  745. }
  746. /**
  747. * @brief Disable the I2C fast mode plus driving capability.
  748. * @rmtoll SYSCFG_CFGR1 I2C_PB6_FMP LL_SYSCFG_DisableFastModePlus\n
  749. * SYSCFG_CFGR1 I2C_PB7_FMP LL_SYSCFG_DisableFastModePlus\n
  750. * SYSCFG_CFGR1 I2C_PB8_FMP LL_SYSCFG_DisableFastModePlus\n
  751. * SYSCFG_CFGR1 I2C_PB9_FMP LL_SYSCFG_DisableFastModePlus\n
  752. * SYSCFG_CFGR1 I2C1_FMP LL_SYSCFG_DisableFastModePlus\n
  753. * SYSCFG_CFGR1 I2C2_FMP LL_SYSCFG_DisableFastModePlus\n
  754. * SYSCFG_CFGR1 I2C3_FMP LL_SYSCFG_DisableFastModePlus
  755. * @param ConfigFastModePlus This parameter can be a combination of the following values:
  756. * @arg @ref LL_SYSCFG_I2C_FASTMODEPLUS_PB6
  757. * @arg @ref LL_SYSCFG_I2C_FASTMODEPLUS_PB7
  758. * @arg @ref LL_SYSCFG_I2C_FASTMODEPLUS_PB8
  759. * @arg @ref LL_SYSCFG_I2C_FASTMODEPLUS_PB9
  760. * @arg @ref LL_SYSCFG_I2C_FASTMODEPLUS_I2C1
  761. * @arg @ref LL_SYSCFG_I2C_FASTMODEPLUS_I2C2 (*)
  762. * @arg @ref LL_SYSCFG_I2C_FASTMODEPLUS_I2C3 (*)
  763. *
  764. * (*) value not defined in all devices.
  765. * @retval None
  766. */
  767. __STATIC_INLINE void LL_SYSCFG_DisableFastModePlus(uint32_t ConfigFastModePlus)
  768. {
  769. CLEAR_BIT(SYSCFG->CFGR1, ConfigFastModePlus);
  770. }
  771. /**
  772. * @brief Enable Floating Point Unit Invalid operation Interrupt
  773. * @rmtoll SYSCFG_CFGR1 FPU_IE_0 LL_SYSCFG_EnableIT_FPU_IOC
  774. * @retval None
  775. */
  776. __STATIC_INLINE void LL_SYSCFG_EnableIT_FPU_IOC(void)
  777. {
  778. SET_BIT(SYSCFG->CFGR1, SYSCFG_CFGR1_FPU_IE_0);
  779. }
  780. /**
  781. * @brief Enable Floating Point Unit Divide-by-zero Interrupt
  782. * @rmtoll SYSCFG_CFGR1 FPU_IE_1 LL_SYSCFG_EnableIT_FPU_DZC
  783. * @retval None
  784. */
  785. __STATIC_INLINE void LL_SYSCFG_EnableIT_FPU_DZC(void)
  786. {
  787. SET_BIT(SYSCFG->CFGR1, SYSCFG_CFGR1_FPU_IE_1);
  788. }
  789. /**
  790. * @brief Enable Floating Point Unit Underflow Interrupt
  791. * @rmtoll SYSCFG_CFGR1 FPU_IE_2 LL_SYSCFG_EnableIT_FPU_UFC
  792. * @retval None
  793. */
  794. __STATIC_INLINE void LL_SYSCFG_EnableIT_FPU_UFC(void)
  795. {
  796. SET_BIT(SYSCFG->CFGR1, SYSCFG_CFGR1_FPU_IE_2);
  797. }
  798. /**
  799. * @brief Enable Floating Point Unit Overflow Interrupt
  800. * @rmtoll SYSCFG_CFGR1 FPU_IE_3 LL_SYSCFG_EnableIT_FPU_OFC
  801. * @retval None
  802. */
  803. __STATIC_INLINE void LL_SYSCFG_EnableIT_FPU_OFC(void)
  804. {
  805. SET_BIT(SYSCFG->CFGR1, SYSCFG_CFGR1_FPU_IE_3);
  806. }
  807. /**
  808. * @brief Enable Floating Point Unit Input denormal Interrupt
  809. * @rmtoll SYSCFG_CFGR1 FPU_IE_4 LL_SYSCFG_EnableIT_FPU_IDC
  810. * @retval None
  811. */
  812. __STATIC_INLINE void LL_SYSCFG_EnableIT_FPU_IDC(void)
  813. {
  814. SET_BIT(SYSCFG->CFGR1, SYSCFG_CFGR1_FPU_IE_4);
  815. }
  816. /**
  817. * @brief Enable Floating Point Unit Inexact Interrupt
  818. * @rmtoll SYSCFG_CFGR1 FPU_IE_5 LL_SYSCFG_EnableIT_FPU_IXC
  819. * @retval None
  820. */
  821. __STATIC_INLINE void LL_SYSCFG_EnableIT_FPU_IXC(void)
  822. {
  823. SET_BIT(SYSCFG->CFGR1, SYSCFG_CFGR1_FPU_IE_5);
  824. }
  825. /**
  826. * @brief Disable Floating Point Unit Invalid operation Interrupt
  827. * @rmtoll SYSCFG_CFGR1 FPU_IE_0 LL_SYSCFG_DisableIT_FPU_IOC
  828. * @retval None
  829. */
  830. __STATIC_INLINE void LL_SYSCFG_DisableIT_FPU_IOC(void)
  831. {
  832. CLEAR_BIT(SYSCFG->CFGR1, SYSCFG_CFGR1_FPU_IE_0);
  833. }
  834. /**
  835. * @brief Disable Floating Point Unit Divide-by-zero Interrupt
  836. * @rmtoll SYSCFG_CFGR1 FPU_IE_1 LL_SYSCFG_DisableIT_FPU_DZC
  837. * @retval None
  838. */
  839. __STATIC_INLINE void LL_SYSCFG_DisableIT_FPU_DZC(void)
  840. {
  841. CLEAR_BIT(SYSCFG->CFGR1, SYSCFG_CFGR1_FPU_IE_1);
  842. }
  843. /**
  844. * @brief Disable Floating Point Unit Underflow Interrupt
  845. * @rmtoll SYSCFG_CFGR1 FPU_IE_2 LL_SYSCFG_DisableIT_FPU_UFC
  846. * @retval None
  847. */
  848. __STATIC_INLINE void LL_SYSCFG_DisableIT_FPU_UFC(void)
  849. {
  850. CLEAR_BIT(SYSCFG->CFGR1, SYSCFG_CFGR1_FPU_IE_2);
  851. }
  852. /**
  853. * @brief Disable Floating Point Unit Overflow Interrupt
  854. * @rmtoll SYSCFG_CFGR1 FPU_IE_3 LL_SYSCFG_DisableIT_FPU_OFC
  855. * @retval None
  856. */
  857. __STATIC_INLINE void LL_SYSCFG_DisableIT_FPU_OFC(void)
  858. {
  859. CLEAR_BIT(SYSCFG->CFGR1, SYSCFG_CFGR1_FPU_IE_3);
  860. }
  861. /**
  862. * @brief Disable Floating Point Unit Input denormal Interrupt
  863. * @rmtoll SYSCFG_CFGR1 FPU_IE_4 LL_SYSCFG_DisableIT_FPU_IDC
  864. * @retval None
  865. */
  866. __STATIC_INLINE void LL_SYSCFG_DisableIT_FPU_IDC(void)
  867. {
  868. CLEAR_BIT(SYSCFG->CFGR1, SYSCFG_CFGR1_FPU_IE_4);
  869. }
  870. /**
  871. * @brief Disable Floating Point Unit Inexact Interrupt
  872. * @rmtoll SYSCFG_CFGR1 FPU_IE_5 LL_SYSCFG_DisableIT_FPU_IXC
  873. * @retval None
  874. */
  875. __STATIC_INLINE void LL_SYSCFG_DisableIT_FPU_IXC(void)
  876. {
  877. CLEAR_BIT(SYSCFG->CFGR1, SYSCFG_CFGR1_FPU_IE_5);
  878. }
  879. /**
  880. * @brief Check if Floating Point Unit Invalid operation Interrupt source is enabled or disabled.
  881. * @rmtoll SYSCFG_CFGR1 FPU_IE_0 LL_SYSCFG_IsEnabledIT_FPU_IOC
  882. * @retval State of bit (1 or 0).
  883. */
  884. __STATIC_INLINE uint32_t LL_SYSCFG_IsEnabledIT_FPU_IOC(void)
  885. {
  886. return (READ_BIT(SYSCFG->CFGR1, SYSCFG_CFGR1_FPU_IE_0) == (SYSCFG_CFGR1_FPU_IE_0));
  887. }
  888. /**
  889. * @brief Check if Floating Point Unit Divide-by-zero Interrupt source is enabled or disabled.
  890. * @rmtoll SYSCFG_CFGR1 FPU_IE_1 LL_SYSCFG_IsEnabledIT_FPU_DZC
  891. * @retval State of bit (1 or 0).
  892. */
  893. __STATIC_INLINE uint32_t LL_SYSCFG_IsEnabledIT_FPU_DZC(void)
  894. {
  895. return (READ_BIT(SYSCFG->CFGR1, SYSCFG_CFGR1_FPU_IE_1) == (SYSCFG_CFGR1_FPU_IE_1));
  896. }
  897. /**
  898. * @brief Check if Floating Point Unit Underflow Interrupt source is enabled or disabled.
  899. * @rmtoll SYSCFG_CFGR1 FPU_IE_2 LL_SYSCFG_IsEnabledIT_FPU_UFC
  900. * @retval State of bit (1 or 0).
  901. */
  902. __STATIC_INLINE uint32_t LL_SYSCFG_IsEnabledIT_FPU_UFC(void)
  903. {
  904. return (READ_BIT(SYSCFG->CFGR1, SYSCFG_CFGR1_FPU_IE_2) == (SYSCFG_CFGR1_FPU_IE_2));
  905. }
  906. /**
  907. * @brief Check if Floating Point Unit Overflow Interrupt source is enabled or disabled.
  908. * @rmtoll SYSCFG_CFGR1 FPU_IE_3 LL_SYSCFG_IsEnabledIT_FPU_OFC
  909. * @retval State of bit (1 or 0).
  910. */
  911. __STATIC_INLINE uint32_t LL_SYSCFG_IsEnabledIT_FPU_OFC(void)
  912. {
  913. return (READ_BIT(SYSCFG->CFGR1, SYSCFG_CFGR1_FPU_IE_3) == (SYSCFG_CFGR1_FPU_IE_3));
  914. }
  915. /**
  916. * @brief Check if Floating Point Unit Input denormal Interrupt source is enabled or disabled.
  917. * @rmtoll SYSCFG_CFGR1 FPU_IE_4 LL_SYSCFG_IsEnabledIT_FPU_IDC
  918. * @retval State of bit (1 or 0).
  919. */
  920. __STATIC_INLINE uint32_t LL_SYSCFG_IsEnabledIT_FPU_IDC(void)
  921. {
  922. return (READ_BIT(SYSCFG->CFGR1, SYSCFG_CFGR1_FPU_IE_4) == (SYSCFG_CFGR1_FPU_IE_4));
  923. }
  924. /**
  925. * @brief Check if Floating Point Unit Inexact Interrupt source is enabled or disabled.
  926. * @rmtoll SYSCFG_CFGR1 FPU_IE_5 LL_SYSCFG_IsEnabledIT_FPU_IXC
  927. * @retval State of bit (1 or 0).
  928. */
  929. __STATIC_INLINE uint32_t LL_SYSCFG_IsEnabledIT_FPU_IXC(void)
  930. {
  931. return (READ_BIT(SYSCFG->CFGR1, SYSCFG_CFGR1_FPU_IE_5) == (SYSCFG_CFGR1_FPU_IE_5));
  932. }
  933. /**
  934. * @brief Configure source input for the EXTI external interrupt.
  935. * @rmtoll SYSCFG_EXTICR1 EXTI0 LL_SYSCFG_SetEXTISource\n
  936. * SYSCFG_EXTICR1 EXTI1 LL_SYSCFG_SetEXTISource\n
  937. * SYSCFG_EXTICR1 EXTI2 LL_SYSCFG_SetEXTISource\n
  938. * SYSCFG_EXTICR1 EXTI3 LL_SYSCFG_SetEXTISource\n
  939. * SYSCFG_EXTICR1 EXTI4 LL_SYSCFG_SetEXTISource\n
  940. * SYSCFG_EXTICR1 EXTI5 LL_SYSCFG_SetEXTISource\n
  941. * SYSCFG_EXTICR1 EXTI6 LL_SYSCFG_SetEXTISource\n
  942. * SYSCFG_EXTICR1 EXTI7 LL_SYSCFG_SetEXTISource\n
  943. * SYSCFG_EXTICR1 EXTI8 LL_SYSCFG_SetEXTISource\n
  944. * SYSCFG_EXTICR1 EXTI9 LL_SYSCFG_SetEXTISource\n
  945. * SYSCFG_EXTICR1 EXTI10 LL_SYSCFG_SetEXTISource\n
  946. * SYSCFG_EXTICR1 EXTI11 LL_SYSCFG_SetEXTISource\n
  947. * SYSCFG_EXTICR1 EXTI12 LL_SYSCFG_SetEXTISource\n
  948. * SYSCFG_EXTICR1 EXTI13 LL_SYSCFG_SetEXTISource\n
  949. * SYSCFG_EXTICR1 EXTI14 LL_SYSCFG_SetEXTISource\n
  950. * SYSCFG_EXTICR1 EXTI15 LL_SYSCFG_SetEXTISource\n
  951. * SYSCFG_EXTICR2 EXTI0 LL_SYSCFG_SetEXTISource\n
  952. * SYSCFG_EXTICR2 EXTI1 LL_SYSCFG_SetEXTISource\n
  953. * SYSCFG_EXTICR2 EXTI2 LL_SYSCFG_SetEXTISource\n
  954. * SYSCFG_EXTICR2 EXTI3 LL_SYSCFG_SetEXTISource\n
  955. * SYSCFG_EXTICR2 EXTI4 LL_SYSCFG_SetEXTISource\n
  956. * SYSCFG_EXTICR2 EXTI5 LL_SYSCFG_SetEXTISource\n
  957. * SYSCFG_EXTICR2 EXTI6 LL_SYSCFG_SetEXTISource\n
  958. * SYSCFG_EXTICR2 EXTI7 LL_SYSCFG_SetEXTISource\n
  959. * SYSCFG_EXTICR2 EXTI8 LL_SYSCFG_SetEXTISource\n
  960. * SYSCFG_EXTICR2 EXTI9 LL_SYSCFG_SetEXTISource\n
  961. * SYSCFG_EXTICR2 EXTI10 LL_SYSCFG_SetEXTISource\n
  962. * SYSCFG_EXTICR2 EXTI11 LL_SYSCFG_SetEXTISource\n
  963. * SYSCFG_EXTICR2 EXTI12 LL_SYSCFG_SetEXTISource\n
  964. * SYSCFG_EXTICR2 EXTI13 LL_SYSCFG_SetEXTISource\n
  965. * SYSCFG_EXTICR2 EXTI14 LL_SYSCFG_SetEXTISource\n
  966. * SYSCFG_EXTICR2 EXTI15 LL_SYSCFG_SetEXTISource\n
  967. * SYSCFG_EXTICR3 EXTI0 LL_SYSCFG_SetEXTISource\n
  968. * SYSCFG_EXTICR3 EXTI1 LL_SYSCFG_SetEXTISource\n
  969. * SYSCFG_EXTICR3 EXTI2 LL_SYSCFG_SetEXTISource\n
  970. * SYSCFG_EXTICR3 EXTI3 LL_SYSCFG_SetEXTISource\n
  971. * SYSCFG_EXTICR3 EXTI4 LL_SYSCFG_SetEXTISource\n
  972. * SYSCFG_EXTICR3 EXTI5 LL_SYSCFG_SetEXTISource\n
  973. * SYSCFG_EXTICR3 EXTI6 LL_SYSCFG_SetEXTISource\n
  974. * SYSCFG_EXTICR3 EXTI7 LL_SYSCFG_SetEXTISource\n
  975. * SYSCFG_EXTICR3 EXTI8 LL_SYSCFG_SetEXTISource\n
  976. * SYSCFG_EXTICR3 EXTI9 LL_SYSCFG_SetEXTISource\n
  977. * SYSCFG_EXTICR3 EXTI10 LL_SYSCFG_SetEXTISource\n
  978. * SYSCFG_EXTICR3 EXTI11 LL_SYSCFG_SetEXTISource\n
  979. * SYSCFG_EXTICR3 EXTI12 LL_SYSCFG_SetEXTISource\n
  980. * SYSCFG_EXTICR3 EXTI13 LL_SYSCFG_SetEXTISource\n
  981. * SYSCFG_EXTICR3 EXTI14 LL_SYSCFG_SetEXTISource\n
  982. * SYSCFG_EXTICR3 EXTI15 LL_SYSCFG_SetEXTISource\n
  983. * SYSCFG_EXTICR4 EXTI0 LL_SYSCFG_SetEXTISource\n
  984. * SYSCFG_EXTICR4 EXTI1 LL_SYSCFG_SetEXTISource\n
  985. * SYSCFG_EXTICR4 EXTI2 LL_SYSCFG_SetEXTISource\n
  986. * SYSCFG_EXTICR4 EXTI3 LL_SYSCFG_SetEXTISource\n
  987. * SYSCFG_EXTICR4 EXTI4 LL_SYSCFG_SetEXTISource\n
  988. * SYSCFG_EXTICR4 EXTI5 LL_SYSCFG_SetEXTISource\n
  989. * SYSCFG_EXTICR4 EXTI6 LL_SYSCFG_SetEXTISource\n
  990. * SYSCFG_EXTICR4 EXTI7 LL_SYSCFG_SetEXTISource\n
  991. * SYSCFG_EXTICR4 EXTI8 LL_SYSCFG_SetEXTISource\n
  992. * SYSCFG_EXTICR4 EXTI9 LL_SYSCFG_SetEXTISource\n
  993. * SYSCFG_EXTICR4 EXTI10 LL_SYSCFG_SetEXTISource\n
  994. * SYSCFG_EXTICR4 EXTI11 LL_SYSCFG_SetEXTISource\n
  995. * SYSCFG_EXTICR4 EXTI12 LL_SYSCFG_SetEXTISource\n
  996. * SYSCFG_EXTICR4 EXTI13 LL_SYSCFG_SetEXTISource\n
  997. * SYSCFG_EXTICR4 EXTI14 LL_SYSCFG_SetEXTISource\n
  998. * SYSCFG_EXTICR4 EXTI15 LL_SYSCFG_SetEXTISource
  999. * @param Port This parameter can be one of the following values:
  1000. * @arg @ref LL_SYSCFG_EXTI_PORTA
  1001. * @arg @ref LL_SYSCFG_EXTI_PORTB
  1002. * @arg @ref LL_SYSCFG_EXTI_PORTC
  1003. * @arg @ref LL_SYSCFG_EXTI_PORTD
  1004. * @arg @ref LL_SYSCFG_EXTI_PORTE (*)
  1005. * @arg @ref LL_SYSCFG_EXTI_PORTF
  1006. * @arg @ref LL_SYSCFG_EXTI_PORTG (*)
  1007. * @arg @ref LL_SYSCFG_EXTI_PORTH (*)
  1008. *
  1009. * (*) value not defined in all devices.
  1010. * @param Line This parameter can be one of the following values:
  1011. * @arg @ref LL_SYSCFG_EXTI_LINE0
  1012. * @arg @ref LL_SYSCFG_EXTI_LINE1
  1013. * @arg @ref LL_SYSCFG_EXTI_LINE2
  1014. * @arg @ref LL_SYSCFG_EXTI_LINE3
  1015. * @arg @ref LL_SYSCFG_EXTI_LINE4
  1016. * @arg @ref LL_SYSCFG_EXTI_LINE5
  1017. * @arg @ref LL_SYSCFG_EXTI_LINE6
  1018. * @arg @ref LL_SYSCFG_EXTI_LINE7
  1019. * @arg @ref LL_SYSCFG_EXTI_LINE8
  1020. * @arg @ref LL_SYSCFG_EXTI_LINE9
  1021. * @arg @ref LL_SYSCFG_EXTI_LINE10
  1022. * @arg @ref LL_SYSCFG_EXTI_LINE11
  1023. * @arg @ref LL_SYSCFG_EXTI_LINE12
  1024. * @arg @ref LL_SYSCFG_EXTI_LINE13
  1025. * @arg @ref LL_SYSCFG_EXTI_LINE14
  1026. * @arg @ref LL_SYSCFG_EXTI_LINE15
  1027. * @retval None
  1028. */
  1029. __STATIC_INLINE void LL_SYSCFG_SetEXTISource(uint32_t Port, uint32_t Line)
  1030. {
  1031. MODIFY_REG(SYSCFG->EXTICR[Line & 0x3U], (Line >> 16U), Port << POSITION_VAL((Line >> 16U)));
  1032. }
  1033. /**
  1034. * @brief Get the configured defined for specific EXTI Line
  1035. * @rmtoll SYSCFG_EXTICR1 EXTI0 LL_SYSCFG_GetEXTISource\n
  1036. * SYSCFG_EXTICR1 EXTI1 LL_SYSCFG_GetEXTISource\n
  1037. * SYSCFG_EXTICR1 EXTI2 LL_SYSCFG_GetEXTISource\n
  1038. * SYSCFG_EXTICR1 EXTI3 LL_SYSCFG_GetEXTISource\n
  1039. * SYSCFG_EXTICR1 EXTI4 LL_SYSCFG_GetEXTISource\n
  1040. * SYSCFG_EXTICR1 EXTI5 LL_SYSCFG_GetEXTISource\n
  1041. * SYSCFG_EXTICR1 EXTI6 LL_SYSCFG_GetEXTISource\n
  1042. * SYSCFG_EXTICR1 EXTI7 LL_SYSCFG_GetEXTISource\n
  1043. * SYSCFG_EXTICR1 EXTI8 LL_SYSCFG_GetEXTISource\n
  1044. * SYSCFG_EXTICR1 EXTI9 LL_SYSCFG_GetEXTISource\n
  1045. * SYSCFG_EXTICR1 EXTI10 LL_SYSCFG_GetEXTISource\n
  1046. * SYSCFG_EXTICR1 EXTI11 LL_SYSCFG_GetEXTISource\n
  1047. * SYSCFG_EXTICR1 EXTI12 LL_SYSCFG_GetEXTISource\n
  1048. * SYSCFG_EXTICR1 EXTI13 LL_SYSCFG_GetEXTISource\n
  1049. * SYSCFG_EXTICR1 EXTI14 LL_SYSCFG_GetEXTISource\n
  1050. * SYSCFG_EXTICR1 EXTI15 LL_SYSCFG_GetEXTISource\n
  1051. * SYSCFG_EXTICR2 EXTI0 LL_SYSCFG_GetEXTISource\n
  1052. * SYSCFG_EXTICR2 EXTI1 LL_SYSCFG_GetEXTISource\n
  1053. * SYSCFG_EXTICR2 EXTI2 LL_SYSCFG_GetEXTISource\n
  1054. * SYSCFG_EXTICR2 EXTI3 LL_SYSCFG_GetEXTISource\n
  1055. * SYSCFG_EXTICR2 EXTI4 LL_SYSCFG_GetEXTISource\n
  1056. * SYSCFG_EXTICR2 EXTI5 LL_SYSCFG_GetEXTISource\n
  1057. * SYSCFG_EXTICR2 EXTI6 LL_SYSCFG_GetEXTISource\n
  1058. * SYSCFG_EXTICR2 EXTI7 LL_SYSCFG_GetEXTISource\n
  1059. * SYSCFG_EXTICR2 EXTI8 LL_SYSCFG_GetEXTISource\n
  1060. * SYSCFG_EXTICR2 EXTI9 LL_SYSCFG_GetEXTISource\n
  1061. * SYSCFG_EXTICR2 EXTI10 LL_SYSCFG_GetEXTISource\n
  1062. * SYSCFG_EXTICR2 EXTI11 LL_SYSCFG_GetEXTISource\n
  1063. * SYSCFG_EXTICR2 EXTI12 LL_SYSCFG_GetEXTISource\n
  1064. * SYSCFG_EXTICR2 EXTI13 LL_SYSCFG_GetEXTISource\n
  1065. * SYSCFG_EXTICR2 EXTI14 LL_SYSCFG_GetEXTISource\n
  1066. * SYSCFG_EXTICR2 EXTI15 LL_SYSCFG_GetEXTISource\n
  1067. * SYSCFG_EXTICR3 EXTI0 LL_SYSCFG_GetEXTISource\n
  1068. * SYSCFG_EXTICR3 EXTI1 LL_SYSCFG_GetEXTISource\n
  1069. * SYSCFG_EXTICR3 EXTI2 LL_SYSCFG_GetEXTISource\n
  1070. * SYSCFG_EXTICR3 EXTI3 LL_SYSCFG_GetEXTISource\n
  1071. * SYSCFG_EXTICR3 EXTI4 LL_SYSCFG_GetEXTISource\n
  1072. * SYSCFG_EXTICR3 EXTI5 LL_SYSCFG_GetEXTISource\n
  1073. * SYSCFG_EXTICR3 EXTI6 LL_SYSCFG_GetEXTISource\n
  1074. * SYSCFG_EXTICR3 EXTI7 LL_SYSCFG_GetEXTISource\n
  1075. * SYSCFG_EXTICR3 EXTI8 LL_SYSCFG_GetEXTISource\n
  1076. * SYSCFG_EXTICR3 EXTI9 LL_SYSCFG_GetEXTISource\n
  1077. * SYSCFG_EXTICR3 EXTI10 LL_SYSCFG_GetEXTISource\n
  1078. * SYSCFG_EXTICR3 EXTI11 LL_SYSCFG_GetEXTISource\n
  1079. * SYSCFG_EXTICR3 EXTI12 LL_SYSCFG_GetEXTISource\n
  1080. * SYSCFG_EXTICR3 EXTI13 LL_SYSCFG_GetEXTISource\n
  1081. * SYSCFG_EXTICR3 EXTI14 LL_SYSCFG_GetEXTISource\n
  1082. * SYSCFG_EXTICR3 EXTI15 LL_SYSCFG_GetEXTISource\n
  1083. * SYSCFG_EXTICR4 EXTI0 LL_SYSCFG_GetEXTISource\n
  1084. * SYSCFG_EXTICR4 EXTI1 LL_SYSCFG_GetEXTISource\n
  1085. * SYSCFG_EXTICR4 EXTI2 LL_SYSCFG_GetEXTISource\n
  1086. * SYSCFG_EXTICR4 EXTI3 LL_SYSCFG_GetEXTISource\n
  1087. * SYSCFG_EXTICR4 EXTI4 LL_SYSCFG_GetEXTISource\n
  1088. * SYSCFG_EXTICR4 EXTI5 LL_SYSCFG_GetEXTISource\n
  1089. * SYSCFG_EXTICR4 EXTI6 LL_SYSCFG_GetEXTISource\n
  1090. * SYSCFG_EXTICR4 EXTI7 LL_SYSCFG_GetEXTISource\n
  1091. * SYSCFG_EXTICR4 EXTI8 LL_SYSCFG_GetEXTISource\n
  1092. * SYSCFG_EXTICR4 EXTI9 LL_SYSCFG_GetEXTISource\n
  1093. * SYSCFG_EXTICR4 EXTI10 LL_SYSCFG_GetEXTISource\n
  1094. * SYSCFG_EXTICR4 EXTI11 LL_SYSCFG_GetEXTISource\n
  1095. * SYSCFG_EXTICR4 EXTI12 LL_SYSCFG_GetEXTISource\n
  1096. * SYSCFG_EXTICR4 EXTI13 LL_SYSCFG_GetEXTISource\n
  1097. * SYSCFG_EXTICR4 EXTI14 LL_SYSCFG_GetEXTISource\n
  1098. * SYSCFG_EXTICR4 EXTI15 LL_SYSCFG_GetEXTISource
  1099. * @param Line This parameter can be one of the following values:
  1100. * @arg @ref LL_SYSCFG_EXTI_LINE0
  1101. * @arg @ref LL_SYSCFG_EXTI_LINE1
  1102. * @arg @ref LL_SYSCFG_EXTI_LINE2
  1103. * @arg @ref LL_SYSCFG_EXTI_LINE3
  1104. * @arg @ref LL_SYSCFG_EXTI_LINE4
  1105. * @arg @ref LL_SYSCFG_EXTI_LINE5
  1106. * @arg @ref LL_SYSCFG_EXTI_LINE6
  1107. * @arg @ref LL_SYSCFG_EXTI_LINE7
  1108. * @arg @ref LL_SYSCFG_EXTI_LINE8
  1109. * @arg @ref LL_SYSCFG_EXTI_LINE9
  1110. * @arg @ref LL_SYSCFG_EXTI_LINE10
  1111. * @arg @ref LL_SYSCFG_EXTI_LINE11
  1112. * @arg @ref LL_SYSCFG_EXTI_LINE12
  1113. * @arg @ref LL_SYSCFG_EXTI_LINE13
  1114. * @arg @ref LL_SYSCFG_EXTI_LINE14
  1115. * @arg @ref LL_SYSCFG_EXTI_LINE15
  1116. * @retval Returned value can be one of the following values:
  1117. * @arg @ref LL_SYSCFG_EXTI_PORTA
  1118. * @arg @ref LL_SYSCFG_EXTI_PORTB
  1119. * @arg @ref LL_SYSCFG_EXTI_PORTC
  1120. * @arg @ref LL_SYSCFG_EXTI_PORTD
  1121. * @arg @ref LL_SYSCFG_EXTI_PORTE (*)
  1122. * @arg @ref LL_SYSCFG_EXTI_PORTF
  1123. * @arg @ref LL_SYSCFG_EXTI_PORTG (*)
  1124. * @arg @ref LL_SYSCFG_EXTI_PORTH (*)
  1125. *
  1126. * (*) value not defined in all devices.
  1127. */
  1128. __STATIC_INLINE uint32_t LL_SYSCFG_GetEXTISource(uint32_t Line)
  1129. {
  1130. return (uint32_t)(READ_BIT(SYSCFG->EXTICR[Line & 0x3U], (Line >> 16U)) >> POSITION_VAL(Line >> 16U));
  1131. }
  1132. /**
  1133. * @brief Set connections to TIMx Break inputs
  1134. * @rmtoll SYSCFG_CFGR2 LOCKUP_LOCK LL_SYSCFG_SetTIMBreakInputs\n
  1135. * SYSCFG_CFGR2 SRAM_PARITY_LOCK LL_SYSCFG_SetTIMBreakInputs\n
  1136. * SYSCFG_CFGR2 PVD_LOCK LL_SYSCFG_SetTIMBreakInputs
  1137. * @param Break This parameter can be a combination of the following values:
  1138. * @arg @ref LL_SYSCFG_TIMBREAK_PVD (*)
  1139. * @arg @ref LL_SYSCFG_TIMBREAK_SRAM_PARITY (*)
  1140. * @arg @ref LL_SYSCFG_TIMBREAK_LOCKUP
  1141. *
  1142. * (*) value not defined in all devices.
  1143. * @retval None
  1144. */
  1145. __STATIC_INLINE void LL_SYSCFG_SetTIMBreakInputs(uint32_t Break)
  1146. {
  1147. MODIFY_REG(SYSCFG->CFGR2, SYSCFG_MASK_TIM_BREAK, Break);
  1148. }
  1149. /**
  1150. * @brief Get connections to TIMx Break inputs
  1151. * @rmtoll SYSCFG_CFGR2 LOCKUP_LOCK LL_SYSCFG_GetTIMBreakInputs\n
  1152. * SYSCFG_CFGR2 SRAM_PARITY_LOCK LL_SYSCFG_GetTIMBreakInputs\n
  1153. * SYSCFG_CFGR2 PVD_LOCK LL_SYSCFG_GetTIMBreakInputs
  1154. * @retval Returned value can be can be a combination of the following values:
  1155. * @arg @ref LL_SYSCFG_TIMBREAK_PVD (*)
  1156. * @arg @ref LL_SYSCFG_TIMBREAK_SRAM_PARITY (*)
  1157. * @arg @ref LL_SYSCFG_TIMBREAK_LOCKUP
  1158. *
  1159. * (*) value not defined in all devices.
  1160. */
  1161. __STATIC_INLINE uint32_t LL_SYSCFG_GetTIMBreakInputs(void)
  1162. {
  1163. return (uint32_t)(READ_BIT(SYSCFG->CFGR2, SYSCFG_MASK_TIM_BREAK));
  1164. }
  1165. #if defined(SYSCFG_CFGR2_BYP_ADDR_PAR)
  1166. /**
  1167. * @brief Disable RAM Parity Check Disable
  1168. * @rmtoll SYSCFG_CFGR2 BYP_ADDR_PAR LL_SYSCFG_DisableSRAMParityCheck
  1169. * @retval None
  1170. */
  1171. __STATIC_INLINE void LL_SYSCFG_DisableSRAMParityCheck(void)
  1172. {
  1173. SET_BIT(SYSCFG->CFGR2, SYSCFG_CFGR2_BYP_ADDR_PAR);
  1174. }
  1175. #endif /* SYSCFG_CFGR2_BYP_ADDR_PAR */
  1176. #if defined(SYSCFG_CFGR2_SRAM_PE)
  1177. /**
  1178. * @brief Check if SRAM parity error detected
  1179. * @rmtoll SYSCFG_CFGR2 SRAM_PE LL_SYSCFG_IsActiveFlag_SP
  1180. * @retval State of bit (1 or 0).
  1181. */
  1182. __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_SP(void)
  1183. {
  1184. return (READ_BIT(SYSCFG->CFGR2, SYSCFG_CFGR2_SRAM_PE) == (SYSCFG_CFGR2_SRAM_PE));
  1185. }
  1186. /**
  1187. * @brief Clear SRAM parity error flag
  1188. * @rmtoll SYSCFG_CFGR2 SRAM_PE LL_SYSCFG_ClearFlag_SP
  1189. * @retval None
  1190. */
  1191. __STATIC_INLINE void LL_SYSCFG_ClearFlag_SP(void)
  1192. {
  1193. SET_BIT(SYSCFG->CFGR2, SYSCFG_CFGR2_SRAM_PE);
  1194. }
  1195. #endif /* SYSCFG_CFGR2_SRAM_PE */
  1196. #if defined(SYSCFG_RCR_PAGE0)
  1197. /**
  1198. * @brief Enable CCM SRAM page write protection
  1199. * @note Write protection is cleared only by a system reset
  1200. * @rmtoll SYSCFG_RCR PAGE0 LL_SYSCFG_EnableCCM_SRAMPageWRP\n
  1201. * SYSCFG_RCR PAGE1 LL_SYSCFG_EnableCCM_SRAMPageWRP\n
  1202. * SYSCFG_RCR PAGE2 LL_SYSCFG_EnableCCM_SRAMPageWRP\n
  1203. * SYSCFG_RCR PAGE3 LL_SYSCFG_EnableCCM_SRAMPageWRP\n
  1204. * SYSCFG_RCR PAGE4 LL_SYSCFG_EnableCCM_SRAMPageWRP\n
  1205. * SYSCFG_RCR PAGE5 LL_SYSCFG_EnableCCM_SRAMPageWRP\n
  1206. * SYSCFG_RCR PAGE6 LL_SYSCFG_EnableCCM_SRAMPageWRP\n
  1207. * SYSCFG_RCR PAGE7 LL_SYSCFG_EnableCCM_SRAMPageWRP\n
  1208. * SYSCFG_RCR PAGE8 LL_SYSCFG_EnableCCM_SRAMPageWRP\n
  1209. * SYSCFG_RCR PAGE9 LL_SYSCFG_EnableCCM_SRAMPageWRP\n
  1210. * SYSCFG_RCR PAGE10 LL_SYSCFG_EnableCCM_SRAMPageWRP\n
  1211. * SYSCFG_RCR PAGE11 LL_SYSCFG_EnableCCM_SRAMPageWRP\n
  1212. * SYSCFG_RCR PAGE12 LL_SYSCFG_EnableCCM_SRAMPageWRP\n
  1213. * SYSCFG_RCR PAGE13 LL_SYSCFG_EnableCCM_SRAMPageWRP\n
  1214. * SYSCFG_RCR PAGE14 LL_SYSCFG_EnableCCM_SRAMPageWRP\n
  1215. * SYSCFG_RCR PAGE15 LL_SYSCFG_EnableCCM_SRAMPageWRP
  1216. * @param PageWRP This parameter can be a combination of the following values:
  1217. * @arg @ref LL_SYSCFG_CCMSRAMWRP_PAGE0
  1218. * @arg @ref LL_SYSCFG_CCMSRAMWRP_PAGE1
  1219. * @arg @ref LL_SYSCFG_CCMSRAMWRP_PAGE2
  1220. * @arg @ref LL_SYSCFG_CCMSRAMWRP_PAGE3
  1221. * @arg @ref LL_SYSCFG_CCMSRAMWRP_PAGE4 (*)
  1222. * @arg @ref LL_SYSCFG_CCMSRAMWRP_PAGE5 (*)
  1223. * @arg @ref LL_SYSCFG_CCMSRAMWRP_PAGE6 (*)
  1224. * @arg @ref LL_SYSCFG_CCMSRAMWRP_PAGE7 (*)
  1225. * @arg @ref LL_SYSCFG_CCMSRAMWRP_PAGE8 (*)
  1226. * @arg @ref LL_SYSCFG_CCMSRAMWRP_PAGE9 (*)
  1227. * @arg @ref LL_SYSCFG_CCMSRAMWRP_PAGE10 (*)
  1228. * @arg @ref LL_SYSCFG_CCMSRAMWRP_PAGE11 (*)
  1229. * @arg @ref LL_SYSCFG_CCMSRAMWRP_PAGE12 (*)
  1230. * @arg @ref LL_SYSCFG_CCMSRAMWRP_PAGE13 (*)
  1231. * @arg @ref LL_SYSCFG_CCMSRAMWRP_PAGE14 (*)
  1232. * @arg @ref LL_SYSCFG_CCMSRAMWRP_PAGE15 (*)
  1233. *
  1234. * (*) value not defined in all devices.
  1235. * @retval None
  1236. */
  1237. __STATIC_INLINE void LL_SYSCFG_EnableCCM_SRAMPageWRP(uint32_t PageWRP)
  1238. {
  1239. SET_BIT(SYSCFG->RCR, PageWRP);
  1240. }
  1241. #endif /* SYSCFG_RCR_PAGE0 */
  1242. /**
  1243. * @}
  1244. */
  1245. /** @defgroup SYSTEM_LL_EF_DBGMCU DBGMCU
  1246. * @{
  1247. */
  1248. /**
  1249. * @brief Return the device identifier
  1250. * @note For STM32F303xC, STM32F358xx and STM32F302xC devices, the device ID is 0x422
  1251. * @note For STM32F373xx and STM32F378xx devices, the device ID is 0x432
  1252. * @note For STM32F303x8, STM32F334xx and STM32F328xx devices, the device ID is 0x438.
  1253. * @note For STM32F302x8, STM32F301x8 and STM32F318xx devices, the device ID is 0x439
  1254. * @note For STM32F303xE, STM32F398xx and STM32F302xE devices, the device ID is 0x446
  1255. * @rmtoll DBGMCU_IDCODE DEV_ID LL_DBGMCU_GetDeviceID
  1256. * @retval Values between Min_Data=0x00 and Max_Data=0xFFF
  1257. */
  1258. __STATIC_INLINE uint32_t LL_DBGMCU_GetDeviceID(void)
  1259. {
  1260. return (uint32_t)(READ_BIT(DBGMCU->IDCODE, DBGMCU_IDCODE_DEV_ID));
  1261. }
  1262. /**
  1263. * @brief Return the device revision identifier
  1264. * @note This field indicates the revision of the device.
  1265. * @rmtoll DBGMCU_IDCODE REV_ID LL_DBGMCU_GetRevisionID
  1266. * @retval Values between Min_Data=0x00 and Max_Data=0xFFFF
  1267. */
  1268. __STATIC_INLINE uint32_t LL_DBGMCU_GetRevisionID(void)
  1269. {
  1270. return (uint32_t)(READ_BIT(DBGMCU->IDCODE, DBGMCU_IDCODE_REV_ID) >> DBGMCU_IDCODE_REV_ID_Pos);
  1271. }
  1272. /**
  1273. * @brief Enable the Debug Module during SLEEP mode
  1274. * @rmtoll DBGMCU_CR DBG_SLEEP LL_DBGMCU_EnableDBGSleepMode
  1275. * @retval None
  1276. */
  1277. __STATIC_INLINE void LL_DBGMCU_EnableDBGSleepMode(void)
  1278. {
  1279. SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_SLEEP);
  1280. }
  1281. /**
  1282. * @brief Disable the Debug Module during SLEEP mode
  1283. * @rmtoll DBGMCU_CR DBG_SLEEP LL_DBGMCU_DisableDBGSleepMode
  1284. * @retval None
  1285. */
  1286. __STATIC_INLINE void LL_DBGMCU_DisableDBGSleepMode(void)
  1287. {
  1288. CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_SLEEP);
  1289. }
  1290. /**
  1291. * @brief Enable the Debug Module during STOP mode
  1292. * @rmtoll DBGMCU_CR DBG_STOP LL_DBGMCU_EnableDBGStopMode
  1293. * @retval None
  1294. */
  1295. __STATIC_INLINE void LL_DBGMCU_EnableDBGStopMode(void)
  1296. {
  1297. SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_STOP);
  1298. }
  1299. /**
  1300. * @brief Disable the Debug Module during STOP mode
  1301. * @rmtoll DBGMCU_CR DBG_STOP LL_DBGMCU_DisableDBGStopMode
  1302. * @retval None
  1303. */
  1304. __STATIC_INLINE void LL_DBGMCU_DisableDBGStopMode(void)
  1305. {
  1306. CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_STOP);
  1307. }
  1308. /**
  1309. * @brief Enable the Debug Module during STANDBY mode
  1310. * @rmtoll DBGMCU_CR DBG_STANDBY LL_DBGMCU_EnableDBGStandbyMode
  1311. * @retval None
  1312. */
  1313. __STATIC_INLINE void LL_DBGMCU_EnableDBGStandbyMode(void)
  1314. {
  1315. SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_STANDBY);
  1316. }
  1317. /**
  1318. * @brief Disable the Debug Module during STANDBY mode
  1319. * @rmtoll DBGMCU_CR DBG_STANDBY LL_DBGMCU_DisableDBGStandbyMode
  1320. * @retval None
  1321. */
  1322. __STATIC_INLINE void LL_DBGMCU_DisableDBGStandbyMode(void)
  1323. {
  1324. CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_STANDBY);
  1325. }
  1326. /**
  1327. * @brief Set Trace pin assignment control
  1328. * @rmtoll DBGMCU_CR TRACE_IOEN LL_DBGMCU_SetTracePinAssignment\n
  1329. * DBGMCU_CR TRACE_MODE LL_DBGMCU_SetTracePinAssignment
  1330. * @param PinAssignment This parameter can be one of the following values:
  1331. * @arg @ref LL_DBGMCU_TRACE_NONE
  1332. * @arg @ref LL_DBGMCU_TRACE_ASYNCH
  1333. * @arg @ref LL_DBGMCU_TRACE_SYNCH_SIZE1
  1334. * @arg @ref LL_DBGMCU_TRACE_SYNCH_SIZE2
  1335. * @arg @ref LL_DBGMCU_TRACE_SYNCH_SIZE4
  1336. * @retval None
  1337. */
  1338. __STATIC_INLINE void LL_DBGMCU_SetTracePinAssignment(uint32_t PinAssignment)
  1339. {
  1340. MODIFY_REG(DBGMCU->CR, DBGMCU_CR_TRACE_IOEN | DBGMCU_CR_TRACE_MODE, PinAssignment);
  1341. }
  1342. /**
  1343. * @brief Get Trace pin assignment control
  1344. * @rmtoll DBGMCU_CR TRACE_IOEN LL_DBGMCU_GetTracePinAssignment\n
  1345. * DBGMCU_CR TRACE_MODE LL_DBGMCU_GetTracePinAssignment
  1346. * @retval Returned value can be one of the following values:
  1347. * @arg @ref LL_DBGMCU_TRACE_NONE
  1348. * @arg @ref LL_DBGMCU_TRACE_ASYNCH
  1349. * @arg @ref LL_DBGMCU_TRACE_SYNCH_SIZE1
  1350. * @arg @ref LL_DBGMCU_TRACE_SYNCH_SIZE2
  1351. * @arg @ref LL_DBGMCU_TRACE_SYNCH_SIZE4
  1352. */
  1353. __STATIC_INLINE uint32_t LL_DBGMCU_GetTracePinAssignment(void)
  1354. {
  1355. return (uint32_t)(READ_BIT(DBGMCU->CR, DBGMCU_CR_TRACE_IOEN | DBGMCU_CR_TRACE_MODE));
  1356. }
  1357. /**
  1358. * @brief Freeze APB1 peripherals (group1 peripherals)
  1359. * @rmtoll APB1_FZ DBG_TIM2_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n
  1360. * APB1_FZ DBG_TIM3_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n
  1361. * APB1_FZ DBG_TIM4_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n
  1362. * APB1_FZ DBG_TIM5_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n
  1363. * APB1_FZ DBG_TIM6_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n
  1364. * APB1_FZ DBG_TIM7_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n
  1365. * APB1_FZ DBG_TIM12_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n
  1366. * APB1_FZ DBG_TIM13_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n
  1367. * APB1_FZ DBG_TIM14_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n
  1368. * APB1_FZ DBG_TIM18_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n
  1369. * APB1_FZ DBG_RTC_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n
  1370. * APB1_FZ DBG_WWDG_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n
  1371. * APB1_FZ DBG_IWDG_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n
  1372. * APB1_FZ DBG_I2C1_SMBUS_TIMEOUT LL_DBGMCU_APB1_GRP1_FreezePeriph\n
  1373. * APB1_FZ DBG_I2C2_SMBUS_TIMEOUT LL_DBGMCU_APB1_GRP1_FreezePeriph\n
  1374. * APB1_FZ DBG_I2C3_SMBUS_TIMEOUT LL_DBGMCU_APB1_GRP1_FreezePeriph\n
  1375. * APB1_FZ DBG_CAN_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph
  1376. * @param Periphs This parameter can be a combination of the following values:
  1377. * @arg @ref LL_DBGMCU_APB1_GRP1_TIM2_STOP
  1378. * @arg @ref LL_DBGMCU_APB1_GRP1_TIM3_STOP (*)
  1379. * @arg @ref LL_DBGMCU_APB1_GRP1_TIM4_STOP (*)
  1380. * @arg @ref LL_DBGMCU_APB1_GRP1_TIM5_STOP (*)
  1381. * @arg @ref LL_DBGMCU_APB1_GRP1_TIM6_STOP
  1382. * @arg @ref LL_DBGMCU_APB1_GRP1_TIM7_STOP (*)
  1383. * @arg @ref LL_DBGMCU_APB1_GRP1_TIM12_STOP (*)
  1384. * @arg @ref LL_DBGMCU_APB1_GRP1_TIM13_STOP (*)
  1385. * @arg @ref LL_DBGMCU_APB1_GRP1_TIM14_STOP (*)
  1386. * @arg @ref LL_DBGMCU_APB1_GRP1_TIM18_STOP (*)
  1387. * @arg @ref LL_DBGMCU_APB1_GRP1_RTC_STOP
  1388. * @arg @ref LL_DBGMCU_APB1_GRP1_WWDG_STOP
  1389. * @arg @ref LL_DBGMCU_APB1_GRP1_IWDG_STOP
  1390. * @arg @ref LL_DBGMCU_APB1_GRP1_I2C1_STOP
  1391. * @arg @ref LL_DBGMCU_APB1_GRP1_I2C2_STOP (*)
  1392. * @arg @ref LL_DBGMCU_APB1_GRP1_I2C3_STOP (*)
  1393. * @arg @ref LL_DBGMCU_APB1_GRP1_CAN_STOP (*)
  1394. *
  1395. * (*) value not defined in all devices.
  1396. * @retval None
  1397. */
  1398. __STATIC_INLINE void LL_DBGMCU_APB1_GRP1_FreezePeriph(uint32_t Periphs)
  1399. {
  1400. SET_BIT(DBGMCU->APB1FZ, Periphs);
  1401. }
  1402. /**
  1403. * @brief Unfreeze APB1 peripherals (group1 peripherals)
  1404. * @rmtoll APB1_FZ DBG_TIM2_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n
  1405. * APB1_FZ DBG_TIM3_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n
  1406. * APB1_FZ DBG_TIM4_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n
  1407. * APB1_FZ DBG_TIM5_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n
  1408. * APB1_FZ DBG_TIM6_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n
  1409. * APB1_FZ DBG_TIM7_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n
  1410. * APB1_FZ DBG_TIM12_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n
  1411. * APB1_FZ DBG_TIM13_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n
  1412. * APB1_FZ DBG_TIM14_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n
  1413. * APB1_FZ DBG_TIM18_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n
  1414. * APB1_FZ DBG_RTC_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n
  1415. * APB1_FZ DBG_WWDG_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n
  1416. * APB1_FZ DBG_IWDG_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n
  1417. * APB1_FZ DBG_I2C1_SMBUS_TIMEOUT LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n
  1418. * APB1_FZ DBG_I2C2_SMBUS_TIMEOUT LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n
  1419. * APB1_FZ DBG_I2C3_SMBUS_TIMEOUT LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n
  1420. * APB1_FZ DBG_CAN_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph
  1421. * @param Periphs This parameter can be a combination of the following values:
  1422. * @arg @ref LL_DBGMCU_APB1_GRP1_TIM2_STOP
  1423. * @arg @ref LL_DBGMCU_APB1_GRP1_TIM3_STOP (*)
  1424. * @arg @ref LL_DBGMCU_APB1_GRP1_TIM4_STOP (*)
  1425. * @arg @ref LL_DBGMCU_APB1_GRP1_TIM5_STOP (*)
  1426. * @arg @ref LL_DBGMCU_APB1_GRP1_TIM6_STOP
  1427. * @arg @ref LL_DBGMCU_APB1_GRP1_TIM7_STOP (*)
  1428. * @arg @ref LL_DBGMCU_APB1_GRP1_TIM12_STOP (*)
  1429. * @arg @ref LL_DBGMCU_APB1_GRP1_TIM13_STOP (*)
  1430. * @arg @ref LL_DBGMCU_APB1_GRP1_TIM14_STOP (*)
  1431. * @arg @ref LL_DBGMCU_APB1_GRP1_TIM18_STOP (*)
  1432. * @arg @ref LL_DBGMCU_APB1_GRP1_RTC_STOP
  1433. * @arg @ref LL_DBGMCU_APB1_GRP1_WWDG_STOP
  1434. * @arg @ref LL_DBGMCU_APB1_GRP1_IWDG_STOP
  1435. * @arg @ref LL_DBGMCU_APB1_GRP1_I2C1_STOP
  1436. * @arg @ref LL_DBGMCU_APB1_GRP1_I2C2_STOP (*)
  1437. * @arg @ref LL_DBGMCU_APB1_GRP1_I2C3_STOP (*)
  1438. * @arg @ref LL_DBGMCU_APB1_GRP1_CAN_STOP (*)
  1439. *
  1440. * (*) value not defined in all devices.
  1441. * @retval None
  1442. */
  1443. __STATIC_INLINE void LL_DBGMCU_APB1_GRP1_UnFreezePeriph(uint32_t Periphs)
  1444. {
  1445. CLEAR_BIT(DBGMCU->APB1FZ, Periphs);
  1446. }
  1447. /**
  1448. * @brief Freeze APB2 peripherals
  1449. * @rmtoll APB2_FZ DBG_TIM1_STOP LL_DBGMCU_APB2_GRP1_FreezePeriph\n
  1450. * APB2_FZ DBG_TIM8_STOP LL_DBGMCU_APB2_GRP1_FreezePeriph\n
  1451. * APB2_FZ DBG_TIM15_STOP LL_DBGMCU_APB2_GRP1_FreezePeriph\n
  1452. * APB2_FZ DBG_TIM16_STOP LL_DBGMCU_APB2_GRP1_FreezePeriph\n
  1453. * APB2_FZ DBG_TIM17_STOP LL_DBGMCU_APB2_GRP1_FreezePeriph\n
  1454. * APB2_FZ DBG_TIM19_STOP LL_DBGMCU_APB2_GRP1_FreezePeriph\n
  1455. * APB2_FZ DBG_TIM20_STOP LL_DBGMCU_APB2_GRP1_FreezePeriph\n
  1456. * APB2_FZ DBG_HRTIM1_STOP LL_DBGMCU_APB2_GRP1_FreezePeriph
  1457. * @param Periphs This parameter can be a combination of the following values:
  1458. * @arg @ref LL_DBGMCU_APB2_GRP1_TIM1_STOP (*)
  1459. * @arg @ref LL_DBGMCU_APB2_GRP1_TIM8_STOP (*)
  1460. * @arg @ref LL_DBGMCU_APB2_GRP1_TIM15_STOP
  1461. * @arg @ref LL_DBGMCU_APB2_GRP1_TIM16_STOP
  1462. * @arg @ref LL_DBGMCU_APB2_GRP1_TIM17_STOP
  1463. * @arg @ref LL_DBGMCU_APB2_GRP1_TIM19_STOP (*)
  1464. * @arg @ref LL_DBGMCU_APB2_GRP1_TIM20_STOP (*)
  1465. * @arg @ref LL_DBGMCU_APB2_GRP1_HRTIM1_STOP (*)
  1466. *
  1467. * (*) value not defined in all devices.
  1468. * @retval None
  1469. */
  1470. __STATIC_INLINE void LL_DBGMCU_APB2_GRP1_FreezePeriph(uint32_t Periphs)
  1471. {
  1472. SET_BIT(DBGMCU->APB2FZ, Periphs);
  1473. }
  1474. /**
  1475. * @brief Unfreeze APB2 peripherals
  1476. * @rmtoll APB2_FZ DBG_TIM1_STOP LL_DBGMCU_APB2_GRP1_UnFreezePeriph\n
  1477. * APB2_FZ DBG_TIM8_STOP LL_DBGMCU_APB2_GRP1_UnFreezePeriph\n
  1478. * APB2_FZ DBG_TIM15_STOP LL_DBGMCU_APB2_GRP1_UnFreezePeriph\n
  1479. * APB2_FZ DBG_TIM16_STOP LL_DBGMCU_APB2_GRP1_UnFreezePeriph\n
  1480. * APB2_FZ DBG_TIM17_STOP LL_DBGMCU_APB2_GRP1_UnFreezePeriph\n
  1481. * APB2_FZ DBG_TIM19_STOP LL_DBGMCU_APB2_GRP1_UnFreezePeriph\n
  1482. * APB2_FZ DBG_TIM20_STOP LL_DBGMCU_APB2_GRP1_UnFreezePeriph\n
  1483. * APB2_FZ DBG_HRTIM1_STOP LL_DBGMCU_APB2_GRP1_UnFreezePeriph
  1484. * @param Periphs This parameter can be a combination of the following values:
  1485. * @arg @ref LL_DBGMCU_APB2_GRP1_TIM1_STOP (*)
  1486. * @arg @ref LL_DBGMCU_APB2_GRP1_TIM8_STOP (*)
  1487. * @arg @ref LL_DBGMCU_APB2_GRP1_TIM15_STOP
  1488. * @arg @ref LL_DBGMCU_APB2_GRP1_TIM16_STOP
  1489. * @arg @ref LL_DBGMCU_APB2_GRP1_TIM17_STOP
  1490. * @arg @ref LL_DBGMCU_APB2_GRP1_TIM19_STOP (*)
  1491. * @arg @ref LL_DBGMCU_APB2_GRP1_TIM20_STOP (*)
  1492. * @arg @ref LL_DBGMCU_APB2_GRP1_HRTIM1_STOP (*)
  1493. *
  1494. * (*) value not defined in all devices.
  1495. * @retval None
  1496. */
  1497. __STATIC_INLINE void LL_DBGMCU_APB2_GRP1_UnFreezePeriph(uint32_t Periphs)
  1498. {
  1499. CLEAR_BIT(DBGMCU->APB2FZ, Periphs);
  1500. }
  1501. /**
  1502. * @}
  1503. */
  1504. /** @defgroup SYSTEM_LL_EF_FLASH FLASH
  1505. * @{
  1506. */
  1507. /**
  1508. * @brief Set FLASH Latency
  1509. * @rmtoll FLASH_ACR LATENCY LL_FLASH_SetLatency
  1510. * @param Latency This parameter can be one of the following values:
  1511. * @arg @ref LL_FLASH_LATENCY_0
  1512. * @arg @ref LL_FLASH_LATENCY_1
  1513. * @arg @ref LL_FLASH_LATENCY_2
  1514. * @retval None
  1515. */
  1516. __STATIC_INLINE void LL_FLASH_SetLatency(uint32_t Latency)
  1517. {
  1518. MODIFY_REG(FLASH->ACR, FLASH_ACR_LATENCY, Latency);
  1519. }
  1520. /**
  1521. * @brief Get FLASH Latency
  1522. * @rmtoll FLASH_ACR LATENCY LL_FLASH_GetLatency
  1523. * @retval Returned value can be one of the following values:
  1524. * @arg @ref LL_FLASH_LATENCY_0
  1525. * @arg @ref LL_FLASH_LATENCY_1
  1526. * @arg @ref LL_FLASH_LATENCY_2
  1527. */
  1528. __STATIC_INLINE uint32_t LL_FLASH_GetLatency(void)
  1529. {
  1530. return (uint32_t)(READ_BIT(FLASH->ACR, FLASH_ACR_LATENCY));
  1531. }
  1532. /**
  1533. * @brief Enable Prefetch
  1534. * @rmtoll FLASH_ACR PRFTBE LL_FLASH_EnablePrefetch
  1535. * @retval None
  1536. */
  1537. __STATIC_INLINE void LL_FLASH_EnablePrefetch(void)
  1538. {
  1539. SET_BIT(FLASH->ACR, FLASH_ACR_PRFTBE );
  1540. }
  1541. /**
  1542. * @brief Disable Prefetch
  1543. * @rmtoll FLASH_ACR PRFTBE LL_FLASH_DisablePrefetch
  1544. * @retval None
  1545. */
  1546. __STATIC_INLINE void LL_FLASH_DisablePrefetch(void)
  1547. {
  1548. CLEAR_BIT(FLASH->ACR, FLASH_ACR_PRFTBE );
  1549. }
  1550. /**
  1551. * @brief Check if Prefetch buffer is enabled
  1552. * @rmtoll FLASH_ACR PRFTBS LL_FLASH_IsPrefetchEnabled
  1553. * @retval State of bit (1 or 0).
  1554. */
  1555. __STATIC_INLINE uint32_t LL_FLASH_IsPrefetchEnabled(void)
  1556. {
  1557. return (READ_BIT(FLASH->ACR, FLASH_ACR_PRFTBS) == (FLASH_ACR_PRFTBS));
  1558. }
  1559. #if defined(FLASH_ACR_HLFCYA)
  1560. /**
  1561. * @brief Enable Flash Half Cycle Access
  1562. * @rmtoll FLASH_ACR HLFCYA LL_FLASH_EnableHalfCycleAccess
  1563. * @retval None
  1564. */
  1565. __STATIC_INLINE void LL_FLASH_EnableHalfCycleAccess(void)
  1566. {
  1567. SET_BIT(FLASH->ACR, FLASH_ACR_HLFCYA);
  1568. }
  1569. /**
  1570. * @brief Disable Flash Half Cycle Access
  1571. * @rmtoll FLASH_ACR HLFCYA LL_FLASH_DisableHalfCycleAccess
  1572. * @retval None
  1573. */
  1574. __STATIC_INLINE void LL_FLASH_DisableHalfCycleAccess(void)
  1575. {
  1576. CLEAR_BIT(FLASH->ACR, FLASH_ACR_HLFCYA);
  1577. }
  1578. /**
  1579. * @brief Check if Flash Half Cycle Access is enabled or not
  1580. * @rmtoll FLASH_ACR HLFCYA LL_FLASH_IsHalfCycleAccessEnabled
  1581. * @retval State of bit (1 or 0).
  1582. */
  1583. __STATIC_INLINE uint32_t LL_FLASH_IsHalfCycleAccessEnabled(void)
  1584. {
  1585. return (READ_BIT(FLASH->ACR, FLASH_ACR_HLFCYA) == (FLASH_ACR_HLFCYA));
  1586. }
  1587. #endif /* FLASH_ACR_HLFCYA */
  1588. /**
  1589. * @}
  1590. */
  1591. /**
  1592. * @}
  1593. */
  1594. /**
  1595. * @}
  1596. */
  1597. #endif /* defined (FLASH) || defined (SYSCFG) || defined (DBGMCU) */
  1598. /**
  1599. * @}
  1600. */
  1601. #ifdef __cplusplus
  1602. }
  1603. #endif
  1604. #endif /* __STM32F3xx_LL_SYSTEM_H */