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

stm32l1xx_ll_system.h 92KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006
  1. /**
  2. ******************************************************************************
  3. * @file stm32l1xx_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. (+) Access to Routing Interfaces registers
  17. @endverbatim
  18. ******************************************************************************
  19. * @attention
  20. *
  21. * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
  22. * All rights reserved.</center></h2>
  23. *
  24. * This software component is licensed by ST under BSD 3-Clause license,
  25. * the "License"; You may not use this file except in compliance with the
  26. * License. You may obtain a copy of the License at:
  27. * opensource.org/licenses/BSD-3-Clause
  28. *
  29. ******************************************************************************
  30. */
  31. /* Define to prevent recursive inclusion -------------------------------------*/
  32. #ifndef __STM32L1xx_LL_SYSTEM_H
  33. #define __STM32L1xx_LL_SYSTEM_H
  34. #ifdef __cplusplus
  35. extern "C" {
  36. #endif
  37. /* Includes ------------------------------------------------------------------*/
  38. #include "stm32l1xx.h"
  39. /** @addtogroup STM32L1xx_LL_Driver
  40. * @{
  41. */
  42. #if defined (FLASH) || defined (SYSCFG) || defined (DBGMCU) || defined(RI)
  43. /** @defgroup SYSTEM_LL SYSTEM
  44. * @{
  45. */
  46. /* Private types -------------------------------------------------------------*/
  47. /* Private variables ---------------------------------------------------------*/
  48. /* Private constants ---------------------------------------------------------*/
  49. /** @defgroup SYSTEM_LL_Private_Constants SYSTEM Private Constants
  50. * @{
  51. */
  52. /**
  53. * @brief Power-down in Run mode Flash key
  54. */
  55. #define FLASH_PDKEY1 (0x04152637U) /*!< Flash power down key1 */
  56. #define FLASH_PDKEY2 (0xFAFBFCFDU) /*!< Flash power down key2: used with FLASH_PDKEY1
  57. to unlock the RUN_PD bit in FLASH_ACR */
  58. /**
  59. * @}
  60. */
  61. /* Private macros ------------------------------------------------------------*/
  62. /* Exported types ------------------------------------------------------------*/
  63. /* Exported constants --------------------------------------------------------*/
  64. /** @defgroup SYSTEM_LL_Exported_Constants SYSTEM Exported Constants
  65. * @{
  66. */
  67. /** @defgroup SYSTEM_LL_EC_REMAP SYSCFG REMAP
  68. * @{
  69. */
  70. #define LL_SYSCFG_REMAP_FLASH (0x00000000U) /*<! Main Flash memory mapped at 0x00000000 */
  71. #define LL_SYSCFG_REMAP_SYSTEMFLASH SYSCFG_MEMRMP_MEM_MODE_0 /*<! System Flash memory mapped at 0x00000000 */
  72. #define LL_SYSCFG_REMAP_SRAM (SYSCFG_MEMRMP_MEM_MODE_1 | SYSCFG_MEMRMP_MEM_MODE_0) /*<! Embedded SRAM mapped at 0x00000000 */
  73. #if defined(FSMC_R_BASE)
  74. #define LL_SYSCFG_REMAP_FMC SYSCFG_MEMRMP_MEM_MODE_1 /*<! FSMC Bank1 (NOR/PSRAM 1 and 2) mapped at 0x00000000 */
  75. #endif /* FSMC_R_BASE */
  76. /**
  77. * @}
  78. */
  79. /** @defgroup SYSTEM_LL_EC_BOOT SYSCFG BOOT MODE
  80. * @{
  81. */
  82. #define LL_SYSCFG_BOOTMODE_FLASH (0x00000000U) /*<! Main Flash memory boot mode */
  83. #define LL_SYSCFG_BOOTMODE_SYSTEMFLASH SYSCFG_MEMRMP_BOOT_MODE_0 /*<! System Flash memory boot mode */
  84. #if defined(FSMC_BANK1)
  85. #define LL_SYSCFG_BOOTMODE_FSMC SYSCFG_MEMRMP_BOOT_MODE_1 /*<! FSMC boot mode */
  86. #endif /* FSMC_BANK1 */
  87. #define LL_SYSCFG_BOOTMODE_SRAM SYSCFG_MEMRMP_BOOT_MODE /*<! Embedded SRAM boot mode */
  88. /**
  89. * @}
  90. */
  91. #if defined(LCD)
  92. /** @defgroup SYSTEM_LL_EC_LCDCAPA SYSCFG LCD capacitance connection
  93. * @{
  94. */
  95. #define LL_SYSCFG_LCDCAPA_PB2 SYSCFG_PMC_LCD_CAPA_0 /*<! controls the connection of VLCDrail2 on PB2/LCD_VCAP2 */
  96. #define LL_SYSCFG_LCDCAPA_PB12 SYSCFG_PMC_LCD_CAPA_1 /*<! controls the connection of VLCDrail1 on PB12/LCD_VCAP1 */
  97. #define LL_SYSCFG_LCDCAPA_PB0 SYSCFG_PMC_LCD_CAPA_2 /*<! controls the connection of VLCDrail3 on PB0/LCD_VCAP3 */
  98. #define LL_SYSCFG_LCDCAPA_PE11 SYSCFG_PMC_LCD_CAPA_3 /*<! controls the connection of VLCDrail1 on PE11/LCD_VCAP1 */
  99. #define LL_SYSCFG_LCDCAPA_PE12 SYSCFG_PMC_LCD_CAPA_4 /*<! controls the connection of VLCDrail3 on PE12/LCD_VCAP3 */
  100. /**
  101. * @}
  102. */
  103. #endif /* LCD */
  104. /** @defgroup SYSTEM_LL_EC_EXTI SYSCFG EXTI PORT
  105. * @{
  106. */
  107. #define LL_SYSCFG_EXTI_PORTA 0U /*!< EXTI PORT A */
  108. #define LL_SYSCFG_EXTI_PORTB 1U /*!< EXTI PORT B */
  109. #define LL_SYSCFG_EXTI_PORTC 2U /*!< EXTI PORT C */
  110. #define LL_SYSCFG_EXTI_PORTD 3U /*!< EXTI PORT D */
  111. #if defined(GPIOE)
  112. #define LL_SYSCFG_EXTI_PORTE 4U /*!< EXTI PORT E */
  113. #endif /* GPIOE */
  114. #if defined(GPIOF)
  115. #define LL_SYSCFG_EXTI_PORTF 6U /*!< EXTI PORT F */
  116. #endif /* GPIOF */
  117. #if defined(GPIOG)
  118. #define LL_SYSCFG_EXTI_PORTG 7U /*!< EXTI PORT G */
  119. #endif /* GPIOG */
  120. #define LL_SYSCFG_EXTI_PORTH 5U /*!< EXTI PORT H */
  121. /**
  122. * @}
  123. */
  124. /** @addtogroup SYSTEM_LL_EC_SYSCFG EXTI LINE
  125. * @{
  126. */
  127. #define LL_SYSCFG_EXTI_LINE0 (uint32_t)(0x000FU << 16U | 0U) /* EXTI_POSITION_0 | EXTICR[0] */
  128. #define LL_SYSCFG_EXTI_LINE1 (uint32_t)(0x00F0U << 16U | 0U) /* EXTI_POSITION_4 | EXTICR[0] */
  129. #define LL_SYSCFG_EXTI_LINE2 (uint32_t)(0x0F00U << 16U | 0U) /* EXTI_POSITION_8 | EXTICR[0] */
  130. #define LL_SYSCFG_EXTI_LINE3 (uint32_t)(0xF000U << 16U | 0U) /* EXTI_POSITION_12 | EXTICR[0] */
  131. #define LL_SYSCFG_EXTI_LINE4 (uint32_t)(0x000FU << 16U | 1U) /* EXTI_POSITION_0 | EXTICR[1] */
  132. #define LL_SYSCFG_EXTI_LINE5 (uint32_t)(0x00F0U << 16U | 1U) /* EXTI_POSITION_4 | EXTICR[1] */
  133. #define LL_SYSCFG_EXTI_LINE6 (uint32_t)(0x0F00U << 16U | 1U) /* EXTI_POSITION_8 | EXTICR[1] */
  134. #define LL_SYSCFG_EXTI_LINE7 (uint32_t)(0xF000U << 16U | 1U) /* EXTI_POSITION_12 | EXTICR[1] */
  135. #define LL_SYSCFG_EXTI_LINE8 (uint32_t)(0x000FU << 16U | 2U) /* EXTI_POSITION_0 | EXTICR[2] */
  136. #define LL_SYSCFG_EXTI_LINE9 (uint32_t)(0x00F0U << 16U | 2U) /* EXTI_POSITION_4 | EXTICR[2] */
  137. #define LL_SYSCFG_EXTI_LINE10 (uint32_t)(0x0F00U << 16U | 2U) /* EXTI_POSITION_8 | EXTICR[2] */
  138. #define LL_SYSCFG_EXTI_LINE11 (uint32_t)(0xF000U << 16U | 2U) /* EXTI_POSITION_12 | EXTICR[2] */
  139. #define LL_SYSCFG_EXTI_LINE12 (uint32_t)(0x000FU << 16U | 3U) /* EXTI_POSITION_0 | EXTICR[3] */
  140. #define LL_SYSCFG_EXTI_LINE13 (uint32_t)(0x00F0U << 16U | 3U) /* EXTI_POSITION_4 | EXTICR[3] */
  141. #define LL_SYSCFG_EXTI_LINE14 (uint32_t)(0x0F00U << 16U | 3U) /* EXTI_POSITION_8 | EXTICR[3] */
  142. #define LL_SYSCFG_EXTI_LINE15 (uint32_t)(0xF000U << 16U | 3U) /* EXTI_POSITION_12 | EXTICR[3] */
  143. /**
  144. * @}
  145. */
  146. /** @defgroup SYSTEM_LL_EC_TRACE DBGMCU TRACE Pin Assignment
  147. * @{
  148. */
  149. #define LL_DBGMCU_TRACE_NONE 0x00000000U /*!< TRACE pins not assigned (default state) */
  150. #define LL_DBGMCU_TRACE_ASYNCH DBGMCU_CR_TRACE_IOEN /*!< TRACE pin assignment for Asynchronous Mode */
  151. #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 */
  152. #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 */
  153. #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 */
  154. /**
  155. * @}
  156. */
  157. /** @defgroup SYSTEM_LL_EC_APB1_GRP1_STOP_IP DBGMCU APB1 GRP1 STOP IP
  158. * @{
  159. */
  160. #define LL_DBGMCU_APB1_GRP1_TIM2_STOP DBGMCU_APB1_FZ_DBG_TIM2_STOP /*!< TIM2 counter stopped when core is halted */
  161. #define LL_DBGMCU_APB1_GRP1_TIM3_STOP DBGMCU_APB1_FZ_DBG_TIM3_STOP /*!< TIM3 counter stopped when core is halted */
  162. #define LL_DBGMCU_APB1_GRP1_TIM4_STOP DBGMCU_APB1_FZ_DBG_TIM4_STOP /*!< TIM4 counter stopped when core is halted */
  163. #if defined (DBGMCU_APB1_FZ_DBG_TIM5_STOP)
  164. #define LL_DBGMCU_APB1_GRP1_TIM5_STOP DBGMCU_APB1_FZ_DBG_TIM5_STOP /*!< TIM5 counter stopped when core is halted */
  165. #endif /* DBGMCU_APB1_FZ_DBG_TIM5_STOP */
  166. #define LL_DBGMCU_APB1_GRP1_TIM6_STOP DBGMCU_APB1_FZ_DBG_TIM6_STOP /*!< TIM6 counter stopped when core is halted */
  167. #define LL_DBGMCU_APB1_GRP1_TIM7_STOP DBGMCU_APB1_FZ_DBG_TIM7_STOP /*!< TIM7 counter stopped when core is halted */
  168. #if defined (DBGMCU_APB1_FZ_DBG_RTC_STOP)
  169. #define LL_DBGMCU_APB1_GRP1_RTC_STOP DBGMCU_APB1_FZ_DBG_RTC_STOP /*!< RTC Counter stopped when Core is halted */
  170. #endif /* DBGMCU_APB1_FZ_DBG_RTC_STOP */
  171. #define LL_DBGMCU_APB1_GRP1_WWDG_STOP DBGMCU_APB1_FZ_DBG_WWDG_STOP /*!< Debug Window Watchdog stopped when Core is halted */
  172. #define LL_DBGMCU_APB1_GRP1_IWDG_STOP DBGMCU_APB1_FZ_DBG_IWDG_STOP /*!< Debug Independent Watchdog stopped when Core is halted */
  173. #define LL_DBGMCU_APB1_GRP1_I2C1_STOP DBGMCU_APB1_FZ_DBG_I2C1_SMBUS_TIMEOUT /*!< I2C1 SMBUS timeout mode stopped when Core is halted */
  174. #define LL_DBGMCU_APB1_GRP1_I2C2_STOP DBGMCU_APB1_FZ_DBG_I2C2_SMBUS_TIMEOUT /*!< I2C2 SMBUS timeout mode stopped when Core is halted */
  175. /**
  176. * @}
  177. */
  178. /** @defgroup SYSTEM_LL_EC_APB2_GRP1_STOP_IP DBGMCU APB2 GRP1 STOP IP
  179. * @{
  180. */
  181. #define LL_DBGMCU_APB2_GRP1_TIM9_STOP DBGMCU_APB2_FZ_DBG_TIM9_STOP /*!< TIM9 counter stopped when core is halted */
  182. #define LL_DBGMCU_APB2_GRP1_TIM10_STOP DBGMCU_APB2_FZ_DBG_TIM10_STOP /*!< TIM10 counter stopped when core is halted */
  183. #define LL_DBGMCU_APB2_GRP1_TIM11_STOP DBGMCU_APB2_FZ_DBG_TIM11_STOP /*!< TIM11 counter stopped when core is halted */
  184. /**
  185. * @}
  186. */
  187. /** @defgroup SYSTEM_LL_EC_TIM_SELECT RI TIM selection
  188. * @{
  189. */
  190. #define LL_RI_TIM_SELECT_NONE (0x00000000U) /*!< No timer selected */
  191. #define LL_RI_TIM_SELECT_TIM2 RI_ICR_TIM_0 /*!< Timer 2 selected */
  192. #define LL_RI_TIM_SELECT_TIM3 RI_ICR_TIM_1 /*!< Timer 3 selected */
  193. #define LL_RI_TIM_SELECT_TIM4 RI_ICR_TIM /*!< Timer 4 selected */
  194. /**
  195. * @}
  196. */
  197. /** @defgroup SYSTEM_LL_EC_INPUTCAPTURE RI Input Capture number
  198. * @{
  199. */
  200. #define LL_RI_INPUTCAPTURE_1 (RI_ICR_IC1 | RI_ICR_IC1OS) /*!< Input Capture 1 select output */
  201. #define LL_RI_INPUTCAPTURE_2 (RI_ICR_IC2 | RI_ICR_IC2OS) /*!< Input Capture 2 select output */
  202. #define LL_RI_INPUTCAPTURE_3 (RI_ICR_IC3 | RI_ICR_IC3OS) /*!< Input Capture 3 select output */
  203. #define LL_RI_INPUTCAPTURE_4 (RI_ICR_IC4 | RI_ICR_IC4OS) /*!< Input Capture 4 select output */
  204. /**
  205. * @}
  206. */
  207. /** @defgroup SYSTEM_LL_EC_INPUTCAPTUREROUTING RI Input Capture Routing
  208. * @{
  209. */
  210. /* TIMx_IC1 TIMx_IC2 TIMx_IC3 TIMx_IC4 */
  211. #define LL_RI_INPUTCAPTUREROUTING_0 (0x00000000U) /*!< PA0 PA1 PA2 PA3 */
  212. #define LL_RI_INPUTCAPTUREROUTING_1 (0x00000001U) /*!< PA4 PA5 PA6 PA7 */
  213. #define LL_RI_INPUTCAPTUREROUTING_2 (0x00000002U) /*!< PA8 PA9 PA10 PA11 */
  214. #define LL_RI_INPUTCAPTUREROUTING_3 (0x00000003U) /*!< PA12 PA13 PA14 PA15 */
  215. #define LL_RI_INPUTCAPTUREROUTING_4 (0x00000004U) /*!< PC0 PC1 PC2 PC3 */
  216. #define LL_RI_INPUTCAPTUREROUTING_5 (0x00000005U) /*!< PC4 PC5 PC6 PC7 */
  217. #define LL_RI_INPUTCAPTUREROUTING_6 (0x00000006U) /*!< PC8 PC9 PC10 PC11 */
  218. #define LL_RI_INPUTCAPTUREROUTING_7 (0x00000007U) /*!< PC12 PC13 PC14 PC15 */
  219. #define LL_RI_INPUTCAPTUREROUTING_8 (0x00000008U) /*!< PD0 PD1 PD2 PD3 */
  220. #define LL_RI_INPUTCAPTUREROUTING_9 (0x00000009U) /*!< PD4 PD5 PD6 PD7 */
  221. #define LL_RI_INPUTCAPTUREROUTING_10 (0x0000000AU) /*!< PD8 PD9 PD10 PD11 */
  222. #define LL_RI_INPUTCAPTUREROUTING_11 (0x0000000BU) /*!< PD12 PD13 PD14 PD15 */
  223. #if defined(GPIOE)
  224. #define LL_RI_INPUTCAPTUREROUTING_12 (0x0000000CU) /*!< PE0 PE1 PE2 PE3 */
  225. #define LL_RI_INPUTCAPTUREROUTING_13 (0x0000000DU) /*!< PE4 PE5 PE6 PE7 */
  226. #define LL_RI_INPUTCAPTUREROUTING_14 (0x0000000EU) /*!< PE8 PE9 PE10 PE11 */
  227. #define LL_RI_INPUTCAPTUREROUTING_15 (0x0000000FU) /*!< PE12 PE13 PE14 PE15 */
  228. #endif /* GPIOE */
  229. /**
  230. * @}
  231. */
  232. /** @defgroup SYSTEM_LL_EC_IOSWITCH_LINKED_ADC RI IO Switch linked to ADC
  233. * @{
  234. */
  235. #define LL_RI_IOSWITCH_CH0 RI_ASCR1_CH_0 /*!< CH[3:0] GR1[4:1]: I/O Analog switch control */
  236. #define LL_RI_IOSWITCH_CH1 RI_ASCR1_CH_1 /*!< CH[3:0] GR1[4:1]: I/O Analog switch control */
  237. #define LL_RI_IOSWITCH_CH2 RI_ASCR1_CH_2 /*!< CH[3:0] GR1[4:1]: I/O Analog switch control */
  238. #define LL_RI_IOSWITCH_CH3 RI_ASCR1_CH_3 /*!< CH[3:0] GR1[4:1]: I/O Analog switch control */
  239. #define LL_RI_IOSWITCH_CH4 RI_ASCR1_CH_4 /*!< CH4: Analog switch control */
  240. #define LL_RI_IOSWITCH_CH5 RI_ASCR1_CH_5 /*!< CH5: Comparator 1 analog switch*/
  241. #define LL_RI_IOSWITCH_CH6 RI_ASCR1_CH_6 /*!< CH[7:6] GR2[2:1]: I/O Analog switch control */
  242. #define LL_RI_IOSWITCH_CH7 RI_ASCR1_CH_7 /*!< CH[7:6] GR2[2:1]: I/O Analog switch control */
  243. #define LL_RI_IOSWITCH_CH8 RI_ASCR1_CH_8 /*!< CH[9:8] GR3[2:1]: I/O Analog switch control */
  244. #define LL_RI_IOSWITCH_CH9 RI_ASCR1_CH_9 /*!< CH[9:8] GR3[2:1]: I/O Analog switch control */
  245. #define LL_RI_IOSWITCH_CH10 RI_ASCR1_CH_10 /*!< CH[13:10] GR8[4:1]: I/O Analog switch control */
  246. #define LL_RI_IOSWITCH_CH11 RI_ASCR1_CH_11 /*!< CH[13:10] GR8[4:1]: I/O Analog switch control */
  247. #define LL_RI_IOSWITCH_CH12 RI_ASCR1_CH_12 /*!< CH[13:10] GR8[4:1]: I/O Analog switch control */
  248. #define LL_RI_IOSWITCH_CH13 RI_ASCR1_CH_13 /*!< CH[13:10] GR8[4:1]: I/O Analog switch control */
  249. #define LL_RI_IOSWITCH_CH14 RI_ASCR1_CH_14 /*!< CH[15:14] GR9[2:1]: I/O Analog switch control */
  250. #define LL_RI_IOSWITCH_CH15 RI_ASCR1_CH_15 /*!< CH[15:14] GR9[2:1]: I/O Analog switch control */
  251. #define LL_RI_IOSWITCH_CH18 RI_ASCR1_CH_18 /*!< CH[21:18]/GR7[4:1]: I/O Analog switch control */
  252. #define LL_RI_IOSWITCH_CH19 RI_ASCR1_CH_19 /*!< CH[21:18]/GR7[4:1]: I/O Analog switch control */
  253. #define LL_RI_IOSWITCH_CH20 RI_ASCR1_CH_20 /*!< CH[21:18]/GR7[4:1]: I/O Analog switch control */
  254. #define LL_RI_IOSWITCH_CH21 RI_ASCR1_CH_21 /*!< CH[21:18]/GR7[4:1]: I/O Analog switch control */
  255. #define LL_RI_IOSWITCH_CH22 RI_ASCR1_CH_22 /*!< Analog I/O switch control of channels CH22 */
  256. #define LL_RI_IOSWITCH_CH23 RI_ASCR1_CH_23 /*!< Analog I/O switch control of channels CH23 */
  257. #define LL_RI_IOSWITCH_CH24 RI_ASCR1_CH_24 /*!< Analog I/O switch control of channels CH24 */
  258. #define LL_RI_IOSWITCH_CH25 RI_ASCR1_CH_25 /*!< Analog I/O switch control of channels CH25 */
  259. #define LL_RI_IOSWITCH_VCOMP RI_ASCR1_VCOMP /*!< VCOMP (ADC channel 26) is an internal switch
  260. used to connect selected channel to COMP1 non inverting input */
  261. #if defined(RI_ASCR1_CH_27)
  262. #define LL_RI_IOSWITCH_CH27 RI_ASCR1_CH_27 /*!< CH[30:27]/GR11[4:1]: I/O Analog switch control */
  263. #define LL_RI_IOSWITCH_CH28 RI_ASCR1_CH_28 /*!< CH[30:27]/GR11[4:1]: I/O Analog switch control */
  264. #define LL_RI_IOSWITCH_CH29 RI_ASCR1_CH_29 /*!< CH[30:27]/GR11[4:1]: I/O Analog switch control */
  265. #define LL_RI_IOSWITCH_CH30 RI_ASCR1_CH_30 /*!< CH[30:27]/GR11[4:1]: I/O Analog switch control */
  266. #define LL_RI_IOSWITCH_CH31 RI_ASCR1_CH_31 /*!< CH31/GR11-5 I/O Analog switch control */
  267. #endif /* RI_ASCR1_CH_27 */
  268. /**
  269. * @}
  270. */
  271. /** @defgroup SYSTEM_LL_EC_IOSWITCH_NOT_LINKED_ADC RI IO Switch not linked to ADC
  272. * @{
  273. */
  274. #define LL_RI_IOSWITCH_GR10_1 RI_ASCR2_GR10_1 /*!< GR10-1 I/O analog switch control */
  275. #define LL_RI_IOSWITCH_GR10_2 RI_ASCR2_GR10_2 /*!< GR10-2 I/O analog switch control */
  276. #define LL_RI_IOSWITCH_GR10_3 RI_ASCR2_GR10_3 /*!< GR10-3 I/O analog switch control */
  277. #define LL_RI_IOSWITCH_GR10_4 RI_ASCR2_GR10_4 /*!< GR10-4 I/O analog switch control */
  278. #define LL_RI_IOSWITCH_GR6_1 RI_ASCR2_GR6_1 /*!< GR6-1 I/O analog switch control */
  279. #define LL_RI_IOSWITCH_GR6_2 RI_ASCR2_GR6_2 /*!< GR6-2 I/O analog switch control */
  280. #define LL_RI_IOSWITCH_GR5_1 RI_ASCR2_GR5_1 /*!< GR5-1 I/O analog switch control */
  281. #define LL_RI_IOSWITCH_GR5_2 RI_ASCR2_GR5_2 /*!< GR5-2 I/O analog switch control */
  282. #define LL_RI_IOSWITCH_GR5_3 RI_ASCR2_GR5_3 /*!< GR5-3 I/O analog switch control */
  283. #define LL_RI_IOSWITCH_GR4_1 RI_ASCR2_GR4_1 /*!< GR4-1 I/O analog switch control */
  284. #define LL_RI_IOSWITCH_GR4_2 RI_ASCR2_GR4_2 /*!< GR4-2 I/O analog switch control */
  285. #define LL_RI_IOSWITCH_GR4_3 RI_ASCR2_GR4_3 /*!< GR4-3 I/O analog switch control */
  286. #if defined(RI_ASCR2_CH0b)
  287. #define LL_RI_IOSWITCH_CH0b RI_ASCR2_CH0b /*!< CH0b-GR03-3 I/O analog switch control */
  288. #if defined(RI_ASCR2_CH1b)
  289. #define LL_RI_IOSWITCH_CH1b RI_ASCR2_CH1b /*!< CH1b-GR03-4 I/O analog switch control */
  290. #define LL_RI_IOSWITCH_CH2b RI_ASCR2_CH2b /*!< CH2b-GR03-5 I/O analog switch control */
  291. #define LL_RI_IOSWITCH_CH3b RI_ASCR2_CH3b /*!< CH3b-GR09-3 I/O analog switch control */
  292. #define LL_RI_IOSWITCH_CH6b RI_ASCR2_CH6b /*!< CH6b-GR09-4 I/O analog switch control */
  293. #define LL_RI_IOSWITCH_CH7b RI_ASCR2_CH7b /*!< CH7b-GR02-3 I/O analog switch control */
  294. #define LL_RI_IOSWITCH_CH8b RI_ASCR2_CH8b /*!< CH8b-GR02-4 I/O analog switch control */
  295. #define LL_RI_IOSWITCH_CH9b RI_ASCR2_CH9b /*!< CH9b-GR02-5 I/O analog switch control */
  296. #define LL_RI_IOSWITCH_CH10b RI_ASCR2_CH10b /*!< CH10b-GR07-5 I/O analog switch control */
  297. #define LL_RI_IOSWITCH_CH11b RI_ASCR2_CH11b /*!< CH11b-GR07-6 I/O analog switch control */
  298. #define LL_RI_IOSWITCH_CH12b RI_ASCR2_CH12b /*!< CH12b-GR07-7 I/O analog switch control */
  299. #endif /* RI_ASCR2_CH1b */
  300. #define LL_RI_IOSWITCH_GR6_3 RI_ASCR2_GR6_3 /*!< GR6-3 I/O analog switch control */
  301. #define LL_RI_IOSWITCH_GR6_4 RI_ASCR2_GR6_4 /*!< GR6-4 I/O analog switch control */
  302. #endif /* RI_ASCR2_CH0b */
  303. /**
  304. * @}
  305. */
  306. /** @defgroup SYSTEM_LL_EC_HSYTERESIS_PORT RI HSYTERESIS PORT
  307. * @{
  308. */
  309. #define LL_RI_HSYTERESIS_PORT_A 0U /*!< HYSTERESIS PORT A */
  310. #define LL_RI_HSYTERESIS_PORT_B 1U /*!< HYSTERESIS PORT B */
  311. #define LL_RI_HSYTERESIS_PORT_C 2U /*!< HYSTERESIS PORT C */
  312. #define LL_RI_HSYTERESIS_PORT_D 3U /*!< HYSTERESIS PORT D */
  313. #if defined(GPIOE)
  314. #define LL_RI_HSYTERESIS_PORT_E 4U /*!< HYSTERESIS PORT E */
  315. #endif /* GPIOE */
  316. #if defined(GPIOF)
  317. #define LL_RI_HSYTERESIS_PORT_F 5U /*!< HYSTERESIS PORT F */
  318. #endif /* GPIOF */
  319. #if defined(GPIOG)
  320. #define LL_RI_HSYTERESIS_PORT_G 6U /*!< HYSTERESIS PORT G */
  321. #endif /* GPIOG */
  322. /**
  323. * @}
  324. */
  325. /** @defgroup SYSTEM_LL_EC_PIN RI PIN
  326. * @{
  327. */
  328. #define LL_RI_PIN_0 ((uint16_t)0x0001U) /*!< Pin 0 selected */
  329. #define LL_RI_PIN_1 ((uint16_t)0x0002U) /*!< Pin 1 selected */
  330. #define LL_RI_PIN_2 ((uint16_t)0x0004U) /*!< Pin 2 selected */
  331. #define LL_RI_PIN_3 ((uint16_t)0x0008U) /*!< Pin 3 selected */
  332. #define LL_RI_PIN_4 ((uint16_t)0x0010U) /*!< Pin 4 selected */
  333. #define LL_RI_PIN_5 ((uint16_t)0x0020U) /*!< Pin 5 selected */
  334. #define LL_RI_PIN_6 ((uint16_t)0x0040U) /*!< Pin 6 selected */
  335. #define LL_RI_PIN_7 ((uint16_t)0x0080U) /*!< Pin 7 selected */
  336. #define LL_RI_PIN_8 ((uint16_t)0x0100U) /*!< Pin 8 selected */
  337. #define LL_RI_PIN_9 ((uint16_t)0x0200U) /*!< Pin 9 selected */
  338. #define LL_RI_PIN_10 ((uint16_t)0x0400U) /*!< Pin 10 selected */
  339. #define LL_RI_PIN_11 ((uint16_t)0x0800U) /*!< Pin 11 selected */
  340. #define LL_RI_PIN_12 ((uint16_t)0x1000U) /*!< Pin 12 selected */
  341. #define LL_RI_PIN_13 ((uint16_t)0x2000U) /*!< Pin 13 selected */
  342. #define LL_RI_PIN_14 ((uint16_t)0x4000U) /*!< Pin 14 selected */
  343. #define LL_RI_PIN_15 ((uint16_t)0x8000U) /*!< Pin 15 selected */
  344. #define LL_RI_PIN_ALL ((uint16_t)0xFFFFU) /*!< All pins selected */
  345. /**
  346. * @}
  347. */
  348. #if defined(RI_ASMR1_PA)
  349. /** @defgroup SYSTEM_LL_EC_PORT RI PORT
  350. * @{
  351. */
  352. #define LL_RI_PORT_A 0U /*!< PORT A */
  353. #define LL_RI_PORT_B 1U /*!< PORT B */
  354. #define LL_RI_PORT_C 2U /*!< PORT C */
  355. #if defined(GPIOF)
  356. #define LL_RI_PORT_F 3U /*!< PORT F */
  357. #endif /* GPIOF */
  358. #if defined(GPIOG)
  359. #define LL_RI_PORT_G 4U /*!< PORT G */
  360. #endif /* GPIOG */
  361. /**
  362. * @}
  363. */
  364. #endif /* RI_ASMR1_PA */
  365. /** @defgroup SYSTEM_LL_EC_LATENCY FLASH LATENCY
  366. * @{
  367. */
  368. #define LL_FLASH_LATENCY_0 0x00000000U /*!< FLASH Zero Latency cycle */
  369. #define LL_FLASH_LATENCY_1 FLASH_ACR_LATENCY /*!< FLASH One Latency cycle */
  370. /**
  371. * @}
  372. */
  373. /**
  374. * @}
  375. */
  376. /* Exported macro ------------------------------------------------------------*/
  377. /* Exported functions --------------------------------------------------------*/
  378. /** @defgroup SYSTEM_LL_Exported_Functions SYSTEM Exported Functions
  379. * @{
  380. */
  381. /** @defgroup SYSTEM_LL_EF_SYSCFG SYSCFG
  382. * @{
  383. */
  384. /**
  385. * @brief Set memory mapping at address 0x00000000
  386. * @rmtoll SYSCFG_MEMRMP MEM_MODE LL_SYSCFG_SetRemapMemory
  387. * @param Memory This parameter can be one of the following values:
  388. * @arg @ref LL_SYSCFG_REMAP_FLASH
  389. * @arg @ref LL_SYSCFG_REMAP_SYSTEMFLASH
  390. * @arg @ref LL_SYSCFG_REMAP_SRAM
  391. * @arg @ref LL_SYSCFG_REMAP_FMC (*)
  392. *
  393. * (*) value not defined in all devices
  394. * @retval None
  395. */
  396. __STATIC_INLINE void LL_SYSCFG_SetRemapMemory(uint32_t Memory)
  397. {
  398. MODIFY_REG(SYSCFG->MEMRMP, SYSCFG_MEMRMP_MEM_MODE, Memory);
  399. }
  400. /**
  401. * @brief Get memory mapping at address 0x00000000
  402. * @rmtoll SYSCFG_MEMRMP MEM_MODE LL_SYSCFG_GetRemapMemory
  403. * @retval Returned value can be one of the following values:
  404. * @arg @ref LL_SYSCFG_REMAP_FLASH
  405. * @arg @ref LL_SYSCFG_REMAP_SYSTEMFLASH
  406. * @arg @ref LL_SYSCFG_REMAP_SRAM
  407. * @arg @ref LL_SYSCFG_REMAP_FMC (*)
  408. *
  409. * (*) value not defined in all devices.
  410. */
  411. __STATIC_INLINE uint32_t LL_SYSCFG_GetRemapMemory(void)
  412. {
  413. return (uint32_t)(READ_BIT(SYSCFG->MEMRMP, SYSCFG_MEMRMP_MEM_MODE));
  414. }
  415. /**
  416. * @brief Return the boot mode as configured by user.
  417. * @rmtoll SYSCFG_MEMRMP BOOT_MODE LL_SYSCFG_GetBootMode
  418. * @retval Returned value can be one of the following values:
  419. * @arg @ref LL_SYSCFG_BOOTMODE_FLASH
  420. * @arg @ref LL_SYSCFG_BOOTMODE_SYSTEMFLASH
  421. * @arg @ref LL_SYSCFG_BOOTMODE_FSMC (*)
  422. * @arg @ref LL_SYSCFG_BOOTMODE_SRAM
  423. *
  424. * (*) value not defined in all devices.
  425. */
  426. __STATIC_INLINE uint32_t LL_SYSCFG_GetBootMode(void)
  427. {
  428. return (uint32_t)(READ_BIT(SYSCFG->MEMRMP, SYSCFG_MEMRMP_BOOT_MODE));
  429. }
  430. /**
  431. * @brief Enable internal pull-up on USB DP line.
  432. * @rmtoll SYSCFG_PMC USB_PU LL_SYSCFG_EnableUSBPullUp
  433. * @retval None
  434. */
  435. __STATIC_INLINE void LL_SYSCFG_EnableUSBPullUp(void)
  436. {
  437. SET_BIT(SYSCFG->PMC, SYSCFG_PMC_USB_PU);
  438. }
  439. /**
  440. * @brief Disable internal pull-up on USB DP line.
  441. * @rmtoll SYSCFG_PMC USB_PU LL_SYSCFG_DisableUSBPullUp
  442. * @retval None
  443. */
  444. __STATIC_INLINE void LL_SYSCFG_DisableUSBPullUp(void)
  445. {
  446. CLEAR_BIT(SYSCFG->PMC, SYSCFG_PMC_USB_PU);
  447. }
  448. #if defined(LCD)
  449. /**
  450. * @brief Enable decoupling capacitance connection.
  451. * @rmtoll SYSCFG_PMC LCD_CAPA LL_SYSCFG_EnableLCDCapacitanceConnection
  452. * @param Pin This parameter can be a combination of the following values:
  453. * @arg @ref LL_SYSCFG_LCDCAPA_PB2
  454. * @arg @ref LL_SYSCFG_LCDCAPA_PB12
  455. * @arg @ref LL_SYSCFG_LCDCAPA_PB0
  456. * @arg @ref LL_SYSCFG_LCDCAPA_PE11
  457. * @arg @ref LL_SYSCFG_LCDCAPA_PE12
  458. * @retval None
  459. */
  460. __STATIC_INLINE void LL_SYSCFG_EnableLCDCapacitanceConnection(uint32_t Pin)
  461. {
  462. SET_BIT(SYSCFG->PMC, Pin);
  463. }
  464. /**
  465. * @brief DIsable decoupling capacitance connection.
  466. * @rmtoll SYSCFG_PMC LCD_CAPA LL_SYSCFG_DisableLCDCapacitanceConnection
  467. * @param Pin This parameter can be a combination of the following values:
  468. * @arg @ref LL_SYSCFG_LCDCAPA_PB2
  469. * @arg @ref LL_SYSCFG_LCDCAPA_PB12
  470. * @arg @ref LL_SYSCFG_LCDCAPA_PB0
  471. * @arg @ref LL_SYSCFG_LCDCAPA_PE11
  472. * @arg @ref LL_SYSCFG_LCDCAPA_PE12
  473. * @retval None
  474. */
  475. __STATIC_INLINE void LL_SYSCFG_DisableLCDCapacitanceConnection(uint32_t Pin)
  476. {
  477. CLEAR_BIT(SYSCFG->PMC, Pin);
  478. }
  479. #endif /* LCD */
  480. /**
  481. * @brief Configure source input for the EXTI external interrupt.
  482. * @rmtoll SYSCFG_EXTICR1 EXTI0 LL_SYSCFG_SetEXTISource\n
  483. * SYSCFG_EXTICR1 EXTI1 LL_SYSCFG_SetEXTISource\n
  484. * SYSCFG_EXTICR1 EXTI2 LL_SYSCFG_SetEXTISource\n
  485. * SYSCFG_EXTICR1 EXTI3 LL_SYSCFG_SetEXTISource\n
  486. * SYSCFG_EXTICR1 EXTI4 LL_SYSCFG_SetEXTISource\n
  487. * SYSCFG_EXTICR1 EXTI5 LL_SYSCFG_SetEXTISource\n
  488. * SYSCFG_EXTICR1 EXTI6 LL_SYSCFG_SetEXTISource\n
  489. * SYSCFG_EXTICR1 EXTI7 LL_SYSCFG_SetEXTISource\n
  490. * SYSCFG_EXTICR1 EXTI8 LL_SYSCFG_SetEXTISource\n
  491. * SYSCFG_EXTICR1 EXTI9 LL_SYSCFG_SetEXTISource\n
  492. * SYSCFG_EXTICR1 EXTI10 LL_SYSCFG_SetEXTISource\n
  493. * SYSCFG_EXTICR1 EXTI11 LL_SYSCFG_SetEXTISource\n
  494. * SYSCFG_EXTICR1 EXTI12 LL_SYSCFG_SetEXTISource\n
  495. * SYSCFG_EXTICR1 EXTI13 LL_SYSCFG_SetEXTISource\n
  496. * SYSCFG_EXTICR1 EXTI14 LL_SYSCFG_SetEXTISource\n
  497. * SYSCFG_EXTICR1 EXTI15 LL_SYSCFG_SetEXTISource\n
  498. * SYSCFG_EXTICR2 EXTI0 LL_SYSCFG_SetEXTISource\n
  499. * SYSCFG_EXTICR2 EXTI1 LL_SYSCFG_SetEXTISource\n
  500. * SYSCFG_EXTICR2 EXTI2 LL_SYSCFG_SetEXTISource\n
  501. * SYSCFG_EXTICR2 EXTI3 LL_SYSCFG_SetEXTISource\n
  502. * SYSCFG_EXTICR2 EXTI4 LL_SYSCFG_SetEXTISource\n
  503. * SYSCFG_EXTICR2 EXTI5 LL_SYSCFG_SetEXTISource\n
  504. * SYSCFG_EXTICR2 EXTI6 LL_SYSCFG_SetEXTISource\n
  505. * SYSCFG_EXTICR2 EXTI7 LL_SYSCFG_SetEXTISource\n
  506. * SYSCFG_EXTICR2 EXTI8 LL_SYSCFG_SetEXTISource\n
  507. * SYSCFG_EXTICR2 EXTI9 LL_SYSCFG_SetEXTISource\n
  508. * SYSCFG_EXTICR2 EXTI10 LL_SYSCFG_SetEXTISource\n
  509. * SYSCFG_EXTICR2 EXTI11 LL_SYSCFG_SetEXTISource\n
  510. * SYSCFG_EXTICR2 EXTI12 LL_SYSCFG_SetEXTISource\n
  511. * SYSCFG_EXTICR2 EXTI13 LL_SYSCFG_SetEXTISource\n
  512. * SYSCFG_EXTICR2 EXTI14 LL_SYSCFG_SetEXTISource\n
  513. * SYSCFG_EXTICR2 EXTI15 LL_SYSCFG_SetEXTISource\n
  514. * SYSCFG_EXTICR3 EXTI0 LL_SYSCFG_SetEXTISource\n
  515. * SYSCFG_EXTICR3 EXTI1 LL_SYSCFG_SetEXTISource\n
  516. * SYSCFG_EXTICR3 EXTI2 LL_SYSCFG_SetEXTISource\n
  517. * SYSCFG_EXTICR3 EXTI3 LL_SYSCFG_SetEXTISource\n
  518. * SYSCFG_EXTICR3 EXTI4 LL_SYSCFG_SetEXTISource\n
  519. * SYSCFG_EXTICR3 EXTI5 LL_SYSCFG_SetEXTISource\n
  520. * SYSCFG_EXTICR3 EXTI6 LL_SYSCFG_SetEXTISource\n
  521. * SYSCFG_EXTICR3 EXTI7 LL_SYSCFG_SetEXTISource\n
  522. * SYSCFG_EXTICR3 EXTI8 LL_SYSCFG_SetEXTISource\n
  523. * SYSCFG_EXTICR3 EXTI9 LL_SYSCFG_SetEXTISource\n
  524. * SYSCFG_EXTICR3 EXTI10 LL_SYSCFG_SetEXTISource\n
  525. * SYSCFG_EXTICR3 EXTI11 LL_SYSCFG_SetEXTISource\n
  526. * SYSCFG_EXTICR3 EXTI12 LL_SYSCFG_SetEXTISource\n
  527. * SYSCFG_EXTICR3 EXTI13 LL_SYSCFG_SetEXTISource\n
  528. * SYSCFG_EXTICR3 EXTI14 LL_SYSCFG_SetEXTISource\n
  529. * SYSCFG_EXTICR3 EXTI15 LL_SYSCFG_SetEXTISource\n
  530. * SYSCFG_EXTICR4 EXTI0 LL_SYSCFG_SetEXTISource\n
  531. * SYSCFG_EXTICR4 EXTI1 LL_SYSCFG_SetEXTISource\n
  532. * SYSCFG_EXTICR4 EXTI2 LL_SYSCFG_SetEXTISource\n
  533. * SYSCFG_EXTICR4 EXTI3 LL_SYSCFG_SetEXTISource\n
  534. * SYSCFG_EXTICR4 EXTI4 LL_SYSCFG_SetEXTISource\n
  535. * SYSCFG_EXTICR4 EXTI5 LL_SYSCFG_SetEXTISource\n
  536. * SYSCFG_EXTICR4 EXTI6 LL_SYSCFG_SetEXTISource\n
  537. * SYSCFG_EXTICR4 EXTI7 LL_SYSCFG_SetEXTISource\n
  538. * SYSCFG_EXTICR4 EXTI8 LL_SYSCFG_SetEXTISource\n
  539. * SYSCFG_EXTICR4 EXTI9 LL_SYSCFG_SetEXTISource\n
  540. * SYSCFG_EXTICR4 EXTI10 LL_SYSCFG_SetEXTISource\n
  541. * SYSCFG_EXTICR4 EXTI11 LL_SYSCFG_SetEXTISource\n
  542. * SYSCFG_EXTICR4 EXTI12 LL_SYSCFG_SetEXTISource\n
  543. * SYSCFG_EXTICR4 EXTI13 LL_SYSCFG_SetEXTISource\n
  544. * SYSCFG_EXTICR4 EXTI14 LL_SYSCFG_SetEXTISource\n
  545. * SYSCFG_EXTICR4 EXTI15 LL_SYSCFG_SetEXTISource
  546. * @param Port This parameter can be one of the following values:
  547. * @arg @ref LL_SYSCFG_EXTI_PORTA
  548. * @arg @ref LL_SYSCFG_EXTI_PORTB
  549. * @arg @ref LL_SYSCFG_EXTI_PORTC
  550. * @arg @ref LL_SYSCFG_EXTI_PORTD
  551. * @arg @ref LL_SYSCFG_EXTI_PORTE (*)
  552. * @arg @ref LL_SYSCFG_EXTI_PORTF (*)
  553. * @arg @ref LL_SYSCFG_EXTI_PORTG (*)
  554. * @arg @ref LL_SYSCFG_EXTI_PORTH
  555. *
  556. * (*) value not defined in all devices.
  557. * @param Line This parameter can be one of the following values:
  558. * @arg @ref LL_SYSCFG_EXTI_LINE0
  559. * @arg @ref LL_SYSCFG_EXTI_LINE1
  560. * @arg @ref LL_SYSCFG_EXTI_LINE2
  561. * @arg @ref LL_SYSCFG_EXTI_LINE3
  562. * @arg @ref LL_SYSCFG_EXTI_LINE4
  563. * @arg @ref LL_SYSCFG_EXTI_LINE5
  564. * @arg @ref LL_SYSCFG_EXTI_LINE6
  565. * @arg @ref LL_SYSCFG_EXTI_LINE7
  566. * @arg @ref LL_SYSCFG_EXTI_LINE8
  567. * @arg @ref LL_SYSCFG_EXTI_LINE9
  568. * @arg @ref LL_SYSCFG_EXTI_LINE10
  569. * @arg @ref LL_SYSCFG_EXTI_LINE11
  570. * @arg @ref LL_SYSCFG_EXTI_LINE12
  571. * @arg @ref LL_SYSCFG_EXTI_LINE13
  572. * @arg @ref LL_SYSCFG_EXTI_LINE14
  573. * @arg @ref LL_SYSCFG_EXTI_LINE15
  574. * @retval None
  575. */
  576. __STATIC_INLINE void LL_SYSCFG_SetEXTISource(uint32_t Port, uint32_t Line)
  577. {
  578. MODIFY_REG(SYSCFG->EXTICR[Line & 0x3U], (Line >> 16), Port << POSITION_VAL((Line >> 16)));
  579. }
  580. /**
  581. * @brief Get the configured defined for specific EXTI Line
  582. * @rmtoll SYSCFG_EXTICR1 EXTI0 LL_SYSCFG_GetEXTISource\n
  583. * SYSCFG_EXTICR1 EXTI1 LL_SYSCFG_GetEXTISource\n
  584. * SYSCFG_EXTICR1 EXTI2 LL_SYSCFG_GetEXTISource\n
  585. * SYSCFG_EXTICR1 EXTI3 LL_SYSCFG_GetEXTISource\n
  586. * SYSCFG_EXTICR1 EXTI4 LL_SYSCFG_GetEXTISource\n
  587. * SYSCFG_EXTICR1 EXTI5 LL_SYSCFG_GetEXTISource\n
  588. * SYSCFG_EXTICR1 EXTI6 LL_SYSCFG_GetEXTISource\n
  589. * SYSCFG_EXTICR1 EXTI7 LL_SYSCFG_GetEXTISource\n
  590. * SYSCFG_EXTICR1 EXTI8 LL_SYSCFG_GetEXTISource\n
  591. * SYSCFG_EXTICR1 EXTI9 LL_SYSCFG_GetEXTISource\n
  592. * SYSCFG_EXTICR1 EXTI10 LL_SYSCFG_GetEXTISource\n
  593. * SYSCFG_EXTICR1 EXTI11 LL_SYSCFG_GetEXTISource\n
  594. * SYSCFG_EXTICR1 EXTI12 LL_SYSCFG_GetEXTISource\n
  595. * SYSCFG_EXTICR1 EXTI13 LL_SYSCFG_GetEXTISource\n
  596. * SYSCFG_EXTICR1 EXTI14 LL_SYSCFG_GetEXTISource\n
  597. * SYSCFG_EXTICR1 EXTI15 LL_SYSCFG_GetEXTISource\n
  598. * SYSCFG_EXTICR2 EXTI0 LL_SYSCFG_GetEXTISource\n
  599. * SYSCFG_EXTICR2 EXTI1 LL_SYSCFG_GetEXTISource\n
  600. * SYSCFG_EXTICR2 EXTI2 LL_SYSCFG_GetEXTISource\n
  601. * SYSCFG_EXTICR2 EXTI3 LL_SYSCFG_GetEXTISource\n
  602. * SYSCFG_EXTICR2 EXTI4 LL_SYSCFG_GetEXTISource\n
  603. * SYSCFG_EXTICR2 EXTI5 LL_SYSCFG_GetEXTISource\n
  604. * SYSCFG_EXTICR2 EXTI6 LL_SYSCFG_GetEXTISource\n
  605. * SYSCFG_EXTICR2 EXTI7 LL_SYSCFG_GetEXTISource\n
  606. * SYSCFG_EXTICR2 EXTI8 LL_SYSCFG_GetEXTISource\n
  607. * SYSCFG_EXTICR2 EXTI9 LL_SYSCFG_GetEXTISource\n
  608. * SYSCFG_EXTICR2 EXTI10 LL_SYSCFG_GetEXTISource\n
  609. * SYSCFG_EXTICR2 EXTI11 LL_SYSCFG_GetEXTISource\n
  610. * SYSCFG_EXTICR2 EXTI12 LL_SYSCFG_GetEXTISource\n
  611. * SYSCFG_EXTICR2 EXTI13 LL_SYSCFG_GetEXTISource\n
  612. * SYSCFG_EXTICR2 EXTI14 LL_SYSCFG_GetEXTISource\n
  613. * SYSCFG_EXTICR2 EXTI15 LL_SYSCFG_GetEXTISource\n
  614. * SYSCFG_EXTICR3 EXTI0 LL_SYSCFG_GetEXTISource\n
  615. * SYSCFG_EXTICR3 EXTI1 LL_SYSCFG_GetEXTISource\n
  616. * SYSCFG_EXTICR3 EXTI2 LL_SYSCFG_GetEXTISource\n
  617. * SYSCFG_EXTICR3 EXTI3 LL_SYSCFG_GetEXTISource\n
  618. * SYSCFG_EXTICR3 EXTI4 LL_SYSCFG_GetEXTISource\n
  619. * SYSCFG_EXTICR3 EXTI5 LL_SYSCFG_GetEXTISource\n
  620. * SYSCFG_EXTICR3 EXTI6 LL_SYSCFG_GetEXTISource\n
  621. * SYSCFG_EXTICR3 EXTI7 LL_SYSCFG_GetEXTISource\n
  622. * SYSCFG_EXTICR3 EXTI8 LL_SYSCFG_GetEXTISource\n
  623. * SYSCFG_EXTICR3 EXTI9 LL_SYSCFG_GetEXTISource\n
  624. * SYSCFG_EXTICR3 EXTI10 LL_SYSCFG_GetEXTISource\n
  625. * SYSCFG_EXTICR3 EXTI11 LL_SYSCFG_GetEXTISource\n
  626. * SYSCFG_EXTICR3 EXTI12 LL_SYSCFG_GetEXTISource\n
  627. * SYSCFG_EXTICR3 EXTI13 LL_SYSCFG_GetEXTISource\n
  628. * SYSCFG_EXTICR3 EXTI14 LL_SYSCFG_GetEXTISource\n
  629. * SYSCFG_EXTICR3 EXTI15 LL_SYSCFG_GetEXTISource\n
  630. * SYSCFG_EXTICR4 EXTI0 LL_SYSCFG_GetEXTISource\n
  631. * SYSCFG_EXTICR4 EXTI1 LL_SYSCFG_GetEXTISource\n
  632. * SYSCFG_EXTICR4 EXTI2 LL_SYSCFG_GetEXTISource\n
  633. * SYSCFG_EXTICR4 EXTI3 LL_SYSCFG_GetEXTISource\n
  634. * SYSCFG_EXTICR4 EXTI4 LL_SYSCFG_GetEXTISource\n
  635. * SYSCFG_EXTICR4 EXTI5 LL_SYSCFG_GetEXTISource\n
  636. * SYSCFG_EXTICR4 EXTI6 LL_SYSCFG_GetEXTISource\n
  637. * SYSCFG_EXTICR4 EXTI7 LL_SYSCFG_GetEXTISource\n
  638. * SYSCFG_EXTICR4 EXTI8 LL_SYSCFG_GetEXTISource\n
  639. * SYSCFG_EXTICR4 EXTI9 LL_SYSCFG_GetEXTISource\n
  640. * SYSCFG_EXTICR4 EXTI10 LL_SYSCFG_GetEXTISource\n
  641. * SYSCFG_EXTICR4 EXTI11 LL_SYSCFG_GetEXTISource\n
  642. * SYSCFG_EXTICR4 EXTI12 LL_SYSCFG_GetEXTISource\n
  643. * SYSCFG_EXTICR4 EXTI13 LL_SYSCFG_GetEXTISource\n
  644. * SYSCFG_EXTICR4 EXTI14 LL_SYSCFG_GetEXTISource\n
  645. * SYSCFG_EXTICR4 EXTI15 LL_SYSCFG_GetEXTISource
  646. * @param Line This parameter can be one of the following values:
  647. * @arg @ref LL_SYSCFG_EXTI_LINE0
  648. * @arg @ref LL_SYSCFG_EXTI_LINE1
  649. * @arg @ref LL_SYSCFG_EXTI_LINE2
  650. * @arg @ref LL_SYSCFG_EXTI_LINE3
  651. * @arg @ref LL_SYSCFG_EXTI_LINE4
  652. * @arg @ref LL_SYSCFG_EXTI_LINE5
  653. * @arg @ref LL_SYSCFG_EXTI_LINE6
  654. * @arg @ref LL_SYSCFG_EXTI_LINE7
  655. * @arg @ref LL_SYSCFG_EXTI_LINE8
  656. * @arg @ref LL_SYSCFG_EXTI_LINE9
  657. * @arg @ref LL_SYSCFG_EXTI_LINE10
  658. * @arg @ref LL_SYSCFG_EXTI_LINE11
  659. * @arg @ref LL_SYSCFG_EXTI_LINE12
  660. * @arg @ref LL_SYSCFG_EXTI_LINE13
  661. * @arg @ref LL_SYSCFG_EXTI_LINE14
  662. * @arg @ref LL_SYSCFG_EXTI_LINE15
  663. * @retval Returned value can be one of the following values:
  664. * @arg @ref LL_SYSCFG_EXTI_PORTA
  665. * @arg @ref LL_SYSCFG_EXTI_PORTB
  666. * @arg @ref LL_SYSCFG_EXTI_PORTC
  667. * @arg @ref LL_SYSCFG_EXTI_PORTD
  668. * @arg @ref LL_SYSCFG_EXTI_PORTE (*)
  669. * @arg @ref LL_SYSCFG_EXTI_PORTF (*)
  670. * @arg @ref LL_SYSCFG_EXTI_PORTG (*)
  671. * @arg @ref LL_SYSCFG_EXTI_PORTH
  672. *
  673. * (*) value not defined in all devices.
  674. */
  675. __STATIC_INLINE uint32_t LL_SYSCFG_GetEXTISource(uint32_t Line)
  676. {
  677. return (uint32_t)(READ_BIT(SYSCFG->EXTICR[Line & 0x3U], (Line >> 16)) >> POSITION_VAL(Line >> 16));
  678. }
  679. /**
  680. * @}
  681. */
  682. /** @defgroup SYSTEM_LL_EF_DBGMCU DBGMCU
  683. * @{
  684. */
  685. /**
  686. * @brief Return the device identifier
  687. * @note 0x416: Cat.1 device\n
  688. * 0x429: Cat.2 device\n
  689. * 0x427: Cat.3 device\n
  690. * 0x436: Cat.4 device or Cat.3 device(1)\n
  691. * 0x437: Cat.5 device\n
  692. *
  693. * (1) Cat.3 devices: STM32L15xxC or STM3216xxC devices with
  694. * RPN ending with letter 'A', in WLCSP64 packages or with more then 100 pin.
  695. * @rmtoll DBGMCU_IDCODE DEV_ID LL_DBGMCU_GetDeviceID
  696. * @retval Values between Min_Data=0x00 and Max_Data=0xFFF
  697. */
  698. __STATIC_INLINE uint32_t LL_DBGMCU_GetDeviceID(void)
  699. {
  700. return (uint32_t)(READ_BIT(DBGMCU->IDCODE, DBGMCU_IDCODE_DEV_ID));
  701. }
  702. /**
  703. * @brief Return the device revision identifier
  704. * @note This field indicates the revision of the device.
  705. For example, it is read as Cat.1 RevA -> 0x1000, Cat.2 Rev Z -> 0x1018...
  706. * @rmtoll DBGMCU_IDCODE REV_ID LL_DBGMCU_GetRevisionID
  707. * @retval Values between Min_Data=0x00 and Max_Data=0xFFFF
  708. */
  709. __STATIC_INLINE uint32_t LL_DBGMCU_GetRevisionID(void)
  710. {
  711. return (uint32_t)(READ_BIT(DBGMCU->IDCODE, DBGMCU_IDCODE_REV_ID) >> DBGMCU_IDCODE_REV_ID_Pos);
  712. }
  713. /**
  714. * @brief Enable the Debug Module during SLEEP mode
  715. * @rmtoll DBGMCU_CR DBG_SLEEP LL_DBGMCU_EnableDBGSleepMode
  716. * @retval None
  717. */
  718. __STATIC_INLINE void LL_DBGMCU_EnableDBGSleepMode(void)
  719. {
  720. SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_SLEEP);
  721. }
  722. /**
  723. * @brief Disable the Debug Module during SLEEP mode
  724. * @rmtoll DBGMCU_CR DBG_SLEEP LL_DBGMCU_DisableDBGSleepMode
  725. * @retval None
  726. */
  727. __STATIC_INLINE void LL_DBGMCU_DisableDBGSleepMode(void)
  728. {
  729. CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_SLEEP);
  730. }
  731. /**
  732. * @brief Enable the Debug Module during STOP mode
  733. * @rmtoll DBGMCU_CR DBG_STOP LL_DBGMCU_EnableDBGStopMode
  734. * @retval None
  735. */
  736. __STATIC_INLINE void LL_DBGMCU_EnableDBGStopMode(void)
  737. {
  738. SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_STOP);
  739. }
  740. /**
  741. * @brief Disable the Debug Module during STOP mode
  742. * @rmtoll DBGMCU_CR DBG_STOP LL_DBGMCU_DisableDBGStopMode
  743. * @retval None
  744. */
  745. __STATIC_INLINE void LL_DBGMCU_DisableDBGStopMode(void)
  746. {
  747. CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_STOP);
  748. }
  749. /**
  750. * @brief Enable the Debug Module during STANDBY mode
  751. * @rmtoll DBGMCU_CR DBG_STANDBY LL_DBGMCU_EnableDBGStandbyMode
  752. * @retval None
  753. */
  754. __STATIC_INLINE void LL_DBGMCU_EnableDBGStandbyMode(void)
  755. {
  756. SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_STANDBY);
  757. }
  758. /**
  759. * @brief Disable the Debug Module during STANDBY mode
  760. * @rmtoll DBGMCU_CR DBG_STANDBY LL_DBGMCU_DisableDBGStandbyMode
  761. * @retval None
  762. */
  763. __STATIC_INLINE void LL_DBGMCU_DisableDBGStandbyMode(void)
  764. {
  765. CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_STANDBY);
  766. }
  767. /**
  768. * @brief Set Trace pin assignment control
  769. * @rmtoll DBGMCU_CR TRACE_IOEN LL_DBGMCU_SetTracePinAssignment\n
  770. * DBGMCU_CR TRACE_MODE LL_DBGMCU_SetTracePinAssignment
  771. * @param PinAssignment This parameter can be one of the following values:
  772. * @arg @ref LL_DBGMCU_TRACE_NONE
  773. * @arg @ref LL_DBGMCU_TRACE_ASYNCH
  774. * @arg @ref LL_DBGMCU_TRACE_SYNCH_SIZE1
  775. * @arg @ref LL_DBGMCU_TRACE_SYNCH_SIZE2
  776. * @arg @ref LL_DBGMCU_TRACE_SYNCH_SIZE4
  777. * @retval None
  778. */
  779. __STATIC_INLINE void LL_DBGMCU_SetTracePinAssignment(uint32_t PinAssignment)
  780. {
  781. MODIFY_REG(DBGMCU->CR, DBGMCU_CR_TRACE_IOEN | DBGMCU_CR_TRACE_MODE, PinAssignment);
  782. }
  783. /**
  784. * @brief Get Trace pin assignment control
  785. * @rmtoll DBGMCU_CR TRACE_IOEN LL_DBGMCU_GetTracePinAssignment\n
  786. * DBGMCU_CR TRACE_MODE LL_DBGMCU_GetTracePinAssignment
  787. * @retval Returned value can be one of the following values:
  788. * @arg @ref LL_DBGMCU_TRACE_NONE
  789. * @arg @ref LL_DBGMCU_TRACE_ASYNCH
  790. * @arg @ref LL_DBGMCU_TRACE_SYNCH_SIZE1
  791. * @arg @ref LL_DBGMCU_TRACE_SYNCH_SIZE2
  792. * @arg @ref LL_DBGMCU_TRACE_SYNCH_SIZE4
  793. */
  794. __STATIC_INLINE uint32_t LL_DBGMCU_GetTracePinAssignment(void)
  795. {
  796. return (uint32_t)(READ_BIT(DBGMCU->CR, DBGMCU_CR_TRACE_IOEN | DBGMCU_CR_TRACE_MODE));
  797. }
  798. /**
  799. * @brief Freeze APB1 peripherals (group1 peripherals)
  800. * @rmtoll APB1_FZ DBG_TIM2_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n
  801. * APB1_FZ DBG_TIM3_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n
  802. * APB1_FZ DBG_TIM4_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n
  803. * APB1_FZ DBG_TIM5_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n
  804. * APB1_FZ DBG_TIM6_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n
  805. * APB1_FZ DBG_TIM7_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n
  806. * APB1_FZ DBG_RTC_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n
  807. * APB1_FZ DBG_WWDG_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n
  808. * APB1_FZ DBG_IWDG_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n
  809. * APB1_FZ DBG_I2C1_SMBUS_TIMEOUT LL_DBGMCU_APB1_GRP1_FreezePeriph\n
  810. * APB1_FZ DBG_I2C2_SMBUS_TIMEOUT LL_DBGMCU_APB1_GRP1_FreezePeriph
  811. * @param Periphs This parameter can be a combination of the following values:
  812. * @arg @ref LL_DBGMCU_APB1_GRP1_TIM2_STOP
  813. * @arg @ref LL_DBGMCU_APB1_GRP1_TIM3_STOP
  814. * @arg @ref LL_DBGMCU_APB1_GRP1_TIM4_STOP
  815. * @arg @ref LL_DBGMCU_APB1_GRP1_TIM5_STOP (*)
  816. * @arg @ref LL_DBGMCU_APB1_GRP1_TIM6_STOP
  817. * @arg @ref LL_DBGMCU_APB1_GRP1_TIM7_STOP
  818. * @arg @ref LL_DBGMCU_APB1_GRP1_RTC_STOP (*)
  819. * @arg @ref LL_DBGMCU_APB1_GRP1_WWDG_STOP
  820. * @arg @ref LL_DBGMCU_APB1_GRP1_IWDG_STOP
  821. * @arg @ref LL_DBGMCU_APB1_GRP1_I2C1_STOP
  822. * @arg @ref LL_DBGMCU_APB1_GRP1_I2C2_STOP
  823. * (*) value not defined in all devices.
  824. * @retval None
  825. */
  826. __STATIC_INLINE void LL_DBGMCU_APB1_GRP1_FreezePeriph(uint32_t Periphs)
  827. {
  828. SET_BIT(DBGMCU->APB1FZ, Periphs);
  829. }
  830. /**
  831. * @brief Unfreeze APB1 peripherals (group1 peripherals)
  832. * @rmtoll APB1_FZ DBG_TIM2_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n
  833. * APB1_FZ DBG_TIM3_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n
  834. * APB1_FZ DBG_TIM4_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n
  835. * APB1_FZ DBG_TIM5_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n
  836. * APB1_FZ DBG_TIM6_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n
  837. * APB1_FZ DBG_TIM7_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n
  838. * APB1_FZ DBG_RTC_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n
  839. * APB1_FZ DBG_WWDG_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n
  840. * APB1_FZ DBG_IWDG_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n
  841. * APB1_FZ DBG_I2C1_SMBUS_TIMEOUT LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n
  842. * APB1_FZ DBG_I2C2_SMBUS_TIMEOUT LL_DBGMCU_APB1_GRP1_UnFreezePeriph
  843. * @param Periphs This parameter can be a combination of the following values:
  844. * @arg @ref LL_DBGMCU_APB1_GRP1_TIM2_STOP
  845. * @arg @ref LL_DBGMCU_APB1_GRP1_TIM3_STOP
  846. * @arg @ref LL_DBGMCU_APB1_GRP1_TIM4_STOP
  847. * @arg @ref LL_DBGMCU_APB1_GRP1_TIM5_STOP (*)
  848. * @arg @ref LL_DBGMCU_APB1_GRP1_TIM6_STOP
  849. * @arg @ref LL_DBGMCU_APB1_GRP1_TIM7_STOP
  850. * @arg @ref LL_DBGMCU_APB1_GRP1_RTC_STOP (*)
  851. * @arg @ref LL_DBGMCU_APB1_GRP1_WWDG_STOP
  852. * @arg @ref LL_DBGMCU_APB1_GRP1_IWDG_STOP
  853. * @arg @ref LL_DBGMCU_APB1_GRP1_I2C1_STOP
  854. * @arg @ref LL_DBGMCU_APB1_GRP1_I2C2_STOP
  855. * (*) value not defined in all devices.
  856. * @retval None
  857. */
  858. __STATIC_INLINE void LL_DBGMCU_APB1_GRP1_UnFreezePeriph(uint32_t Periphs)
  859. {
  860. CLEAR_BIT(DBGMCU->APB1FZ, Periphs);
  861. }
  862. /**
  863. * @brief Freeze APB2 peripherals
  864. * @rmtoll APB2_FZ DBG_TIM9_STOP LL_DBGMCU_APB2_GRP1_FreezePeriph\n
  865. * APB2_FZ DBG_TIM10_STOP LL_DBGMCU_APB2_GRP1_FreezePeriph\n
  866. * APB2_FZ DBG_TIM11_STOP LL_DBGMCU_APB2_GRP1_FreezePeriph
  867. * @param Periphs This parameter can be a combination of the following values:
  868. * @arg @ref LL_DBGMCU_APB2_GRP1_TIM9_STOP
  869. * @arg @ref LL_DBGMCU_APB2_GRP1_TIM10_STOP
  870. * @arg @ref LL_DBGMCU_APB2_GRP1_TIM11_STOP
  871. * @retval None
  872. */
  873. __STATIC_INLINE void LL_DBGMCU_APB2_GRP1_FreezePeriph(uint32_t Periphs)
  874. {
  875. SET_BIT(DBGMCU->APB2FZ, Periphs);
  876. }
  877. /**
  878. * @brief Unfreeze APB2 peripherals
  879. * @rmtoll APB2_FZ DBG_TIM9_STOP LL_DBGMCU_APB2_GRP1_UnFreezePeriph\n
  880. * APB2_FZ DBG_TIM10_STOP LL_DBGMCU_APB2_GRP1_UnFreezePeriph\n
  881. * APB2_FZ DBG_TIM11_STOP LL_DBGMCU_APB2_GRP1_UnFreezePeriph
  882. * @param Periphs This parameter can be a combination of the following values:
  883. * @arg @ref LL_DBGMCU_APB2_GRP1_TIM9_STOP
  884. * @arg @ref LL_DBGMCU_APB2_GRP1_TIM10_STOP
  885. * @arg @ref LL_DBGMCU_APB2_GRP1_TIM11_STOP
  886. * @retval None
  887. */
  888. __STATIC_INLINE void LL_DBGMCU_APB2_GRP1_UnFreezePeriph(uint32_t Periphs)
  889. {
  890. CLEAR_BIT(DBGMCU->APB2FZ, Periphs);
  891. }
  892. /**
  893. * @}
  894. */
  895. #if defined(COMP_CSR_VREFOUTEN)
  896. /** @defgroup SYSTEM_LL_EF_VREFOUT VREFOUT
  897. * @{
  898. */
  899. /**
  900. * @brief Enable the output of internal reference voltage (VrefInt) on I/O pin.
  901. * @note The VrefInt output can be routed to any I/O in group 3:
  902. * - For Cat.1 and Cat.2 devices: CH8 (PB0) or CH9 (PB1).
  903. * - For Cat.3 devices: CH8 (PB0), CH9 (PB1) or CH0b (PB2).
  904. * - For Cat.4 and Cat.5 devices: CH8 (PB0), CH9 (PB1), CH0b (PB2),
  905. * CH1b (PF11) or CH2b (PF12).
  906. * Note: Comparator peripheral clock must be preliminarily enabled.
  907. * Refer to function "LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_COMP)".
  908. * Note: In addition with this macro, VrefInt output buffer must be
  909. * connected to the selected I/O pin. Refer to functions
  910. * "LL_RI_EnableSwitchControlMode()" and "LL_RI_CloseIOSwitchLinkedToADC()".
  911. * @note VrefInt output enable: Internal reference voltage connected to I/O group 3
  912. * VrefInt output disable: Internal reference voltage disconnected from I/O group 3
  913. * @rmtoll COMP_CSR VREFOUTEN LL_VREFOUT_Enable
  914. * @retval None
  915. */
  916. __STATIC_INLINE void LL_VREFOUT_Enable(void)
  917. {
  918. SET_BIT(COMP->CSR, COMP_CSR_VREFOUTEN);
  919. }
  920. /**
  921. * @brief Disable the output of internal reference voltage (VrefInt) on I/O pin.
  922. * @rmtoll COMP_CSR VREFOUTEN LL_VREFOUT_Disable
  923. * @retval None
  924. */
  925. __STATIC_INLINE void LL_VREFOUT_Disable(void)
  926. {
  927. CLEAR_BIT(COMP->CSR, COMP_CSR_VREFOUTEN);
  928. }
  929. /**
  930. * @brief Check if output of internal reference voltage (VrefInt) is connected to I/O pin.
  931. * @rmtoll COMP_CSR VREFOUTEN LL_VREFOUT_IsEnabled
  932. * @retval State of bit (1 or 0).
  933. */
  934. __STATIC_INLINE uint32_t LL_VREFOUT_IsEnabled(void)
  935. {
  936. return ((READ_BIT(COMP->CSR, COMP_CSR_VREFOUTEN) == COMP_CSR_VREFOUTEN) ? 1UL : 0UL);
  937. }
  938. /**
  939. * @}
  940. */
  941. #endif /* COMP_CSR_VREFOUTEN */
  942. /** @defgroup SYSTEM_LL_EF_RI RI
  943. * @{
  944. */
  945. /**
  946. * @brief Configures the routing interface to map Input Capture x of TIMx to a selected I/O pin.
  947. * @rmtoll RI_ICR IC1OS LL_RI_SetRemapInputCapture_TIM\n
  948. * RI_ICR IC2OS LL_RI_SetRemapInputCapture_TIM\n
  949. * RI_ICR IC3OS LL_RI_SetRemapInputCapture_TIM\n
  950. * RI_ICR IC4OS LL_RI_SetRemapInputCapture_TIM\n
  951. * RI_ICR TIM LL_RI_SetRemapInputCapture_TIM\n
  952. * RI_ICR IC1 LL_RI_SetRemapInputCapture_TIM\n
  953. * RI_ICR IC2 LL_RI_SetRemapInputCapture_TIM\n
  954. * RI_ICR IC3 LL_RI_SetRemapInputCapture_TIM\n
  955. * RI_ICR IC4 LL_RI_SetRemapInputCapture_TIM
  956. * @param TIM_Select This parameter can be one of the following values:
  957. * @arg @ref LL_RI_TIM_SELECT_NONE
  958. * @arg @ref LL_RI_TIM_SELECT_TIM2
  959. * @arg @ref LL_RI_TIM_SELECT_TIM3
  960. * @arg @ref LL_RI_TIM_SELECT_TIM4
  961. * @param InputCaptureChannel This parameter can be one of the following values:
  962. * @arg @ref LL_RI_INPUTCAPTURE_1
  963. * @arg @ref LL_RI_INPUTCAPTURE_2
  964. * @arg @ref LL_RI_INPUTCAPTURE_3
  965. * @arg @ref LL_RI_INPUTCAPTURE_4
  966. * @param Input This parameter can be one of the following values:
  967. * @arg @ref LL_RI_INPUTCAPTUREROUTING_0
  968. * @arg @ref LL_RI_INPUTCAPTUREROUTING_1
  969. * @arg @ref LL_RI_INPUTCAPTUREROUTING_2
  970. * @arg @ref LL_RI_INPUTCAPTUREROUTING_3
  971. * @arg @ref LL_RI_INPUTCAPTUREROUTING_4
  972. * @arg @ref LL_RI_INPUTCAPTUREROUTING_5
  973. * @arg @ref LL_RI_INPUTCAPTUREROUTING_6
  974. * @arg @ref LL_RI_INPUTCAPTUREROUTING_7
  975. * @arg @ref LL_RI_INPUTCAPTUREROUTING_8
  976. * @arg @ref LL_RI_INPUTCAPTUREROUTING_9
  977. * @arg @ref LL_RI_INPUTCAPTUREROUTING_10
  978. * @arg @ref LL_RI_INPUTCAPTUREROUTING_11
  979. * @arg @ref LL_RI_INPUTCAPTUREROUTING_12 (*)
  980. * @arg @ref LL_RI_INPUTCAPTUREROUTING_13 (*)
  981. * @arg @ref LL_RI_INPUTCAPTUREROUTING_14 (*)
  982. * @arg @ref LL_RI_INPUTCAPTUREROUTING_15 (*)
  983. *
  984. * (*) value not defined in all devices.
  985. * @retval None
  986. */
  987. __STATIC_INLINE void LL_RI_SetRemapInputCapture_TIM(uint32_t TIM_Select, uint32_t InputCaptureChannel, uint32_t Input)
  988. {
  989. MODIFY_REG(RI->ICR,
  990. RI_ICR_TIM | (InputCaptureChannel & (RI_ICR_IC4 | RI_ICR_IC3 | RI_ICR_IC2 | RI_ICR_IC1)) | (InputCaptureChannel & (RI_ICR_IC4OS | RI_ICR_IC3OS | RI_ICR_IC2OS | RI_ICR_IC1OS)),
  991. TIM_Select | (InputCaptureChannel & (RI_ICR_IC4 | RI_ICR_IC3 | RI_ICR_IC2 | RI_ICR_IC1)) | (Input << POSITION_VAL(InputCaptureChannel)));
  992. }
  993. /**
  994. * @brief Disable the TIM Input capture remap (select the standard AF)
  995. * @rmtoll RI_ICR IC1 LL_RI_DisableRemapInputCapture_TIM\n
  996. * RI_ICR IC2 LL_RI_DisableRemapInputCapture_TIM\n
  997. * RI_ICR IC3 LL_RI_DisableRemapInputCapture_TIM\n
  998. * RI_ICR IC4 LL_RI_DisableRemapInputCapture_TIM
  999. * @param InputCaptureChannel This parameter can be a combination of the following values:
  1000. * @arg @ref LL_RI_INPUTCAPTURE_1
  1001. * @arg @ref LL_RI_INPUTCAPTURE_2
  1002. * @arg @ref LL_RI_INPUTCAPTURE_3
  1003. * @arg @ref LL_RI_INPUTCAPTURE_4
  1004. * @retval None
  1005. */
  1006. __STATIC_INLINE void LL_RI_DisableRemapInputCapture_TIM(uint32_t InputCaptureChannel)
  1007. {
  1008. CLEAR_BIT(RI->ICR, (InputCaptureChannel & (RI_ICR_IC4 | RI_ICR_IC3 | RI_ICR_IC2 | RI_ICR_IC1)));
  1009. }
  1010. /**
  1011. * @brief Close the routing interface Input Output switches linked to ADC.
  1012. * @rmtoll RI_ASCR1 CH LL_RI_CloseIOSwitchLinkedToADC\n
  1013. * RI_ASCR1 VCOMP LL_RI_CloseIOSwitchLinkedToADC
  1014. * @param IOSwitch This parameter can be a combination of the following values:
  1015. * @arg @ref LL_RI_IOSWITCH_CH0
  1016. * @arg @ref LL_RI_IOSWITCH_CH1
  1017. * @arg @ref LL_RI_IOSWITCH_CH2
  1018. * @arg @ref LL_RI_IOSWITCH_CH3
  1019. * @arg @ref LL_RI_IOSWITCH_CH4
  1020. * @arg @ref LL_RI_IOSWITCH_CH5
  1021. * @arg @ref LL_RI_IOSWITCH_CH6
  1022. * @arg @ref LL_RI_IOSWITCH_CH7
  1023. * @arg @ref LL_RI_IOSWITCH_CH8
  1024. * @arg @ref LL_RI_IOSWITCH_CH9
  1025. * @arg @ref LL_RI_IOSWITCH_CH10
  1026. * @arg @ref LL_RI_IOSWITCH_CH11
  1027. * @arg @ref LL_RI_IOSWITCH_CH12
  1028. * @arg @ref LL_RI_IOSWITCH_CH13
  1029. * @arg @ref LL_RI_IOSWITCH_CH14
  1030. * @arg @ref LL_RI_IOSWITCH_CH15
  1031. * @arg @ref LL_RI_IOSWITCH_CH18
  1032. * @arg @ref LL_RI_IOSWITCH_CH19
  1033. * @arg @ref LL_RI_IOSWITCH_CH20
  1034. * @arg @ref LL_RI_IOSWITCH_CH21
  1035. * @arg @ref LL_RI_IOSWITCH_CH22
  1036. * @arg @ref LL_RI_IOSWITCH_CH23
  1037. * @arg @ref LL_RI_IOSWITCH_CH24
  1038. * @arg @ref LL_RI_IOSWITCH_CH25
  1039. * @arg @ref LL_RI_IOSWITCH_VCOMP
  1040. * @arg @ref LL_RI_IOSWITCH_CH27 (*)
  1041. * @arg @ref LL_RI_IOSWITCH_CH28 (*)
  1042. * @arg @ref LL_RI_IOSWITCH_CH29 (*)
  1043. * @arg @ref LL_RI_IOSWITCH_CH30 (*)
  1044. * @arg @ref LL_RI_IOSWITCH_CH31 (*)
  1045. *
  1046. * (*) value not defined in all devices.
  1047. * @retval None
  1048. */
  1049. __STATIC_INLINE void LL_RI_CloseIOSwitchLinkedToADC(uint32_t IOSwitch)
  1050. {
  1051. SET_BIT(RI->ASCR1, IOSwitch);
  1052. }
  1053. /**
  1054. * @brief Open the routing interface Input Output switches linked to ADC.
  1055. * @rmtoll RI_ASCR1 CH LL_RI_OpenIOSwitchLinkedToADC\n
  1056. * RI_ASCR1 VCOMP LL_RI_OpenIOSwitchLinkedToADC
  1057. * @param IOSwitch This parameter can be a combination of the following values:
  1058. * @arg @ref LL_RI_IOSWITCH_CH0
  1059. * @arg @ref LL_RI_IOSWITCH_CH1
  1060. * @arg @ref LL_RI_IOSWITCH_CH2
  1061. * @arg @ref LL_RI_IOSWITCH_CH3
  1062. * @arg @ref LL_RI_IOSWITCH_CH4
  1063. * @arg @ref LL_RI_IOSWITCH_CH5
  1064. * @arg @ref LL_RI_IOSWITCH_CH6
  1065. * @arg @ref LL_RI_IOSWITCH_CH7
  1066. * @arg @ref LL_RI_IOSWITCH_CH8
  1067. * @arg @ref LL_RI_IOSWITCH_CH9
  1068. * @arg @ref LL_RI_IOSWITCH_CH10
  1069. * @arg @ref LL_RI_IOSWITCH_CH11
  1070. * @arg @ref LL_RI_IOSWITCH_CH12
  1071. * @arg @ref LL_RI_IOSWITCH_CH13
  1072. * @arg @ref LL_RI_IOSWITCH_CH14
  1073. * @arg @ref LL_RI_IOSWITCH_CH15
  1074. * @arg @ref LL_RI_IOSWITCH_CH18
  1075. * @arg @ref LL_RI_IOSWITCH_CH19
  1076. * @arg @ref LL_RI_IOSWITCH_CH20
  1077. * @arg @ref LL_RI_IOSWITCH_CH21
  1078. * @arg @ref LL_RI_IOSWITCH_CH22
  1079. * @arg @ref LL_RI_IOSWITCH_CH23
  1080. * @arg @ref LL_RI_IOSWITCH_CH24
  1081. * @arg @ref LL_RI_IOSWITCH_CH25
  1082. * @arg @ref LL_RI_IOSWITCH_VCOMP
  1083. * @arg @ref LL_RI_IOSWITCH_CH27 (*)
  1084. * @arg @ref LL_RI_IOSWITCH_CH28 (*)
  1085. * @arg @ref LL_RI_IOSWITCH_CH29 (*)
  1086. * @arg @ref LL_RI_IOSWITCH_CH30 (*)
  1087. * @arg @ref LL_RI_IOSWITCH_CH31 (*)
  1088. *
  1089. * (*) value not defined in all devices.
  1090. * @retval None
  1091. */
  1092. __STATIC_INLINE void LL_RI_OpenIOSwitchLinkedToADC(uint32_t IOSwitch)
  1093. {
  1094. CLEAR_BIT(RI->ASCR1, IOSwitch);
  1095. }
  1096. /**
  1097. * @brief Enable the switch control mode.
  1098. * @rmtoll RI_ASCR1 SCM LL_RI_EnableSwitchControlMode
  1099. * @retval None
  1100. */
  1101. __STATIC_INLINE void LL_RI_EnableSwitchControlMode(void)
  1102. {
  1103. SET_BIT(RI->ASCR1, RI_ASCR1_SCM);
  1104. }
  1105. /**
  1106. * @brief Disable the switch control mode.
  1107. * @rmtoll RI_ASCR1 SCM LL_RI_DisableSwitchControlMode
  1108. * @retval None
  1109. */
  1110. __STATIC_INLINE void LL_RI_DisableSwitchControlMode(void)
  1111. {
  1112. CLEAR_BIT(RI->ASCR1, RI_ASCR1_SCM);
  1113. }
  1114. /**
  1115. * @brief Close the routing interface Input Output switches not linked to ADC.
  1116. * @rmtoll RI_ASCR2 GR10_1 LL_RI_CloseIOSwitchNotLinkedToADC\n
  1117. * RI_ASCR2 GR10_2 LL_RI_CloseIOSwitchNotLinkedToADC\n
  1118. * RI_ASCR2 GR10_3 LL_RI_CloseIOSwitchNotLinkedToADC\n
  1119. * RI_ASCR2 GR10_4 LL_RI_CloseIOSwitchNotLinkedToADC\n
  1120. * RI_ASCR2 GR6_1 LL_RI_CloseIOSwitchNotLinkedToADC\n
  1121. * RI_ASCR2 GR6_2 LL_RI_CloseIOSwitchNotLinkedToADC\n
  1122. * RI_ASCR2 GR5_1 LL_RI_CloseIOSwitchNotLinkedToADC\n
  1123. * RI_ASCR2 GR5_2 LL_RI_CloseIOSwitchNotLinkedToADC\n
  1124. * RI_ASCR2 GR5_3 LL_RI_CloseIOSwitchNotLinkedToADC\n
  1125. * RI_ASCR2 GR4_1 LL_RI_CloseIOSwitchNotLinkedToADC\n
  1126. * RI_ASCR2 GR4_2 LL_RI_CloseIOSwitchNotLinkedToADC\n
  1127. * RI_ASCR2 GR4_3 LL_RI_CloseIOSwitchNotLinkedToADC\n
  1128. * RI_ASCR2 GR4_4 LL_RI_CloseIOSwitchNotLinkedToADC\n
  1129. * RI_ASCR2 CH0b LL_RI_CloseIOSwitchNotLinkedToADC\n
  1130. * RI_ASCR2 CH1b LL_RI_CloseIOSwitchNotLinkedToADC\n
  1131. * RI_ASCR2 CH2b LL_RI_CloseIOSwitchNotLinkedToADC\n
  1132. * RI_ASCR2 CH3b LL_RI_CloseIOSwitchNotLinkedToADC\n
  1133. * RI_ASCR2 CH6b LL_RI_CloseIOSwitchNotLinkedToADC\n
  1134. * RI_ASCR2 CH7b LL_RI_CloseIOSwitchNotLinkedToADC\n
  1135. * RI_ASCR2 CH8b LL_RI_CloseIOSwitchNotLinkedToADC\n
  1136. * RI_ASCR2 CH9b LL_RI_CloseIOSwitchNotLinkedToADC\n
  1137. * RI_ASCR2 CH10b LL_RI_CloseIOSwitchNotLinkedToADC\n
  1138. * RI_ASCR2 CH11b LL_RI_CloseIOSwitchNotLinkedToADC\n
  1139. * RI_ASCR2 CH12b LL_RI_CloseIOSwitchNotLinkedToADC\n
  1140. * RI_ASCR2 GR6_3 LL_RI_CloseIOSwitchNotLinkedToADC\n
  1141. * RI_ASCR2 GR6_4 LL_RI_CloseIOSwitchNotLinkedToADC
  1142. * @param IOSwitch This parameter can be a combination of the following values:
  1143. * @arg @ref LL_RI_IOSWITCH_GR10_1
  1144. * @arg @ref LL_RI_IOSWITCH_GR10_2
  1145. * @arg @ref LL_RI_IOSWITCH_GR10_3
  1146. * @arg @ref LL_RI_IOSWITCH_GR10_4
  1147. * @arg @ref LL_RI_IOSWITCH_GR6_1
  1148. * @arg @ref LL_RI_IOSWITCH_GR6_2
  1149. * @arg @ref LL_RI_IOSWITCH_GR5_1
  1150. * @arg @ref LL_RI_IOSWITCH_GR5_2
  1151. * @arg @ref LL_RI_IOSWITCH_GR5_3
  1152. * @arg @ref LL_RI_IOSWITCH_GR4_1
  1153. * @arg @ref LL_RI_IOSWITCH_GR4_2
  1154. * @arg @ref LL_RI_IOSWITCH_GR4_3
  1155. * @arg @ref LL_RI_IOSWITCH_CH0b (*)
  1156. * @arg @ref LL_RI_IOSWITCH_CH1b (*)
  1157. * @arg @ref LL_RI_IOSWITCH_CH2b (*)
  1158. * @arg @ref LL_RI_IOSWITCH_CH3b (*)
  1159. * @arg @ref LL_RI_IOSWITCH_CH6b (*)
  1160. * @arg @ref LL_RI_IOSWITCH_CH7b (*)
  1161. * @arg @ref LL_RI_IOSWITCH_CH8b (*)
  1162. * @arg @ref LL_RI_IOSWITCH_CH9b (*)
  1163. * @arg @ref LL_RI_IOSWITCH_CH10b (*)
  1164. * @arg @ref LL_RI_IOSWITCH_CH11b (*)
  1165. * @arg @ref LL_RI_IOSWITCH_CH12b (*)
  1166. * @arg @ref LL_RI_IOSWITCH_GR6_3
  1167. * @arg @ref LL_RI_IOSWITCH_GR6_4
  1168. *
  1169. * (*) value not defined in all devices.
  1170. * @retval None
  1171. */
  1172. __STATIC_INLINE void LL_RI_CloseIOSwitchNotLinkedToADC(uint32_t IOSwitch)
  1173. {
  1174. SET_BIT(RI->ASCR2, IOSwitch);
  1175. }
  1176. /**
  1177. * @brief Open the routing interface Input Output switches not linked to ADC.
  1178. * @rmtoll RI_ASCR2 GR10_1 LL_RI_OpenIOSwitchNotLinkedToADC\n
  1179. * RI_ASCR2 GR10_2 LL_RI_OpenIOSwitchNotLinkedToADC\n
  1180. * RI_ASCR2 GR10_3 LL_RI_OpenIOSwitchNotLinkedToADC\n
  1181. * RI_ASCR2 GR10_4 LL_RI_OpenIOSwitchNotLinkedToADC\n
  1182. * RI_ASCR2 GR6_1 LL_RI_OpenIOSwitchNotLinkedToADC\n
  1183. * RI_ASCR2 GR6_2 LL_RI_OpenIOSwitchNotLinkedToADC\n
  1184. * RI_ASCR2 GR5_1 LL_RI_OpenIOSwitchNotLinkedToADC\n
  1185. * RI_ASCR2 GR5_2 LL_RI_OpenIOSwitchNotLinkedToADC\n
  1186. * RI_ASCR2 GR5_3 LL_RI_OpenIOSwitchNotLinkedToADC\n
  1187. * RI_ASCR2 GR4_1 LL_RI_OpenIOSwitchNotLinkedToADC\n
  1188. * RI_ASCR2 GR4_2 LL_RI_OpenIOSwitchNotLinkedToADC\n
  1189. * RI_ASCR2 GR4_3 LL_RI_OpenIOSwitchNotLinkedToADC\n
  1190. * RI_ASCR2 GR4_4 LL_RI_OpenIOSwitchNotLinkedToADC\n
  1191. * RI_ASCR2 CH0b LL_RI_OpenIOSwitchNotLinkedToADC\n
  1192. * RI_ASCR2 CH1b LL_RI_OpenIOSwitchNotLinkedToADC\n
  1193. * RI_ASCR2 CH2b LL_RI_OpenIOSwitchNotLinkedToADC\n
  1194. * RI_ASCR2 CH3b LL_RI_OpenIOSwitchNotLinkedToADC\n
  1195. * RI_ASCR2 CH6b LL_RI_OpenIOSwitchNotLinkedToADC\n
  1196. * RI_ASCR2 CH7b LL_RI_OpenIOSwitchNotLinkedToADC\n
  1197. * RI_ASCR2 CH8b LL_RI_OpenIOSwitchNotLinkedToADC\n
  1198. * RI_ASCR2 CH9b LL_RI_OpenIOSwitchNotLinkedToADC\n
  1199. * RI_ASCR2 CH10b LL_RI_OpenIOSwitchNotLinkedToADC\n
  1200. * RI_ASCR2 CH11b LL_RI_OpenIOSwitchNotLinkedToADC\n
  1201. * RI_ASCR2 CH12b LL_RI_OpenIOSwitchNotLinkedToADC\n
  1202. * RI_ASCR2 GR6_3 LL_RI_OpenIOSwitchNotLinkedToADC\n
  1203. * RI_ASCR2 GR6_4 LL_RI_OpenIOSwitchNotLinkedToADC
  1204. * @param IOSwitch This parameter can be a combination of the following values:
  1205. * @arg @ref LL_RI_IOSWITCH_GR10_1
  1206. * @arg @ref LL_RI_IOSWITCH_GR10_2
  1207. * @arg @ref LL_RI_IOSWITCH_GR10_3
  1208. * @arg @ref LL_RI_IOSWITCH_GR10_4
  1209. * @arg @ref LL_RI_IOSWITCH_GR6_1
  1210. * @arg @ref LL_RI_IOSWITCH_GR6_2
  1211. * @arg @ref LL_RI_IOSWITCH_GR5_1
  1212. * @arg @ref LL_RI_IOSWITCH_GR5_2
  1213. * @arg @ref LL_RI_IOSWITCH_GR5_3
  1214. * @arg @ref LL_RI_IOSWITCH_GR4_1
  1215. * @arg @ref LL_RI_IOSWITCH_GR4_2
  1216. * @arg @ref LL_RI_IOSWITCH_GR4_3
  1217. * @arg @ref LL_RI_IOSWITCH_CH0b (*)
  1218. * @arg @ref LL_RI_IOSWITCH_CH1b (*)
  1219. * @arg @ref LL_RI_IOSWITCH_CH2b (*)
  1220. * @arg @ref LL_RI_IOSWITCH_CH3b (*)
  1221. * @arg @ref LL_RI_IOSWITCH_CH6b (*)
  1222. * @arg @ref LL_RI_IOSWITCH_CH7b (*)
  1223. * @arg @ref LL_RI_IOSWITCH_CH8b (*)
  1224. * @arg @ref LL_RI_IOSWITCH_CH9b (*)
  1225. * @arg @ref LL_RI_IOSWITCH_CH10b (*)
  1226. * @arg @ref LL_RI_IOSWITCH_CH11b (*)
  1227. * @arg @ref LL_RI_IOSWITCH_CH12b (*)
  1228. * @arg @ref LL_RI_IOSWITCH_GR6_3
  1229. * @arg @ref LL_RI_IOSWITCH_GR6_4
  1230. *
  1231. * (*) value not defined in all devices.
  1232. * @retval None
  1233. */
  1234. __STATIC_INLINE void LL_RI_OpenIOSwitchNotLinkedToADC(uint32_t IOSwitch)
  1235. {
  1236. CLEAR_BIT(RI->ASCR2, IOSwitch);
  1237. }
  1238. /**
  1239. * @brief Enable Hysteresis of the input schmitt triger of the port X
  1240. * @rmtoll RI_HYSCR1 PA LL_RI_EnableHysteresis\n
  1241. * RI_HYSCR1 PB LL_RI_EnableHysteresis\n
  1242. * RI_HYSCR1 PC LL_RI_EnableHysteresis\n
  1243. * RI_HYSCR1 PD LL_RI_EnableHysteresis\n
  1244. * RI_HYSCR1 PE LL_RI_EnableHysteresis\n
  1245. * RI_HYSCR1 PF LL_RI_EnableHysteresis\n
  1246. * RI_HYSCR1 PG LL_RI_EnableHysteresis\n
  1247. * RI_HYSCR2 PA LL_RI_EnableHysteresis\n
  1248. * RI_HYSCR2 PB LL_RI_EnableHysteresis\n
  1249. * RI_HYSCR2 PC LL_RI_EnableHysteresis\n
  1250. * RI_HYSCR2 PD LL_RI_EnableHysteresis\n
  1251. * RI_HYSCR2 PE LL_RI_EnableHysteresis\n
  1252. * RI_HYSCR2 PF LL_RI_EnableHysteresis\n
  1253. * RI_HYSCR2 PG LL_RI_EnableHysteresis\n
  1254. * RI_HYSCR3 PA LL_RI_EnableHysteresis\n
  1255. * RI_HYSCR3 PB LL_RI_EnableHysteresis\n
  1256. * RI_HYSCR3 PC LL_RI_EnableHysteresis\n
  1257. * RI_HYSCR3 PD LL_RI_EnableHysteresis\n
  1258. * RI_HYSCR3 PE LL_RI_EnableHysteresis\n
  1259. * RI_HYSCR3 PF LL_RI_EnableHysteresis\n
  1260. * RI_HYSCR3 PG LL_RI_EnableHysteresis\n
  1261. * RI_HYSCR4 PA LL_RI_EnableHysteresis\n
  1262. * RI_HYSCR4 PB LL_RI_EnableHysteresis\n
  1263. * RI_HYSCR4 PC LL_RI_EnableHysteresis\n
  1264. * RI_HYSCR4 PD LL_RI_EnableHysteresis\n
  1265. * RI_HYSCR4 PE LL_RI_EnableHysteresis\n
  1266. * RI_HYSCR4 PF LL_RI_EnableHysteresis\n
  1267. * RI_HYSCR4 PG LL_RI_EnableHysteresis
  1268. * @param Port This parameter can be one of the following values:
  1269. * @arg @ref LL_RI_HSYTERESIS_PORT_A
  1270. * @arg @ref LL_RI_HSYTERESIS_PORT_B
  1271. * @arg @ref LL_RI_HSYTERESIS_PORT_C
  1272. * @arg @ref LL_RI_HSYTERESIS_PORT_D
  1273. * @arg @ref LL_RI_HSYTERESIS_PORT_E (*)
  1274. * @arg @ref LL_RI_HSYTERESIS_PORT_F (*)
  1275. * @arg @ref LL_RI_HSYTERESIS_PORT_G (*)
  1276. *
  1277. * (*) value not defined in all devices.
  1278. * @param Pin This parameter can be a combination of the following values:
  1279. * @arg @ref LL_RI_PIN_0
  1280. * @arg @ref LL_RI_PIN_1
  1281. * @arg @ref LL_RI_PIN_2
  1282. * @arg @ref LL_RI_PIN_3
  1283. * @arg @ref LL_RI_PIN_4
  1284. * @arg @ref LL_RI_PIN_5
  1285. * @arg @ref LL_RI_PIN_6
  1286. * @arg @ref LL_RI_PIN_7
  1287. * @arg @ref LL_RI_PIN_8
  1288. * @arg @ref LL_RI_PIN_9
  1289. * @arg @ref LL_RI_PIN_10
  1290. * @arg @ref LL_RI_PIN_11
  1291. * @arg @ref LL_RI_PIN_12
  1292. * @arg @ref LL_RI_PIN_13
  1293. * @arg @ref LL_RI_PIN_14
  1294. * @arg @ref LL_RI_PIN_15
  1295. * @arg @ref LL_RI_PIN_ALL
  1296. * @retval None
  1297. */
  1298. __STATIC_INLINE void LL_RI_EnableHysteresis(uint32_t Port, uint32_t Pin)
  1299. {
  1300. __IO uint32_t *reg = (__IO uint32_t *)(uint32_t)((uint32_t)(&RI->HYSCR1) + (Port >> 1U));
  1301. CLEAR_BIT(*reg, Pin << (16U * (Port & 1U)));
  1302. }
  1303. /**
  1304. * @brief Disable Hysteresis of the input schmitt triger of the port X
  1305. * @rmtoll RI_HYSCR1 PA LL_RI_DisableHysteresis\n
  1306. * RI_HYSCR1 PB LL_RI_DisableHysteresis\n
  1307. * RI_HYSCR1 PC LL_RI_DisableHysteresis\n
  1308. * RI_HYSCR1 PD LL_RI_DisableHysteresis\n
  1309. * RI_HYSCR1 PE LL_RI_DisableHysteresis\n
  1310. * RI_HYSCR1 PF LL_RI_DisableHysteresis\n
  1311. * RI_HYSCR1 PG LL_RI_DisableHysteresis\n
  1312. * RI_HYSCR2 PA LL_RI_DisableHysteresis\n
  1313. * RI_HYSCR2 PB LL_RI_DisableHysteresis\n
  1314. * RI_HYSCR2 PC LL_RI_DisableHysteresis\n
  1315. * RI_HYSCR2 PD LL_RI_DisableHysteresis\n
  1316. * RI_HYSCR2 PE LL_RI_DisableHysteresis\n
  1317. * RI_HYSCR2 PF LL_RI_DisableHysteresis\n
  1318. * RI_HYSCR2 PG LL_RI_DisableHysteresis\n
  1319. * RI_HYSCR3 PA LL_RI_DisableHysteresis\n
  1320. * RI_HYSCR3 PB LL_RI_DisableHysteresis\n
  1321. * RI_HYSCR3 PC LL_RI_DisableHysteresis\n
  1322. * RI_HYSCR3 PD LL_RI_DisableHysteresis\n
  1323. * RI_HYSCR3 PE LL_RI_DisableHysteresis\n
  1324. * RI_HYSCR3 PF LL_RI_DisableHysteresis\n
  1325. * RI_HYSCR3 PG LL_RI_DisableHysteresis\n
  1326. * RI_HYSCR4 PA LL_RI_DisableHysteresis\n
  1327. * RI_HYSCR4 PB LL_RI_DisableHysteresis\n
  1328. * RI_HYSCR4 PC LL_RI_DisableHysteresis\n
  1329. * RI_HYSCR4 PD LL_RI_DisableHysteresis\n
  1330. * RI_HYSCR4 PE LL_RI_DisableHysteresis\n
  1331. * RI_HYSCR4 PF LL_RI_DisableHysteresis\n
  1332. * RI_HYSCR4 PG LL_RI_DisableHysteresis
  1333. * @param Port This parameter can be one of the following values:
  1334. * @arg @ref LL_RI_HSYTERESIS_PORT_A
  1335. * @arg @ref LL_RI_HSYTERESIS_PORT_B
  1336. * @arg @ref LL_RI_HSYTERESIS_PORT_C
  1337. * @arg @ref LL_RI_HSYTERESIS_PORT_D
  1338. * @arg @ref LL_RI_HSYTERESIS_PORT_E (*)
  1339. * @arg @ref LL_RI_HSYTERESIS_PORT_F (*)
  1340. * @arg @ref LL_RI_HSYTERESIS_PORT_G (*)
  1341. *
  1342. * (*) value not defined in all devices.
  1343. * @param Pin This parameter can be a combination of the following values:
  1344. * @arg @ref LL_RI_PIN_0
  1345. * @arg @ref LL_RI_PIN_1
  1346. * @arg @ref LL_RI_PIN_2
  1347. * @arg @ref LL_RI_PIN_3
  1348. * @arg @ref LL_RI_PIN_4
  1349. * @arg @ref LL_RI_PIN_5
  1350. * @arg @ref LL_RI_PIN_6
  1351. * @arg @ref LL_RI_PIN_7
  1352. * @arg @ref LL_RI_PIN_8
  1353. * @arg @ref LL_RI_PIN_9
  1354. * @arg @ref LL_RI_PIN_10
  1355. * @arg @ref LL_RI_PIN_11
  1356. * @arg @ref LL_RI_PIN_12
  1357. * @arg @ref LL_RI_PIN_13
  1358. * @arg @ref LL_RI_PIN_14
  1359. * @arg @ref LL_RI_PIN_15
  1360. * @arg @ref LL_RI_PIN_ALL
  1361. * @retval None
  1362. */
  1363. __STATIC_INLINE void LL_RI_DisableHysteresis(uint32_t Port, uint32_t Pin)
  1364. {
  1365. __IO uint32_t *reg = (__IO uint32_t *)(uint32_t)((uint32_t)(&RI->HYSCR1) + ((Port >> 1U) << 2U));
  1366. SET_BIT(*reg, Pin << (16U * (Port & 1U)));
  1367. }
  1368. #if defined(RI_ASMR1_PA)
  1369. /**
  1370. * @brief Control analog switches of port X through the ADC interface or RI_ASCRx registers.
  1371. * @rmtoll RI_ASMR1 PA LL_RI_ControlSwitchByADC\n
  1372. * RI_ASMR1 PB LL_RI_ControlSwitchByADC\n
  1373. * RI_ASMR1 PC LL_RI_ControlSwitchByADC\n
  1374. * RI_ASMR1 PF LL_RI_ControlSwitchByADC\n
  1375. * RI_ASMR1 PG LL_RI_ControlSwitchByADC\n
  1376. * RI_ASMR2 PA LL_RI_ControlSwitchByADC\n
  1377. * RI_ASMR2 PB LL_RI_ControlSwitchByADC\n
  1378. * RI_ASMR2 PC LL_RI_ControlSwitchByADC\n
  1379. * RI_ASMR2 PF LL_RI_ControlSwitchByADC\n
  1380. * RI_ASMR2 PG LL_RI_ControlSwitchByADC\n
  1381. * RI_ASMR3 PA LL_RI_ControlSwitchByADC\n
  1382. * RI_ASMR3 PB LL_RI_ControlSwitchByADC\n
  1383. * RI_ASMR3 PC LL_RI_ControlSwitchByADC\n
  1384. * RI_ASMR3 PF LL_RI_ControlSwitchByADC\n
  1385. * RI_ASMR3 PG LL_RI_ControlSwitchByADC\n
  1386. * RI_ASMR4 PA LL_RI_ControlSwitchByADC\n
  1387. * RI_ASMR4 PB LL_RI_ControlSwitchByADC\n
  1388. * RI_ASMR4 PC LL_RI_ControlSwitchByADC\n
  1389. * RI_ASMR4 PF LL_RI_ControlSwitchByADC\n
  1390. * RI_ASMR4 PG LL_RI_ControlSwitchByADC\n
  1391. * RI_ASMR5 PA LL_RI_ControlSwitchByADC\n
  1392. * RI_ASMR5 PB LL_RI_ControlSwitchByADC\n
  1393. * RI_ASMR5 PC LL_RI_ControlSwitchByADC\n
  1394. * RI_ASMR5 PF LL_RI_ControlSwitchByADC\n
  1395. * RI_ASMR5 PG LL_RI_ControlSwitchByADC
  1396. * @param Port This parameter can be one of the following values:
  1397. * @arg @ref LL_RI_PORT_A
  1398. * @arg @ref LL_RI_PORT_B
  1399. * @arg @ref LL_RI_PORT_C
  1400. * @arg @ref LL_RI_PORT_F (*)
  1401. * @arg @ref LL_RI_PORT_G (*)
  1402. *
  1403. * (*) value not defined in all devices.
  1404. * @param Pin This parameter can be a combination of the following values:
  1405. * @arg @ref LL_RI_PIN_0
  1406. * @arg @ref LL_RI_PIN_1
  1407. * @arg @ref LL_RI_PIN_2
  1408. * @arg @ref LL_RI_PIN_3
  1409. * @arg @ref LL_RI_PIN_4
  1410. * @arg @ref LL_RI_PIN_5
  1411. * @arg @ref LL_RI_PIN_6
  1412. * @arg @ref LL_RI_PIN_7
  1413. * @arg @ref LL_RI_PIN_8
  1414. * @arg @ref LL_RI_PIN_9
  1415. * @arg @ref LL_RI_PIN_10
  1416. * @arg @ref LL_RI_PIN_11
  1417. * @arg @ref LL_RI_PIN_12
  1418. * @arg @ref LL_RI_PIN_13
  1419. * @arg @ref LL_RI_PIN_14
  1420. * @arg @ref LL_RI_PIN_15
  1421. * @arg @ref LL_RI_PIN_ALL
  1422. * @retval None
  1423. */
  1424. __STATIC_INLINE void LL_RI_ControlSwitchByADC(uint32_t Port, uint32_t Pin)
  1425. {
  1426. __IO uint32_t *reg = (__IO uint32_t *)(uint32_t)((uint32_t)(&RI->ASMR1) + ((Port * 3U) << 2));
  1427. CLEAR_BIT(*reg, Pin);
  1428. }
  1429. #endif /* RI_ASMR1_PA */
  1430. #if defined(RI_ASMR1_PA)
  1431. /**
  1432. * @brief Control analog switches of port X by the timer OC.
  1433. * @rmtoll RI_ASMR1 PA LL_RI_ControlSwitchByTIM\n
  1434. * RI_ASMR1 PB LL_RI_ControlSwitchByTIM\n
  1435. * RI_ASMR1 PC LL_RI_ControlSwitchByTIM\n
  1436. * RI_ASMR1 PF LL_RI_ControlSwitchByTIM\n
  1437. * RI_ASMR1 PG LL_RI_ControlSwitchByTIM\n
  1438. * RI_ASMR2 PA LL_RI_ControlSwitchByTIM\n
  1439. * RI_ASMR2 PB LL_RI_ControlSwitchByTIM\n
  1440. * RI_ASMR2 PC LL_RI_ControlSwitchByTIM\n
  1441. * RI_ASMR2 PF LL_RI_ControlSwitchByTIM\n
  1442. * RI_ASMR2 PG LL_RI_ControlSwitchByTIM\n
  1443. * RI_ASMR3 PA LL_RI_ControlSwitchByTIM\n
  1444. * RI_ASMR3 PB LL_RI_ControlSwitchByTIM\n
  1445. * RI_ASMR3 PC LL_RI_ControlSwitchByTIM\n
  1446. * RI_ASMR3 PF LL_RI_ControlSwitchByTIM\n
  1447. * RI_ASMR3 PG LL_RI_ControlSwitchByTIM\n
  1448. * RI_ASMR4 PA LL_RI_ControlSwitchByTIM\n
  1449. * RI_ASMR4 PB LL_RI_ControlSwitchByTIM\n
  1450. * RI_ASMR4 PC LL_RI_ControlSwitchByTIM\n
  1451. * RI_ASMR4 PF LL_RI_ControlSwitchByTIM\n
  1452. * RI_ASMR4 PG LL_RI_ControlSwitchByTIM\n
  1453. * RI_ASMR5 PA LL_RI_ControlSwitchByTIM\n
  1454. * RI_ASMR5 PB LL_RI_ControlSwitchByTIM\n
  1455. * RI_ASMR5 PC LL_RI_ControlSwitchByTIM\n
  1456. * RI_ASMR5 PF LL_RI_ControlSwitchByTIM\n
  1457. * RI_ASMR5 PG LL_RI_ControlSwitchByTIM
  1458. * @param Port This parameter can be one of the following values:
  1459. * @arg @ref LL_RI_PORT_A
  1460. * @arg @ref LL_RI_PORT_B
  1461. * @arg @ref LL_RI_PORT_C
  1462. * @arg @ref LL_RI_PORT_F (*)
  1463. * @arg @ref LL_RI_PORT_G (*)
  1464. *
  1465. * (*) value not defined in all devices.
  1466. * @param Pin This parameter can be a combination of the following values:
  1467. * @arg @ref LL_RI_PIN_0
  1468. * @arg @ref LL_RI_PIN_1
  1469. * @arg @ref LL_RI_PIN_2
  1470. * @arg @ref LL_RI_PIN_3
  1471. * @arg @ref LL_RI_PIN_4
  1472. * @arg @ref LL_RI_PIN_5
  1473. * @arg @ref LL_RI_PIN_6
  1474. * @arg @ref LL_RI_PIN_7
  1475. * @arg @ref LL_RI_PIN_8
  1476. * @arg @ref LL_RI_PIN_9
  1477. * @arg @ref LL_RI_PIN_10
  1478. * @arg @ref LL_RI_PIN_11
  1479. * @arg @ref LL_RI_PIN_12
  1480. * @arg @ref LL_RI_PIN_13
  1481. * @arg @ref LL_RI_PIN_14
  1482. * @arg @ref LL_RI_PIN_15
  1483. * @arg @ref LL_RI_PIN_ALL
  1484. * @retval None
  1485. */
  1486. __STATIC_INLINE void LL_RI_ControlSwitchByTIM(uint32_t Port, uint32_t Pin)
  1487. {
  1488. __IO uint32_t *reg = (__IO uint32_t *)(uint32_t)((uint32_t)(&RI->ASMR1) + ((Port * 3U) << 2));
  1489. SET_BIT(*reg, Pin);
  1490. }
  1491. #endif /* RI_ASMR1_PA */
  1492. #if defined(RI_CMR1_PA)
  1493. /**
  1494. * @brief Mask the input of port X during the capacitive sensing acquisition.
  1495. * @rmtoll RI_CMR1 PA LL_RI_MaskChannelDuringAcquisition\n
  1496. * RI_CMR1 PB LL_RI_MaskChannelDuringAcquisition\n
  1497. * RI_CMR1 PC LL_RI_MaskChannelDuringAcquisition\n
  1498. * RI_CMR1 PF LL_RI_MaskChannelDuringAcquisition\n
  1499. * RI_CMR1 PG LL_RI_MaskChannelDuringAcquisition\n
  1500. * RI_CMR2 PA LL_RI_MaskChannelDuringAcquisition\n
  1501. * RI_CMR2 PB LL_RI_MaskChannelDuringAcquisition\n
  1502. * RI_CMR2 PC LL_RI_MaskChannelDuringAcquisition\n
  1503. * RI_CMR2 PF LL_RI_MaskChannelDuringAcquisition\n
  1504. * RI_CMR2 PG LL_RI_MaskChannelDuringAcquisition\n
  1505. * RI_CMR3 PA LL_RI_MaskChannelDuringAcquisition\n
  1506. * RI_CMR3 PB LL_RI_MaskChannelDuringAcquisition\n
  1507. * RI_CMR3 PC LL_RI_MaskChannelDuringAcquisition\n
  1508. * RI_CMR3 PF LL_RI_MaskChannelDuringAcquisition\n
  1509. * RI_CMR3 PG LL_RI_MaskChannelDuringAcquisition\n
  1510. * RI_CMR4 PA LL_RI_MaskChannelDuringAcquisition\n
  1511. * RI_CMR4 PB LL_RI_MaskChannelDuringAcquisition\n
  1512. * RI_CMR4 PC LL_RI_MaskChannelDuringAcquisition\n
  1513. * RI_CMR4 PF LL_RI_MaskChannelDuringAcquisition\n
  1514. * RI_CMR4 PG LL_RI_MaskChannelDuringAcquisition\n
  1515. * RI_CMR5 PA LL_RI_MaskChannelDuringAcquisition\n
  1516. * RI_CMR5 PB LL_RI_MaskChannelDuringAcquisition\n
  1517. * RI_CMR5 PC LL_RI_MaskChannelDuringAcquisition\n
  1518. * RI_CMR5 PF LL_RI_MaskChannelDuringAcquisition\n
  1519. * RI_CMR5 PG LL_RI_MaskChannelDuringAcquisition
  1520. * @param Port This parameter can be one of the following values:
  1521. * @arg @ref LL_RI_PORT_A
  1522. * @arg @ref LL_RI_PORT_B
  1523. * @arg @ref LL_RI_PORT_C
  1524. * @arg @ref LL_RI_PORT_F (*)
  1525. * @arg @ref LL_RI_PORT_G (*)
  1526. *
  1527. * (*) value not defined in all devices.
  1528. * @param Pin This parameter can be a combination of the following values:
  1529. * @arg @ref LL_RI_PIN_0
  1530. * @arg @ref LL_RI_PIN_1
  1531. * @arg @ref LL_RI_PIN_2
  1532. * @arg @ref LL_RI_PIN_3
  1533. * @arg @ref LL_RI_PIN_4
  1534. * @arg @ref LL_RI_PIN_5
  1535. * @arg @ref LL_RI_PIN_6
  1536. * @arg @ref LL_RI_PIN_7
  1537. * @arg @ref LL_RI_PIN_8
  1538. * @arg @ref LL_RI_PIN_9
  1539. * @arg @ref LL_RI_PIN_10
  1540. * @arg @ref LL_RI_PIN_11
  1541. * @arg @ref LL_RI_PIN_12
  1542. * @arg @ref LL_RI_PIN_13
  1543. * @arg @ref LL_RI_PIN_14
  1544. * @arg @ref LL_RI_PIN_15
  1545. * @arg @ref LL_RI_PIN_ALL
  1546. * @retval None
  1547. */
  1548. __STATIC_INLINE void LL_RI_MaskChannelDuringAcquisition(uint32_t Port, uint32_t Pin)
  1549. {
  1550. __IO uint32_t *reg = (__IO uint32_t *)(uint32_t)((uint32_t)(&RI->CMR1) + ((Port * 3U) << 2));
  1551. CLEAR_BIT(*reg, Pin);
  1552. }
  1553. #endif /* RI_CMR1_PA */
  1554. #if defined(RI_CMR1_PA)
  1555. /**
  1556. * @brief Unmask the input of port X during the capacitive sensing acquisition.
  1557. * @rmtoll RI_CMR1 PA LL_RI_UnmaskChannelDuringAcquisition\n
  1558. * RI_CMR1 PB LL_RI_UnmaskChannelDuringAcquisition\n
  1559. * RI_CMR1 PC LL_RI_UnmaskChannelDuringAcquisition\n
  1560. * RI_CMR1 PF LL_RI_UnmaskChannelDuringAcquisition\n
  1561. * RI_CMR1 PG LL_RI_UnmaskChannelDuringAcquisition\n
  1562. * RI_CMR2 PA LL_RI_UnmaskChannelDuringAcquisition\n
  1563. * RI_CMR2 PB LL_RI_UnmaskChannelDuringAcquisition\n
  1564. * RI_CMR2 PC LL_RI_UnmaskChannelDuringAcquisition\n
  1565. * RI_CMR2 PF LL_RI_UnmaskChannelDuringAcquisition\n
  1566. * RI_CMR2 PG LL_RI_UnmaskChannelDuringAcquisition\n
  1567. * RI_CMR3 PA LL_RI_UnmaskChannelDuringAcquisition\n
  1568. * RI_CMR3 PB LL_RI_UnmaskChannelDuringAcquisition\n
  1569. * RI_CMR3 PC LL_RI_UnmaskChannelDuringAcquisition\n
  1570. * RI_CMR3 PF LL_RI_UnmaskChannelDuringAcquisition\n
  1571. * RI_CMR3 PG LL_RI_UnmaskChannelDuringAcquisition\n
  1572. * RI_CMR4 PA LL_RI_UnmaskChannelDuringAcquisition\n
  1573. * RI_CMR4 PB LL_RI_UnmaskChannelDuringAcquisition\n
  1574. * RI_CMR4 PC LL_RI_UnmaskChannelDuringAcquisition\n
  1575. * RI_CMR4 PF LL_RI_UnmaskChannelDuringAcquisition\n
  1576. * RI_CMR4 PG LL_RI_UnmaskChannelDuringAcquisition\n
  1577. * RI_CMR5 PA LL_RI_UnmaskChannelDuringAcquisition\n
  1578. * RI_CMR5 PB LL_RI_UnmaskChannelDuringAcquisition\n
  1579. * RI_CMR5 PC LL_RI_UnmaskChannelDuringAcquisition\n
  1580. * RI_CMR5 PF LL_RI_UnmaskChannelDuringAcquisition\n
  1581. * RI_CMR5 PG LL_RI_UnmaskChannelDuringAcquisition
  1582. * @param Port This parameter can be one of the following values:
  1583. * @arg @ref LL_RI_PORT_A
  1584. * @arg @ref LL_RI_PORT_B
  1585. * @arg @ref LL_RI_PORT_C
  1586. * @arg @ref LL_RI_PORT_F (*)
  1587. * @arg @ref LL_RI_PORT_G (*)
  1588. *
  1589. * (*) value not defined in all devices.
  1590. * @param Pin This parameter can be a combination of the following values:
  1591. * @arg @ref LL_RI_PIN_0
  1592. * @arg @ref LL_RI_PIN_1
  1593. * @arg @ref LL_RI_PIN_2
  1594. * @arg @ref LL_RI_PIN_3
  1595. * @arg @ref LL_RI_PIN_4
  1596. * @arg @ref LL_RI_PIN_5
  1597. * @arg @ref LL_RI_PIN_6
  1598. * @arg @ref LL_RI_PIN_7
  1599. * @arg @ref LL_RI_PIN_8
  1600. * @arg @ref LL_RI_PIN_9
  1601. * @arg @ref LL_RI_PIN_10
  1602. * @arg @ref LL_RI_PIN_11
  1603. * @arg @ref LL_RI_PIN_12
  1604. * @arg @ref LL_RI_PIN_13
  1605. * @arg @ref LL_RI_PIN_14
  1606. * @arg @ref LL_RI_PIN_15
  1607. * @arg @ref LL_RI_PIN_ALL
  1608. * @retval None
  1609. */
  1610. __STATIC_INLINE void LL_RI_UnmaskChannelDuringAcquisition(uint32_t Port, uint32_t Pin)
  1611. {
  1612. __IO uint32_t *reg = (__IO uint32_t *)(uint32_t)((uint32_t)(&RI->CMR1) + ((Port * 3U) << 2));
  1613. SET_BIT(*reg, Pin);
  1614. }
  1615. #endif /* RI_CMR1_PA */
  1616. #if defined(RI_CICR1_PA)
  1617. /**
  1618. * @brief Identify channel for timer input capture
  1619. * @rmtoll RI_CICR1 PA LL_RI_IdentifyChannelIO\n
  1620. * RI_CICR1 PB LL_RI_IdentifyChannelIO\n
  1621. * RI_CICR1 PC LL_RI_IdentifyChannelIO\n
  1622. * RI_CICR1 PF LL_RI_IdentifyChannelIO\n
  1623. * RI_CICR1 PG LL_RI_IdentifyChannelIO\n
  1624. * RI_CICR2 PA LL_RI_IdentifyChannelIO\n
  1625. * RI_CICR2 PB LL_RI_IdentifyChannelIO\n
  1626. * RI_CICR2 PC LL_RI_IdentifyChannelIO\n
  1627. * RI_CICR2 PF LL_RI_IdentifyChannelIO\n
  1628. * RI_CICR2 PG LL_RI_IdentifyChannelIO\n
  1629. * RI_CICR3 PA LL_RI_IdentifyChannelIO\n
  1630. * RI_CICR3 PB LL_RI_IdentifyChannelIO\n
  1631. * RI_CICR3 PC LL_RI_IdentifyChannelIO\n
  1632. * RI_CICR3 PF LL_RI_IdentifyChannelIO\n
  1633. * RI_CICR3 PG LL_RI_IdentifyChannelIO\n
  1634. * RI_CICR4 PA LL_RI_IdentifyChannelIO\n
  1635. * RI_CICR4 PB LL_RI_IdentifyChannelIO\n
  1636. * RI_CICR4 PC LL_RI_IdentifyChannelIO\n
  1637. * RI_CICR4 PF LL_RI_IdentifyChannelIO\n
  1638. * RI_CICR4 PG LL_RI_IdentifyChannelIO\n
  1639. * RI_CICR5 PA LL_RI_IdentifyChannelIO\n
  1640. * RI_CICR5 PB LL_RI_IdentifyChannelIO\n
  1641. * RI_CICR5 PC LL_RI_IdentifyChannelIO\n
  1642. * RI_CICR5 PF LL_RI_IdentifyChannelIO\n
  1643. * RI_CICR5 PG LL_RI_IdentifyChannelIO
  1644. * @param Port This parameter can be one of the following values:
  1645. * @arg @ref LL_RI_PORT_A
  1646. * @arg @ref LL_RI_PORT_B
  1647. * @arg @ref LL_RI_PORT_C
  1648. * @arg @ref LL_RI_PORT_F (*)
  1649. * @arg @ref LL_RI_PORT_G (*)
  1650. *
  1651. * (*) value not defined in all devices.
  1652. * @param Pin This parameter can be a combination of the following values:
  1653. * @arg @ref LL_RI_PIN_0
  1654. * @arg @ref LL_RI_PIN_1
  1655. * @arg @ref LL_RI_PIN_2
  1656. * @arg @ref LL_RI_PIN_3
  1657. * @arg @ref LL_RI_PIN_4
  1658. * @arg @ref LL_RI_PIN_5
  1659. * @arg @ref LL_RI_PIN_6
  1660. * @arg @ref LL_RI_PIN_7
  1661. * @arg @ref LL_RI_PIN_8
  1662. * @arg @ref LL_RI_PIN_9
  1663. * @arg @ref LL_RI_PIN_10
  1664. * @arg @ref LL_RI_PIN_11
  1665. * @arg @ref LL_RI_PIN_12
  1666. * @arg @ref LL_RI_PIN_13
  1667. * @arg @ref LL_RI_PIN_14
  1668. * @arg @ref LL_RI_PIN_15
  1669. * @arg @ref LL_RI_PIN_ALL
  1670. * @retval None
  1671. */
  1672. __STATIC_INLINE void LL_RI_IdentifyChannelIO(uint32_t Port, uint32_t Pin)
  1673. {
  1674. __IO uint32_t *reg = (__IO uint32_t *)(uint32_t)((uint32_t)(&RI->CICR1) + ((Port * 3U) << 2));
  1675. CLEAR_BIT(*reg, Pin);
  1676. }
  1677. #endif /* RI_CICR1_PA */
  1678. #if defined(RI_CICR1_PA)
  1679. /**
  1680. * @brief Identify sampling capacitor for timer input capture
  1681. * @rmtoll RI_CICR1 PA LL_RI_IdentifySamplingCapacitorIO\n
  1682. * RI_CICR1 PB LL_RI_IdentifySamplingCapacitorIO\n
  1683. * RI_CICR1 PC LL_RI_IdentifySamplingCapacitorIO\n
  1684. * RI_CICR1 PF LL_RI_IdentifySamplingCapacitorIO\n
  1685. * RI_CICR1 PG LL_RI_IdentifySamplingCapacitorIO\n
  1686. * RI_CICR2 PA LL_RI_IdentifySamplingCapacitorIO\n
  1687. * RI_CICR2 PB LL_RI_IdentifySamplingCapacitorIO\n
  1688. * RI_CICR2 PC LL_RI_IdentifySamplingCapacitorIO\n
  1689. * RI_CICR2 PF LL_RI_IdentifySamplingCapacitorIO\n
  1690. * RI_CICR2 PG LL_RI_IdentifySamplingCapacitorIO\n
  1691. * RI_CICR3 PA LL_RI_IdentifySamplingCapacitorIO\n
  1692. * RI_CICR3 PB LL_RI_IdentifySamplingCapacitorIO\n
  1693. * RI_CICR3 PC LL_RI_IdentifySamplingCapacitorIO\n
  1694. * RI_CICR3 PF LL_RI_IdentifySamplingCapacitorIO\n
  1695. * RI_CICR3 PG LL_RI_IdentifySamplingCapacitorIO\n
  1696. * RI_CICR4 PA LL_RI_IdentifySamplingCapacitorIO\n
  1697. * RI_CICR4 PB LL_RI_IdentifySamplingCapacitorIO\n
  1698. * RI_CICR4 PC LL_RI_IdentifySamplingCapacitorIO\n
  1699. * RI_CICR4 PF LL_RI_IdentifySamplingCapacitorIO\n
  1700. * RI_CICR4 PG LL_RI_IdentifySamplingCapacitorIO\n
  1701. * RI_CICR5 PA LL_RI_IdentifySamplingCapacitorIO\n
  1702. * RI_CICR5 PB LL_RI_IdentifySamplingCapacitorIO\n
  1703. * RI_CICR5 PC LL_RI_IdentifySamplingCapacitorIO\n
  1704. * RI_CICR5 PF LL_RI_IdentifySamplingCapacitorIO\n
  1705. * RI_CICR5 PG LL_RI_IdentifySamplingCapacitorIO
  1706. * @param Port This parameter can be one of the following values:
  1707. * @arg @ref LL_RI_PORT_A
  1708. * @arg @ref LL_RI_PORT_B
  1709. * @arg @ref LL_RI_PORT_C
  1710. * @arg @ref LL_RI_PORT_F (*)
  1711. * @arg @ref LL_RI_PORT_G (*)
  1712. *
  1713. * (*) value not defined in all devices.
  1714. * @param Pin This parameter can be a combination of the following values:
  1715. * @arg @ref LL_RI_PIN_0
  1716. * @arg @ref LL_RI_PIN_1
  1717. * @arg @ref LL_RI_PIN_2
  1718. * @arg @ref LL_RI_PIN_3
  1719. * @arg @ref LL_RI_PIN_4
  1720. * @arg @ref LL_RI_PIN_5
  1721. * @arg @ref LL_RI_PIN_6
  1722. * @arg @ref LL_RI_PIN_7
  1723. * @arg @ref LL_RI_PIN_8
  1724. * @arg @ref LL_RI_PIN_9
  1725. * @arg @ref LL_RI_PIN_10
  1726. * @arg @ref LL_RI_PIN_11
  1727. * @arg @ref LL_RI_PIN_12
  1728. * @arg @ref LL_RI_PIN_13
  1729. * @arg @ref LL_RI_PIN_14
  1730. * @arg @ref LL_RI_PIN_15
  1731. * @arg @ref LL_RI_PIN_ALL
  1732. * @retval None
  1733. */
  1734. __STATIC_INLINE void LL_RI_IdentifySamplingCapacitorIO(uint32_t Port, uint32_t Pin)
  1735. {
  1736. __IO uint32_t *reg = (__IO uint32_t *)(uint32_t)((uint32_t)(&RI->CICR1) + ((Port * 3U) << 2));
  1737. SET_BIT(*reg, Pin);
  1738. }
  1739. #endif /* RI_CICR1_PA */
  1740. /**
  1741. * @}
  1742. */
  1743. /** @defgroup SYSTEM_LL_EF_FLASH FLASH
  1744. * @{
  1745. */
  1746. /**
  1747. * @brief Set FLASH Latency
  1748. * @note Latetency can be modified only when ACC64 is set. (through function @ref LL_FLASH_Enable64bitAccess)
  1749. * @rmtoll FLASH_ACR LATENCY LL_FLASH_SetLatency
  1750. * @param Latency This parameter can be one of the following values:
  1751. * @arg @ref LL_FLASH_LATENCY_0
  1752. * @arg @ref LL_FLASH_LATENCY_1
  1753. * @retval None
  1754. */
  1755. __STATIC_INLINE void LL_FLASH_SetLatency(uint32_t Latency)
  1756. {
  1757. MODIFY_REG(FLASH->ACR, FLASH_ACR_LATENCY, Latency);
  1758. }
  1759. /**
  1760. * @brief Get FLASH Latency
  1761. * @rmtoll FLASH_ACR LATENCY LL_FLASH_GetLatency
  1762. * @retval Returned value can be one of the following values:
  1763. * @arg @ref LL_FLASH_LATENCY_0
  1764. * @arg @ref LL_FLASH_LATENCY_1
  1765. */
  1766. __STATIC_INLINE uint32_t LL_FLASH_GetLatency(void)
  1767. {
  1768. return (uint32_t)(READ_BIT(FLASH->ACR, FLASH_ACR_LATENCY));
  1769. }
  1770. /**
  1771. * @brief Enable Prefetch
  1772. * @note Prefetch can be enabled only when ACC64 is set. (through function @ref LL_FLASH_Enable64bitAccess)
  1773. * @rmtoll FLASH_ACR PRFTEN LL_FLASH_EnablePrefetch
  1774. * @retval None
  1775. */
  1776. __STATIC_INLINE void LL_FLASH_EnablePrefetch(void)
  1777. {
  1778. SET_BIT(FLASH->ACR, FLASH_ACR_PRFTEN);
  1779. }
  1780. /**
  1781. * @brief Disable Prefetch
  1782. * @note Prefetch can be disabled only when ACC64 is set. (through function @ref LL_FLASH_Enable64bitAccess)
  1783. * @rmtoll FLASH_ACR PRFTEN LL_FLASH_DisablePrefetch
  1784. * @retval None
  1785. */
  1786. __STATIC_INLINE void LL_FLASH_DisablePrefetch(void)
  1787. {
  1788. CLEAR_BIT(FLASH->ACR, FLASH_ACR_PRFTEN);
  1789. }
  1790. /**
  1791. * @brief Check if Prefetch buffer is enabled
  1792. * @rmtoll FLASH_ACR PRFTEN LL_FLASH_IsPrefetchEnabled
  1793. * @retval State of bit (1 or 0).
  1794. */
  1795. __STATIC_INLINE uint32_t LL_FLASH_IsPrefetchEnabled(void)
  1796. {
  1797. return ((READ_BIT(FLASH->ACR, FLASH_ACR_PRFTEN) == FLASH_ACR_PRFTEN) ? 1UL : 0UL);
  1798. }
  1799. /**
  1800. * @brief Enable 64-bit access
  1801. * @rmtoll FLASH_ACR ACC64 LL_FLASH_Enable64bitAccess
  1802. * @retval None
  1803. */
  1804. __STATIC_INLINE void LL_FLASH_Enable64bitAccess(void)
  1805. {
  1806. SET_BIT(FLASH->ACR, FLASH_ACR_ACC64);
  1807. }
  1808. /**
  1809. * @brief Disable 64-bit access
  1810. * @rmtoll FLASH_ACR ACC64 LL_FLASH_Disable64bitAccess
  1811. * @retval None
  1812. */
  1813. __STATIC_INLINE void LL_FLASH_Disable64bitAccess(void)
  1814. {
  1815. CLEAR_BIT(FLASH->ACR, FLASH_ACR_ACC64);
  1816. }
  1817. /**
  1818. * @brief Check if 64-bit access is enabled
  1819. * @rmtoll FLASH_ACR ACC64 LL_FLASH_Is64bitAccessEnabled
  1820. * @retval State of bit (1 or 0).
  1821. */
  1822. __STATIC_INLINE uint32_t LL_FLASH_Is64bitAccessEnabled(void)
  1823. {
  1824. return ((READ_BIT(FLASH->ACR, FLASH_ACR_ACC64) == FLASH_ACR_ACC64) ? 1UL : 0UL);
  1825. }
  1826. /**
  1827. * @brief Enable Flash Power-down mode during run mode or Low-power run mode
  1828. * @note Flash memory can be put in power-down mode only when the code is executed
  1829. * from RAM
  1830. * @note Flash must not be accessed when power down is enabled
  1831. * @note Flash must not be put in power-down while a program or an erase operation
  1832. * is on-going
  1833. * @rmtoll FLASH_ACR RUN_PD LL_FLASH_EnableRunPowerDown\n
  1834. * FLASH_PDKEYR PDKEY1 LL_FLASH_EnableRunPowerDown\n
  1835. * FLASH_PDKEYR PDKEY2 LL_FLASH_EnableRunPowerDown
  1836. * @retval None
  1837. */
  1838. __STATIC_INLINE void LL_FLASH_EnableRunPowerDown(void)
  1839. {
  1840. /* Following values must be written consecutively to unlock the RUN_PD bit in
  1841. FLASH_ACR */
  1842. WRITE_REG(FLASH->PDKEYR, FLASH_PDKEY1);
  1843. WRITE_REG(FLASH->PDKEYR, FLASH_PDKEY2);
  1844. SET_BIT(FLASH->ACR, FLASH_ACR_RUN_PD);
  1845. }
  1846. /**
  1847. * @brief Disable Flash Power-down mode during run mode or Low-power run mode
  1848. * @rmtoll FLASH_ACR RUN_PD LL_FLASH_DisableRunPowerDown\n
  1849. * FLASH_PDKEYR PDKEY1 LL_FLASH_DisableRunPowerDown\n
  1850. * FLASH_PDKEYR PDKEY2 LL_FLASH_DisableRunPowerDown
  1851. * @retval None
  1852. */
  1853. __STATIC_INLINE void LL_FLASH_DisableRunPowerDown(void)
  1854. {
  1855. /* Following values must be written consecutively to unlock the RUN_PD bit in
  1856. FLASH_ACR */
  1857. WRITE_REG(FLASH->PDKEYR, FLASH_PDKEY1);
  1858. WRITE_REG(FLASH->PDKEYR, FLASH_PDKEY2);
  1859. CLEAR_BIT(FLASH->ACR, FLASH_ACR_RUN_PD);
  1860. }
  1861. /**
  1862. * @brief Enable Flash Power-down mode during Sleep or Low-power sleep mode
  1863. * @note Flash must not be put in power-down while a program or an erase operation
  1864. * is on-going
  1865. * @rmtoll FLASH_ACR SLEEP_PD LL_FLASH_EnableSleepPowerDown
  1866. * @retval None
  1867. */
  1868. __STATIC_INLINE void LL_FLASH_EnableSleepPowerDown(void)
  1869. {
  1870. SET_BIT(FLASH->ACR, FLASH_ACR_SLEEP_PD);
  1871. }
  1872. /**
  1873. * @brief Disable Flash Power-down mode during Sleep or Low-power sleep mode
  1874. * @rmtoll FLASH_ACR SLEEP_PD LL_FLASH_DisableSleepPowerDown
  1875. * @retval None
  1876. */
  1877. __STATIC_INLINE void LL_FLASH_DisableSleepPowerDown(void)
  1878. {
  1879. CLEAR_BIT(FLASH->ACR, FLASH_ACR_SLEEP_PD);
  1880. }
  1881. /**
  1882. * @}
  1883. */
  1884. /**
  1885. * @}
  1886. */
  1887. /**
  1888. * @}
  1889. */
  1890. #endif /* defined (FLASH) || defined (SYSCFG) || defined (DBGMCU) || defined(RI) */
  1891. /**
  1892. * @}
  1893. */
  1894. #ifdef __cplusplus
  1895. }
  1896. #endif
  1897. #endif /* __STM32L1xx_LL_SYSTEM_H */
  1898. /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/