stm32f3xx_ll_system.h 86 KB

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