stm32l4xx_hal.h 33 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726
  1. /**
  2. ******************************************************************************
  3. * @file stm32l4xx_hal.h
  4. * @author MCD Application Team
  5. * @brief This file contains all the functions prototypes for the HAL
  6. * module driver.
  7. ******************************************************************************
  8. * @attention
  9. *
  10. * Copyright (c) 2017 STMicroelectronics.
  11. * All rights reserved.
  12. *
  13. * This software is licensed under terms that can be found in the LICENSE file
  14. * in the root directory of this software component.
  15. * If no LICENSE file comes with this software, it is provided AS-IS.
  16. *
  17. ******************************************************************************
  18. */
  19. /* Define to prevent recursive inclusion -------------------------------------*/
  20. #ifndef STM32L4xx_HAL_H
  21. #define STM32L4xx_HAL_H
  22. #ifdef __cplusplus
  23. extern "C" {
  24. #endif
  25. /* Includes ------------------------------------------------------------------*/
  26. #include "stm32l4xx_hal_conf.h"
  27. /** @addtogroup STM32L4xx_HAL_Driver
  28. * @{
  29. */
  30. /** @addtogroup HAL
  31. * @{
  32. */
  33. /* Exported types ------------------------------------------------------------*/
  34. /** @defgroup HAL_Exported_Types HAL Exported Types
  35. * @{
  36. */
  37. /** @defgroup HAL_TICK_FREQ Tick Frequency
  38. * @{
  39. */
  40. typedef enum
  41. {
  42. HAL_TICK_FREQ_10HZ = 100U,
  43. HAL_TICK_FREQ_100HZ = 10U,
  44. HAL_TICK_FREQ_1KHZ = 1U,
  45. HAL_TICK_FREQ_DEFAULT = HAL_TICK_FREQ_1KHZ
  46. } HAL_TickFreqTypeDef;
  47. /**
  48. * @}
  49. */
  50. /**
  51. * @}
  52. */
  53. /* Exported constants --------------------------------------------------------*/
  54. /** @defgroup HAL_Exported_Constants HAL Exported Constants
  55. * @{
  56. */
  57. /** @defgroup SYSCFG_Exported_Constants SYSCFG Exported Constants
  58. * @{
  59. */
  60. /** @defgroup SYSCFG_BootMode Boot Mode
  61. * @{
  62. */
  63. #define SYSCFG_BOOT_MAINFLASH 0U
  64. #define SYSCFG_BOOT_SYSTEMFLASH SYSCFG_MEMRMP_MEM_MODE_0
  65. #if defined (STM32L471xx) || defined (STM32L475xx) || defined (STM32L476xx) || defined (STM32L485xx) || defined (STM32L486xx) || \
  66. defined (STM32L496xx) || defined (STM32L4A6xx) || \
  67. defined (STM32L4P5xx) || defined (STM32L4Q5xx) || \
  68. defined (STM32L4R5xx) || defined (STM32L4R7xx) || defined (STM32L4R9xx) || defined (STM32L4S5xx) || defined (STM32L4S7xx) || defined (STM32L4S9xx)
  69. #define SYSCFG_BOOT_FMC SYSCFG_MEMRMP_MEM_MODE_1
  70. #endif /* STM32L471xx || STM32L475xx || STM32L476xx || STM32L485xx || STM32L486xx || */
  71. /* STM32L496xx || STM32L4A6xx || */
  72. /* STM32L4P5xx || STM32L4Q5xx || */
  73. /* STM32L4R5xx || STM32L4R7xx || STM32L4R9xx || STM32L4S5xx || STM32L4S7xx || STM32L4S9xx */
  74. #define SYSCFG_BOOT_SRAM (SYSCFG_MEMRMP_MEM_MODE_1 | SYSCFG_MEMRMP_MEM_MODE_0)
  75. #if defined (STM32L4P5xx) || defined (STM32L4Q5xx) || defined (STM32L4R5xx) || defined (STM32L4R7xx) || defined (STM32L4R9xx) || defined (STM32L4S5xx) || defined (STM32L4S7xx) || defined (STM32L4S9xx)
  76. #define SYSCFG_BOOT_OCTOPSPI1 (SYSCFG_MEMRMP_MEM_MODE_2)
  77. #define SYSCFG_BOOT_OCTOPSPI2 (SYSCFG_MEMRMP_MEM_MODE_2 | SYSCFG_MEMRMP_MEM_MODE_0)
  78. #else
  79. #define SYSCFG_BOOT_QUADSPI (SYSCFG_MEMRMP_MEM_MODE_2 | SYSCFG_MEMRMP_MEM_MODE_1)
  80. #endif /* STM32L4P5xx || STM32L4Q5xx || STM32L4R5xx || STM32L4R7xx || STM32L4R9xx || STM32L4S5xx || STM32L4S7xx || STM32L4S9xx */
  81. /**
  82. * @}
  83. */
  84. /** @defgroup SYSCFG_FPU_Interrupts FPU Interrupts
  85. * @{
  86. */
  87. #define SYSCFG_IT_FPU_IOC SYSCFG_CFGR1_FPU_IE_0 /*!< Floating Point Unit Invalid operation Interrupt */
  88. #define SYSCFG_IT_FPU_DZC SYSCFG_CFGR1_FPU_IE_1 /*!< Floating Point Unit Divide-by-zero Interrupt */
  89. #define SYSCFG_IT_FPU_UFC SYSCFG_CFGR1_FPU_IE_2 /*!< Floating Point Unit Underflow Interrupt */
  90. #define SYSCFG_IT_FPU_OFC SYSCFG_CFGR1_FPU_IE_3 /*!< Floating Point Unit Overflow Interrupt */
  91. #define SYSCFG_IT_FPU_IDC SYSCFG_CFGR1_FPU_IE_4 /*!< Floating Point Unit Input denormal Interrupt */
  92. #define SYSCFG_IT_FPU_IXC SYSCFG_CFGR1_FPU_IE_5 /*!< Floating Point Unit Inexact Interrupt */
  93. /**
  94. * @}
  95. */
  96. /** @defgroup SYSCFG_SRAM2WRP SRAM2 Page Write protection (0 to 31)
  97. * @{
  98. */
  99. #define SYSCFG_SRAM2WRP_PAGE0 SYSCFG_SWPR_PAGE0 /*!< SRAM2 Write protection page 0 */
  100. #define SYSCFG_SRAM2WRP_PAGE1 SYSCFG_SWPR_PAGE1 /*!< SRAM2 Write protection page 1 */
  101. #define SYSCFG_SRAM2WRP_PAGE2 SYSCFG_SWPR_PAGE2 /*!< SRAM2 Write protection page 2 */
  102. #define SYSCFG_SRAM2WRP_PAGE3 SYSCFG_SWPR_PAGE3 /*!< SRAM2 Write protection page 3 */
  103. #define SYSCFG_SRAM2WRP_PAGE4 SYSCFG_SWPR_PAGE4 /*!< SRAM2 Write protection page 4 */
  104. #define SYSCFG_SRAM2WRP_PAGE5 SYSCFG_SWPR_PAGE5 /*!< SRAM2 Write protection page 5 */
  105. #define SYSCFG_SRAM2WRP_PAGE6 SYSCFG_SWPR_PAGE6 /*!< SRAM2 Write protection page 6 */
  106. #define SYSCFG_SRAM2WRP_PAGE7 SYSCFG_SWPR_PAGE7 /*!< SRAM2 Write protection page 7 */
  107. #define SYSCFG_SRAM2WRP_PAGE8 SYSCFG_SWPR_PAGE8 /*!< SRAM2 Write protection page 8 */
  108. #define SYSCFG_SRAM2WRP_PAGE9 SYSCFG_SWPR_PAGE9 /*!< SRAM2 Write protection page 9 */
  109. #define SYSCFG_SRAM2WRP_PAGE10 SYSCFG_SWPR_PAGE10 /*!< SRAM2 Write protection page 10 */
  110. #define SYSCFG_SRAM2WRP_PAGE11 SYSCFG_SWPR_PAGE11 /*!< SRAM2 Write protection page 11 */
  111. #define SYSCFG_SRAM2WRP_PAGE12 SYSCFG_SWPR_PAGE12 /*!< SRAM2 Write protection page 12 */
  112. #define SYSCFG_SRAM2WRP_PAGE13 SYSCFG_SWPR_PAGE13 /*!< SRAM2 Write protection page 13 */
  113. #define SYSCFG_SRAM2WRP_PAGE14 SYSCFG_SWPR_PAGE14 /*!< SRAM2 Write protection page 14 */
  114. #define SYSCFG_SRAM2WRP_PAGE15 SYSCFG_SWPR_PAGE15 /*!< SRAM2 Write protection page 15 */
  115. #if defined(SYSCFG_SWPR_PAGE31)
  116. #define SYSCFG_SRAM2WRP_PAGE16 SYSCFG_SWPR_PAGE16 /*!< SRAM2 Write protection page 16 */
  117. #define SYSCFG_SRAM2WRP_PAGE17 SYSCFG_SWPR_PAGE17 /*!< SRAM2 Write protection page 17 */
  118. #define SYSCFG_SRAM2WRP_PAGE18 SYSCFG_SWPR_PAGE18 /*!< SRAM2 Write protection page 18 */
  119. #define SYSCFG_SRAM2WRP_PAGE19 SYSCFG_SWPR_PAGE19 /*!< SRAM2 Write protection page 19 */
  120. #define SYSCFG_SRAM2WRP_PAGE20 SYSCFG_SWPR_PAGE20 /*!< SRAM2 Write protection page 20 */
  121. #define SYSCFG_SRAM2WRP_PAGE21 SYSCFG_SWPR_PAGE21 /*!< SRAM2 Write protection page 21 */
  122. #define SYSCFG_SRAM2WRP_PAGE22 SYSCFG_SWPR_PAGE22 /*!< SRAM2 Write protection page 22 */
  123. #define SYSCFG_SRAM2WRP_PAGE23 SYSCFG_SWPR_PAGE23 /*!< SRAM2 Write protection page 23 */
  124. #define SYSCFG_SRAM2WRP_PAGE24 SYSCFG_SWPR_PAGE24 /*!< SRAM2 Write protection page 24 */
  125. #define SYSCFG_SRAM2WRP_PAGE25 SYSCFG_SWPR_PAGE25 /*!< SRAM2 Write protection page 25 */
  126. #define SYSCFG_SRAM2WRP_PAGE26 SYSCFG_SWPR_PAGE26 /*!< SRAM2 Write protection page 26 */
  127. #define SYSCFG_SRAM2WRP_PAGE27 SYSCFG_SWPR_PAGE27 /*!< SRAM2 Write protection page 27 */
  128. #define SYSCFG_SRAM2WRP_PAGE28 SYSCFG_SWPR_PAGE28 /*!< SRAM2 Write protection page 28 */
  129. #define SYSCFG_SRAM2WRP_PAGE29 SYSCFG_SWPR_PAGE29 /*!< SRAM2 Write protection page 29 */
  130. #define SYSCFG_SRAM2WRP_PAGE30 SYSCFG_SWPR_PAGE30 /*!< SRAM2 Write protection page 30 */
  131. #define SYSCFG_SRAM2WRP_PAGE31 SYSCFG_SWPR_PAGE31 /*!< SRAM2 Write protection page 31 */
  132. #endif /* SYSCFG_SWPR_PAGE31 */
  133. /**
  134. * @}
  135. */
  136. #if defined(SYSCFG_SWPR2_PAGE63)
  137. /** @defgroup SYSCFG_SRAM2WRP_32_63 SRAM2 Page Write protection (32 to 63)
  138. * @{
  139. */
  140. #define SYSCFG_SRAM2WRP_PAGE32 SYSCFG_SWPR2_PAGE32 /*!< SRAM2 Write protection page 32 */
  141. #define SYSCFG_SRAM2WRP_PAGE33 SYSCFG_SWPR2_PAGE33 /*!< SRAM2 Write protection page 33 */
  142. #define SYSCFG_SRAM2WRP_PAGE34 SYSCFG_SWPR2_PAGE34 /*!< SRAM2 Write protection page 34 */
  143. #define SYSCFG_SRAM2WRP_PAGE35 SYSCFG_SWPR2_PAGE35 /*!< SRAM2 Write protection page 35 */
  144. #define SYSCFG_SRAM2WRP_PAGE36 SYSCFG_SWPR2_PAGE36 /*!< SRAM2 Write protection page 36 */
  145. #define SYSCFG_SRAM2WRP_PAGE37 SYSCFG_SWPR2_PAGE37 /*!< SRAM2 Write protection page 37 */
  146. #define SYSCFG_SRAM2WRP_PAGE38 SYSCFG_SWPR2_PAGE38 /*!< SRAM2 Write protection page 38 */
  147. #define SYSCFG_SRAM2WRP_PAGE39 SYSCFG_SWPR2_PAGE39 /*!< SRAM2 Write protection page 39 */
  148. #define SYSCFG_SRAM2WRP_PAGE40 SYSCFG_SWPR2_PAGE40 /*!< SRAM2 Write protection page 40 */
  149. #define SYSCFG_SRAM2WRP_PAGE41 SYSCFG_SWPR2_PAGE41 /*!< SRAM2 Write protection page 41 */
  150. #define SYSCFG_SRAM2WRP_PAGE42 SYSCFG_SWPR2_PAGE42 /*!< SRAM2 Write protection page 42 */
  151. #define SYSCFG_SRAM2WRP_PAGE43 SYSCFG_SWPR2_PAGE43 /*!< SRAM2 Write protection page 43 */
  152. #define SYSCFG_SRAM2WRP_PAGE44 SYSCFG_SWPR2_PAGE44 /*!< SRAM2 Write protection page 44 */
  153. #define SYSCFG_SRAM2WRP_PAGE45 SYSCFG_SWPR2_PAGE45 /*!< SRAM2 Write protection page 45 */
  154. #define SYSCFG_SRAM2WRP_PAGE46 SYSCFG_SWPR2_PAGE46 /*!< SRAM2 Write protection page 46 */
  155. #define SYSCFG_SRAM2WRP_PAGE47 SYSCFG_SWPR2_PAGE47 /*!< SRAM2 Write protection page 47 */
  156. #define SYSCFG_SRAM2WRP_PAGE48 SYSCFG_SWPR2_PAGE48 /*!< SRAM2 Write protection page 48 */
  157. #define SYSCFG_SRAM2WRP_PAGE49 SYSCFG_SWPR2_PAGE49 /*!< SRAM2 Write protection page 49 */
  158. #define SYSCFG_SRAM2WRP_PAGE50 SYSCFG_SWPR2_PAGE50 /*!< SRAM2 Write protection page 50 */
  159. #define SYSCFG_SRAM2WRP_PAGE51 SYSCFG_SWPR2_PAGE51 /*!< SRAM2 Write protection page 51 */
  160. #define SYSCFG_SRAM2WRP_PAGE52 SYSCFG_SWPR2_PAGE52 /*!< SRAM2 Write protection page 52 */
  161. #define SYSCFG_SRAM2WRP_PAGE53 SYSCFG_SWPR2_PAGE53 /*!< SRAM2 Write protection page 53 */
  162. #define SYSCFG_SRAM2WRP_PAGE54 SYSCFG_SWPR2_PAGE54 /*!< SRAM2 Write protection page 54 */
  163. #define SYSCFG_SRAM2WRP_PAGE55 SYSCFG_SWPR2_PAGE55 /*!< SRAM2 Write protection page 55 */
  164. #define SYSCFG_SRAM2WRP_PAGE56 SYSCFG_SWPR2_PAGE56 /*!< SRAM2 Write protection page 56 */
  165. #define SYSCFG_SRAM2WRP_PAGE57 SYSCFG_SWPR2_PAGE57 /*!< SRAM2 Write protection page 57 */
  166. #define SYSCFG_SRAM2WRP_PAGE58 SYSCFG_SWPR2_PAGE58 /*!< SRAM2 Write protection page 58 */
  167. #define SYSCFG_SRAM2WRP_PAGE59 SYSCFG_SWPR2_PAGE59 /*!< SRAM2 Write protection page 59 */
  168. #define SYSCFG_SRAM2WRP_PAGE60 SYSCFG_SWPR2_PAGE60 /*!< SRAM2 Write protection page 60 */
  169. #define SYSCFG_SRAM2WRP_PAGE61 SYSCFG_SWPR2_PAGE61 /*!< SRAM2 Write protection page 61 */
  170. #define SYSCFG_SRAM2WRP_PAGE62 SYSCFG_SWPR2_PAGE62 /*!< SRAM2 Write protection page 62 */
  171. #define SYSCFG_SRAM2WRP_PAGE63 SYSCFG_SWPR2_PAGE63 /*!< SRAM2 Write protection page 63 */
  172. /**
  173. * @}
  174. */
  175. #endif /* SYSCFG_SWPR2_PAGE63 */
  176. #if defined(VREFBUF)
  177. /** @defgroup SYSCFG_VREFBUF_VoltageScale VREFBUF Voltage Scale
  178. * @{
  179. */
  180. #define SYSCFG_VREFBUF_VOLTAGE_SCALE0 0U /*!< Voltage reference scale 0 (VREF_OUT1) */
  181. #define SYSCFG_VREFBUF_VOLTAGE_SCALE1 VREFBUF_CSR_VRS /*!< Voltage reference scale 1 (VREF_OUT2) */
  182. /**
  183. * @}
  184. */
  185. /** @defgroup SYSCFG_VREFBUF_HighImpedance VREFBUF High Impedance
  186. * @{
  187. */
  188. #define SYSCFG_VREFBUF_HIGH_IMPEDANCE_DISABLE 0U /*!< VREF_plus pin is internally connected to Voltage reference buffer output */
  189. #define SYSCFG_VREFBUF_HIGH_IMPEDANCE_ENABLE VREFBUF_CSR_HIZ /*!< VREF_plus pin is high impedance */
  190. /**
  191. * @}
  192. */
  193. #endif /* VREFBUF */
  194. /** @defgroup SYSCFG_flags_definition Flags
  195. * @{
  196. */
  197. #define SYSCFG_FLAG_SRAM2_PE SYSCFG_CFGR2_SPF /*!< SRAM2 parity error */
  198. #define SYSCFG_FLAG_SRAM2_BUSY SYSCFG_SCSR_SRAM2BSY /*!< SRAM2 busy by erase operation */
  199. /**
  200. * @}
  201. */
  202. /** @defgroup SYSCFG_FastModePlus_GPIO Fast-mode Plus on GPIO
  203. * @{
  204. */
  205. /** @brief Fast-mode Plus driving capability on a specific GPIO
  206. */
  207. #define SYSCFG_FASTMODEPLUS_PB6 SYSCFG_CFGR1_I2C_PB6_FMP /*!< Enable Fast-mode Plus on PB6 */
  208. #define SYSCFG_FASTMODEPLUS_PB7 SYSCFG_CFGR1_I2C_PB7_FMP /*!< Enable Fast-mode Plus on PB7 */
  209. #if defined(SYSCFG_CFGR1_I2C_PB8_FMP)
  210. #define SYSCFG_FASTMODEPLUS_PB8 SYSCFG_CFGR1_I2C_PB8_FMP /*!< Enable Fast-mode Plus on PB8 */
  211. #endif /* SYSCFG_CFGR1_I2C_PB8_FMP */
  212. #if defined(SYSCFG_CFGR1_I2C_PB9_FMP)
  213. #define SYSCFG_FASTMODEPLUS_PB9 SYSCFG_CFGR1_I2C_PB9_FMP /*!< Enable Fast-mode Plus on PB9 */
  214. #endif /* SYSCFG_CFGR1_I2C_PB9_FMP */
  215. /**
  216. * @}
  217. */
  218. /**
  219. * @}
  220. */
  221. /**
  222. * @}
  223. */
  224. /* Exported macros -----------------------------------------------------------*/
  225. /** @defgroup HAL_Exported_Macros HAL Exported Macros
  226. * @{
  227. */
  228. /** @defgroup DBGMCU_Exported_Macros DBGMCU Exported Macros
  229. * @{
  230. */
  231. /** @brief Freeze/Unfreeze Peripherals in Debug mode
  232. */
  233. #if defined(DBGMCU_APB1FZR1_DBG_TIM2_STOP)
  234. #define __HAL_DBGMCU_FREEZE_TIM2() SET_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_TIM2_STOP)
  235. #define __HAL_DBGMCU_UNFREEZE_TIM2() CLEAR_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_TIM2_STOP)
  236. #endif
  237. #if defined(DBGMCU_APB1FZR1_DBG_TIM3_STOP)
  238. #define __HAL_DBGMCU_FREEZE_TIM3() SET_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_TIM3_STOP)
  239. #define __HAL_DBGMCU_UNFREEZE_TIM3() CLEAR_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_TIM3_STOP)
  240. #endif
  241. #if defined(DBGMCU_APB1FZR1_DBG_TIM4_STOP)
  242. #define __HAL_DBGMCU_FREEZE_TIM4() SET_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_TIM4_STOP)
  243. #define __HAL_DBGMCU_UNFREEZE_TIM4() CLEAR_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_TIM4_STOP)
  244. #endif
  245. #if defined(DBGMCU_APB1FZR1_DBG_TIM5_STOP)
  246. #define __HAL_DBGMCU_FREEZE_TIM5() SET_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_TIM5_STOP)
  247. #define __HAL_DBGMCU_UNFREEZE_TIM5() CLEAR_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_TIM5_STOP)
  248. #endif
  249. #if defined(DBGMCU_APB1FZR1_DBG_TIM6_STOP)
  250. #define __HAL_DBGMCU_FREEZE_TIM6() SET_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_TIM6_STOP)
  251. #define __HAL_DBGMCU_UNFREEZE_TIM6() CLEAR_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_TIM6_STOP)
  252. #endif
  253. #if defined(DBGMCU_APB1FZR1_DBG_TIM7_STOP)
  254. #define __HAL_DBGMCU_FREEZE_TIM7() SET_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_TIM7_STOP)
  255. #define __HAL_DBGMCU_UNFREEZE_TIM7() CLEAR_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_TIM7_STOP)
  256. #endif
  257. #if defined(DBGMCU_APB1FZR1_DBG_RTC_STOP)
  258. #define __HAL_DBGMCU_FREEZE_RTC() SET_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_RTC_STOP)
  259. #define __HAL_DBGMCU_UNFREEZE_RTC() CLEAR_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_RTC_STOP)
  260. #endif
  261. #if defined(DBGMCU_APB1FZR1_DBG_WWDG_STOP)
  262. #define __HAL_DBGMCU_FREEZE_WWDG() SET_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_WWDG_STOP)
  263. #define __HAL_DBGMCU_UNFREEZE_WWDG() CLEAR_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_WWDG_STOP)
  264. #endif
  265. #if defined(DBGMCU_APB1FZR1_DBG_IWDG_STOP)
  266. #define __HAL_DBGMCU_FREEZE_IWDG() SET_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_IWDG_STOP)
  267. #define __HAL_DBGMCU_UNFREEZE_IWDG() CLEAR_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_IWDG_STOP)
  268. #endif
  269. #if defined(DBGMCU_APB1FZR1_DBG_I2C1_STOP)
  270. #define __HAL_DBGMCU_FREEZE_I2C1_TIMEOUT() SET_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_I2C1_STOP)
  271. #define __HAL_DBGMCU_UNFREEZE_I2C1_TIMEOUT() CLEAR_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_I2C1_STOP)
  272. #endif
  273. #if defined(DBGMCU_APB1FZR1_DBG_I2C2_STOP)
  274. #define __HAL_DBGMCU_FREEZE_I2C2_TIMEOUT() SET_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_I2C2_STOP)
  275. #define __HAL_DBGMCU_UNFREEZE_I2C2_TIMEOUT() CLEAR_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_I2C2_STOP)
  276. #endif
  277. #if defined(DBGMCU_APB1FZR1_DBG_I2C3_STOP)
  278. #define __HAL_DBGMCU_FREEZE_I2C3_TIMEOUT() SET_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_I2C3_STOP)
  279. #define __HAL_DBGMCU_UNFREEZE_I2C3_TIMEOUT() CLEAR_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_I2C3_STOP)
  280. #endif
  281. #if defined(DBGMCU_APB1FZR2_DBG_I2C4_STOP)
  282. #define __HAL_DBGMCU_FREEZE_I2C4_TIMEOUT() SET_BIT(DBGMCU->APB1FZR2, DBGMCU_APB1FZR2_DBG_I2C4_STOP)
  283. #define __HAL_DBGMCU_UNFREEZE_I2C4_TIMEOUT() CLEAR_BIT(DBGMCU->APB1FZR2, DBGMCU_APB1FZR2_DBG_I2C4_STOP)
  284. #endif
  285. #if defined(DBGMCU_APB1FZR1_DBG_CAN_STOP)
  286. #define __HAL_DBGMCU_FREEZE_CAN1() SET_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_CAN_STOP)
  287. #define __HAL_DBGMCU_UNFREEZE_CAN1() CLEAR_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_CAN_STOP)
  288. #endif
  289. #if defined(DBGMCU_APB1FZR1_DBG_CAN2_STOP)
  290. #define __HAL_DBGMCU_FREEZE_CAN2() SET_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_CAN2_STOP)
  291. #define __HAL_DBGMCU_UNFREEZE_CAN2() CLEAR_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_CAN2_STOP)
  292. #endif
  293. #if defined(DBGMCU_APB1FZR1_DBG_LPTIM1_STOP)
  294. #define __HAL_DBGMCU_FREEZE_LPTIM1() SET_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_LPTIM1_STOP)
  295. #define __HAL_DBGMCU_UNFREEZE_LPTIM1() CLEAR_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_LPTIM1_STOP)
  296. #endif
  297. #if defined(DBGMCU_APB1FZR2_DBG_LPTIM2_STOP)
  298. #define __HAL_DBGMCU_FREEZE_LPTIM2() SET_BIT(DBGMCU->APB1FZR2, DBGMCU_APB1FZR2_DBG_LPTIM2_STOP)
  299. #define __HAL_DBGMCU_UNFREEZE_LPTIM2() CLEAR_BIT(DBGMCU->APB1FZR2, DBGMCU_APB1FZR2_DBG_LPTIM2_STOP)
  300. #endif
  301. #if defined(DBGMCU_APB2FZ_DBG_TIM1_STOP)
  302. #define __HAL_DBGMCU_FREEZE_TIM1() SET_BIT(DBGMCU->APB2FZ, DBGMCU_APB2FZ_DBG_TIM1_STOP)
  303. #define __HAL_DBGMCU_UNFREEZE_TIM1() CLEAR_BIT(DBGMCU->APB2FZ, DBGMCU_APB2FZ_DBG_TIM1_STOP)
  304. #endif
  305. #if defined(DBGMCU_APB2FZ_DBG_TIM8_STOP)
  306. #define __HAL_DBGMCU_FREEZE_TIM8() SET_BIT(DBGMCU->APB2FZ, DBGMCU_APB2FZ_DBG_TIM8_STOP)
  307. #define __HAL_DBGMCU_UNFREEZE_TIM8() CLEAR_BIT(DBGMCU->APB2FZ, DBGMCU_APB2FZ_DBG_TIM8_STOP)
  308. #endif
  309. #if defined(DBGMCU_APB2FZ_DBG_TIM15_STOP)
  310. #define __HAL_DBGMCU_FREEZE_TIM15() SET_BIT(DBGMCU->APB2FZ, DBGMCU_APB2FZ_DBG_TIM15_STOP)
  311. #define __HAL_DBGMCU_UNFREEZE_TIM15() CLEAR_BIT(DBGMCU->APB2FZ, DBGMCU_APB2FZ_DBG_TIM15_STOP)
  312. #endif
  313. #if defined(DBGMCU_APB2FZ_DBG_TIM16_STOP)
  314. #define __HAL_DBGMCU_FREEZE_TIM16() SET_BIT(DBGMCU->APB2FZ, DBGMCU_APB2FZ_DBG_TIM16_STOP)
  315. #define __HAL_DBGMCU_UNFREEZE_TIM16() CLEAR_BIT(DBGMCU->APB2FZ, DBGMCU_APB2FZ_DBG_TIM16_STOP)
  316. #endif
  317. #if defined(DBGMCU_APB2FZ_DBG_TIM17_STOP)
  318. #define __HAL_DBGMCU_FREEZE_TIM17() SET_BIT(DBGMCU->APB2FZ, DBGMCU_APB2FZ_DBG_TIM17_STOP)
  319. #define __HAL_DBGMCU_UNFREEZE_TIM17() CLEAR_BIT(DBGMCU->APB2FZ, DBGMCU_APB2FZ_DBG_TIM17_STOP)
  320. #endif
  321. /**
  322. * @}
  323. */
  324. /** @defgroup SYSCFG_Exported_Macros SYSCFG Exported Macros
  325. * @{
  326. */
  327. /** @brief Main Flash memory mapped at 0x00000000.
  328. */
  329. #define __HAL_SYSCFG_REMAPMEMORY_FLASH() CLEAR_BIT(SYSCFG->MEMRMP, SYSCFG_MEMRMP_MEM_MODE)
  330. /** @brief System Flash memory mapped at 0x00000000.
  331. */
  332. #define __HAL_SYSCFG_REMAPMEMORY_SYSTEMFLASH() MODIFY_REG(SYSCFG->MEMRMP, SYSCFG_MEMRMP_MEM_MODE, SYSCFG_MEMRMP_MEM_MODE_0)
  333. /** @brief Embedded SRAM mapped at 0x00000000.
  334. */
  335. #define __HAL_SYSCFG_REMAPMEMORY_SRAM() MODIFY_REG(SYSCFG->MEMRMP, SYSCFG_MEMRMP_MEM_MODE, (SYSCFG_MEMRMP_MEM_MODE_1|SYSCFG_MEMRMP_MEM_MODE_0))
  336. #if defined (STM32L471xx) || defined (STM32L475xx) || defined (STM32L476xx) || defined (STM32L485xx) || defined (STM32L486xx) || \
  337. defined (STM32L496xx) || defined (STM32L4A6xx) || \
  338. defined (STM32L4P5xx) || defined (STM32L4Q5xx) || \
  339. defined (STM32L4R5xx) || defined (STM32L4R7xx) || defined (STM32L4R9xx) || defined (STM32L4S5xx) || defined (STM32L4S7xx) || defined (STM32L4S9xx)
  340. /** @brief FMC Bank1 (NOR/PSRAM 1 and 2) mapped at 0x00000000.
  341. */
  342. #define __HAL_SYSCFG_REMAPMEMORY_FMC() MODIFY_REG(SYSCFG->MEMRMP, SYSCFG_MEMRMP_MEM_MODE, SYSCFG_MEMRMP_MEM_MODE_1)
  343. #endif /* STM32L471xx || STM32L475xx || STM32L476xx || STM32L485xx || STM32L486xx || */
  344. /* STM32L496xx || STM32L4A6xx || */
  345. /* STM32L4P5xx || STM32L4Q5xx || */
  346. /* STM32L4R5xx || STM32L4R7xx || STM32L4R9xx || STM32L4S5xx || STM32L4S7xx || STM32L4S9xx */
  347. #if defined (STM32L4P5xx) || defined (STM32L4Q5xx) || defined (STM32L4R5xx) || defined (STM32L4R7xx) || defined (STM32L4R9xx) || defined (STM32L4S5xx) || defined (STM32L4S7xx) || defined (STM32L4S9xx)
  348. /** @brief OCTOSPI mapped at 0x00000000.
  349. */
  350. #define __HAL_SYSCFG_REMAPMEMORY_OCTOSPI1() MODIFY_REG(SYSCFG->MEMRMP, SYSCFG_MEMRMP_MEM_MODE, (SYSCFG_MEMRMP_MEM_MODE_2))
  351. #define __HAL_SYSCFG_REMAPMEMORY_OCTOSPI2() MODIFY_REG(SYSCFG->MEMRMP, SYSCFG_MEMRMP_MEM_MODE, (SYSCFG_MEMRMP_MEM_MODE_2|SYSCFG_MEMRMP_MEM_MODE_0))
  352. #else
  353. /** @brief QUADSPI mapped at 0x00000000.
  354. */
  355. #define __HAL_SYSCFG_REMAPMEMORY_QUADSPI() MODIFY_REG(SYSCFG->MEMRMP, SYSCFG_MEMRMP_MEM_MODE, (SYSCFG_MEMRMP_MEM_MODE_2|SYSCFG_MEMRMP_MEM_MODE_1))
  356. #endif /* STM32L4P5xx || STM32L4Q5xx || STM32L4R5xx || STM32L4R7xx || STM32L4R9xx || STM32L4S5xx || STM32L4S7xx || STM32L4S9xx */
  357. /**
  358. * @brief Return the boot mode as configured by user.
  359. * @retval The boot mode as configured by user. The returned value can be one
  360. * of the following values:
  361. * @arg @ref SYSCFG_BOOT_MAINFLASH
  362. * @arg @ref SYSCFG_BOOT_SYSTEMFLASH
  363. @if STM32L486xx
  364. * @arg @ref SYSCFG_BOOT_FMC
  365. @endif
  366. * @arg @ref SYSCFG_BOOT_SRAM
  367. @if STM32L422xx
  368. * @arg @ref SYSCFG_BOOT_QUADSPI
  369. @endif
  370. @if STM32L443xx
  371. * @arg @ref SYSCFG_BOOT_QUADSPI
  372. @endif
  373. @if STM32L462xx
  374. * @arg @ref SYSCFG_BOOT_QUADSPI
  375. @endif
  376. @if STM32L486xx
  377. * @arg @ref SYSCFG_BOOT_QUADSPI
  378. @endif
  379. */
  380. #define __HAL_SYSCFG_GET_BOOT_MODE() READ_BIT(SYSCFG->MEMRMP, SYSCFG_MEMRMP_MEM_MODE)
  381. /** @brief SRAM2 page 0 to 31 write protection enable macro
  382. * @param __SRAM2WRP__ This parameter can be a combination of values of @ref SYSCFG_SRAM2WRP
  383. * @note Write protection can only be disabled by a system reset
  384. */
  385. #define __HAL_SYSCFG_SRAM2_WRP_1_31_ENABLE(__SRAM2WRP__) do {assert_param(IS_SYSCFG_SRAM2WRP_PAGE((__SRAM2WRP__)));\
  386. SET_BIT(SYSCFG->SWPR, (__SRAM2WRP__));\
  387. }while(0)
  388. #if defined(SYSCFG_SWPR2_PAGE63)
  389. /** @brief SRAM2 page 32 to 63 write protection enable macro
  390. * @param __SRAM2WRP__ This parameter can be a combination of values of @ref SYSCFG_SRAM2WRP_32_63
  391. * @note Write protection can only be disabled by a system reset
  392. */
  393. #define __HAL_SYSCFG_SRAM2_WRP_32_63_ENABLE(__SRAM2WRP__) do {assert_param(IS_SYSCFG_SRAM2WRP_PAGE((__SRAM2WRP__)));\
  394. SET_BIT(SYSCFG->SWPR2, (__SRAM2WRP__));\
  395. }while(0)
  396. #endif /* SYSCFG_SWPR2_PAGE63 */
  397. /** @brief SRAM2 page write protection unlock prior to erase
  398. * @note Writing a wrong key reactivates the write protection
  399. */
  400. #define __HAL_SYSCFG_SRAM2_WRP_UNLOCK() do {SYSCFG->SKR = 0xCA;\
  401. SYSCFG->SKR = 0x53;\
  402. }while(0)
  403. /** @brief SRAM2 erase
  404. * @note __SYSCFG_GET_FLAG(SYSCFG_FLAG_SRAM2_BUSY) may be used to check end of erase
  405. */
  406. #define __HAL_SYSCFG_SRAM2_ERASE() SET_BIT(SYSCFG->SCSR, SYSCFG_SCSR_SRAM2ER)
  407. /** @brief Floating Point Unit interrupt enable/disable macros
  408. * @param __INTERRUPT__ This parameter can be a value of @ref SYSCFG_FPU_Interrupts
  409. */
  410. #define __HAL_SYSCFG_FPU_INTERRUPT_ENABLE(__INTERRUPT__) do {assert_param(IS_SYSCFG_FPU_INTERRUPT((__INTERRUPT__)));\
  411. SET_BIT(SYSCFG->CFGR1, (__INTERRUPT__));\
  412. }while(0)
  413. #define __HAL_SYSCFG_FPU_INTERRUPT_DISABLE(__INTERRUPT__) do {assert_param(IS_SYSCFG_FPU_INTERRUPT((__INTERRUPT__)));\
  414. CLEAR_BIT(SYSCFG->CFGR1, (__INTERRUPT__));\
  415. }while(0)
  416. /** @brief SYSCFG Break ECC lock.
  417. * Enable and lock the connection of Flash ECC error connection to TIM1/8/15/16/17 Break input.
  418. * @note The selected configuration is locked and can be unlocked only by system reset.
  419. */
  420. #define __HAL_SYSCFG_BREAK_ECC_LOCK() SET_BIT(SYSCFG->CFGR2, SYSCFG_CFGR2_ECCL)
  421. /** @brief SYSCFG Break Cortex-M4 Lockup lock.
  422. * Enable and lock the connection of Cortex-M4 LOCKUP (Hardfault) output to TIM1/8/15/16/17 Break input.
  423. * @note The selected configuration is locked and can be unlocked only by system reset.
  424. */
  425. #define __HAL_SYSCFG_BREAK_LOCKUP_LOCK() SET_BIT(SYSCFG->CFGR2, SYSCFG_CFGR2_CLL)
  426. /** @brief SYSCFG Break PVD lock.
  427. * Enable and lock the PVD connection to Timer1/8/15/16/17 Break input, as well as the PVDE and PLS[2:0] in the PWR_CR2 register.
  428. * @note The selected configuration is locked and can be unlocked only by system reset.
  429. */
  430. #define __HAL_SYSCFG_BREAK_PVD_LOCK() SET_BIT(SYSCFG->CFGR2, SYSCFG_CFGR2_PVDL)
  431. /** @brief SYSCFG Break SRAM2 parity lock.
  432. * Enable and lock the SRAM2 parity error signal connection to TIM1/8/15/16/17 Break input.
  433. * @note The selected configuration is locked and can be unlocked by system reset.
  434. */
  435. #define __HAL_SYSCFG_BREAK_SRAM2PARITY_LOCK() SET_BIT(SYSCFG->CFGR2, SYSCFG_CFGR2_SPL)
  436. /** @brief Check SYSCFG flag is set or not.
  437. * @param __FLAG__ specifies the flag to check.
  438. * This parameter can be one of the following values:
  439. * @arg @ref SYSCFG_FLAG_SRAM2_PE SRAM2 Parity Error Flag
  440. * @arg @ref SYSCFG_FLAG_SRAM2_BUSY SRAM2 Erase Ongoing
  441. * @retval The new state of __FLAG__ (TRUE or FALSE).
  442. */
  443. #define __HAL_SYSCFG_GET_FLAG(__FLAG__) ((((((__FLAG__) == SYSCFG_SCSR_SRAM2BSY)? SYSCFG->SCSR : SYSCFG->CFGR2) & (__FLAG__))!= 0U) ? 1U : 0U)
  444. /** @brief Set the SPF bit to clear the SRAM Parity Error Flag.
  445. */
  446. #define __HAL_SYSCFG_CLEAR_FLAG() SET_BIT(SYSCFG->CFGR2, SYSCFG_CFGR2_SPF)
  447. /** @brief Fast-mode Plus driving capability enable/disable macros
  448. * @param __FASTMODEPLUS__ This parameter can be a value of :
  449. * @arg @ref SYSCFG_FASTMODEPLUS_PB6 Fast-mode Plus driving capability activation on PB6
  450. * @arg @ref SYSCFG_FASTMODEPLUS_PB7 Fast-mode Plus driving capability activation on PB7
  451. * @arg @ref SYSCFG_FASTMODEPLUS_PB8 Fast-mode Plus driving capability activation on PB8
  452. * @arg @ref SYSCFG_FASTMODEPLUS_PB9 Fast-mode Plus driving capability activation on PB9
  453. */
  454. #define __HAL_SYSCFG_FASTMODEPLUS_ENABLE(__FASTMODEPLUS__) do {assert_param(IS_SYSCFG_FASTMODEPLUS((__FASTMODEPLUS__)));\
  455. SET_BIT(SYSCFG->CFGR1, (__FASTMODEPLUS__));\
  456. }while(0)
  457. #define __HAL_SYSCFG_FASTMODEPLUS_DISABLE(__FASTMODEPLUS__) do {assert_param(IS_SYSCFG_FASTMODEPLUS((__FASTMODEPLUS__)));\
  458. CLEAR_BIT(SYSCFG->CFGR1, (__FASTMODEPLUS__));\
  459. }while(0)
  460. /**
  461. * @}
  462. */
  463. /**
  464. * @}
  465. */
  466. /* Private macros ------------------------------------------------------------*/
  467. /** @defgroup HAL_Private_Macros HAL Private Macros
  468. * @{
  469. */
  470. /** @defgroup SYSCFG_Private_Macros SYSCFG Private Macros
  471. * @{
  472. */
  473. #define IS_SYSCFG_FPU_INTERRUPT(__INTERRUPT__) ((((__INTERRUPT__) & SYSCFG_IT_FPU_IOC) == SYSCFG_IT_FPU_IOC) || \
  474. (((__INTERRUPT__) & SYSCFG_IT_FPU_DZC) == SYSCFG_IT_FPU_DZC) || \
  475. (((__INTERRUPT__) & SYSCFG_IT_FPU_UFC) == SYSCFG_IT_FPU_UFC) || \
  476. (((__INTERRUPT__) & SYSCFG_IT_FPU_OFC) == SYSCFG_IT_FPU_OFC) || \
  477. (((__INTERRUPT__) & SYSCFG_IT_FPU_IDC) == SYSCFG_IT_FPU_IDC) || \
  478. (((__INTERRUPT__) & SYSCFG_IT_FPU_IXC) == SYSCFG_IT_FPU_IXC))
  479. #define IS_SYSCFG_BREAK_CONFIG(__CONFIG__) (((__CONFIG__) == SYSCFG_BREAK_ECC) || \
  480. ((__CONFIG__) == SYSCFG_BREAK_PVD) || \
  481. ((__CONFIG__) == SYSCFG_BREAK_SRAM2_PARITY) || \
  482. ((__CONFIG__) == SYSCFG_BREAK_LOCKUP))
  483. #define IS_SYSCFG_SRAM2WRP_PAGE(__PAGE__) (((__PAGE__) > 0U) && ((__PAGE__) <= 0xFFFFFFFFUL))
  484. #if defined(VREFBUF)
  485. #define IS_SYSCFG_VREFBUF_VOLTAGE_SCALE(__SCALE__) (((__SCALE__) == SYSCFG_VREFBUF_VOLTAGE_SCALE0) || \
  486. ((__SCALE__) == SYSCFG_VREFBUF_VOLTAGE_SCALE1))
  487. #define IS_SYSCFG_VREFBUF_HIGH_IMPEDANCE(__VALUE__) (((__VALUE__) == SYSCFG_VREFBUF_HIGH_IMPEDANCE_DISABLE) || \
  488. ((__VALUE__) == SYSCFG_VREFBUF_HIGH_IMPEDANCE_ENABLE))
  489. #define IS_SYSCFG_VREFBUF_TRIMMING(__VALUE__) (((__VALUE__) > 0U) && ((__VALUE__) <= VREFBUF_CCR_TRIM))
  490. #endif /* VREFBUF */
  491. #if defined(SYSCFG_FASTMODEPLUS_PB8) && defined(SYSCFG_FASTMODEPLUS_PB9)
  492. #define IS_SYSCFG_FASTMODEPLUS(__PIN__) ((((__PIN__) & SYSCFG_FASTMODEPLUS_PB6) == SYSCFG_FASTMODEPLUS_PB6) || \
  493. (((__PIN__) & SYSCFG_FASTMODEPLUS_PB7) == SYSCFG_FASTMODEPLUS_PB7) || \
  494. (((__PIN__) & SYSCFG_FASTMODEPLUS_PB8) == SYSCFG_FASTMODEPLUS_PB8) || \
  495. (((__PIN__) & SYSCFG_FASTMODEPLUS_PB9) == SYSCFG_FASTMODEPLUS_PB9))
  496. #elif defined(SYSCFG_FASTMODEPLUS_PB8)
  497. #define IS_SYSCFG_FASTMODEPLUS(__PIN__) ((((__PIN__) & SYSCFG_FASTMODEPLUS_PB6) == SYSCFG_FASTMODEPLUS_PB6) || \
  498. (((__PIN__) & SYSCFG_FASTMODEPLUS_PB7) == SYSCFG_FASTMODEPLUS_PB7) || \
  499. (((__PIN__) & SYSCFG_FASTMODEPLUS_PB8) == SYSCFG_FASTMODEPLUS_PB8))
  500. #elif defined(SYSCFG_FASTMODEPLUS_PB9)
  501. #define IS_SYSCFG_FASTMODEPLUS(__PIN__) ((((__PIN__) & SYSCFG_FASTMODEPLUS_PB6) == SYSCFG_FASTMODEPLUS_PB6) || \
  502. (((__PIN__) & SYSCFG_FASTMODEPLUS_PB7) == SYSCFG_FASTMODEPLUS_PB7) || \
  503. (((__PIN__) & SYSCFG_FASTMODEPLUS_PB9) == SYSCFG_FASTMODEPLUS_PB9))
  504. #else
  505. #define IS_SYSCFG_FASTMODEPLUS(__PIN__) ((((__PIN__) & SYSCFG_FASTMODEPLUS_PB6) == SYSCFG_FASTMODEPLUS_PB6) || \
  506. (((__PIN__) & SYSCFG_FASTMODEPLUS_PB7) == SYSCFG_FASTMODEPLUS_PB7))
  507. #endif
  508. /**
  509. * @}
  510. */
  511. /**
  512. * @}
  513. */
  514. /* Exported variables --------------------------------------------------------*/
  515. /** @addtogroup HAL_Exported_Variables
  516. * @{
  517. */
  518. extern __IO uint32_t uwTick;
  519. extern uint32_t uwTickPrio;
  520. extern HAL_TickFreqTypeDef uwTickFreq;
  521. /**
  522. * @}
  523. */
  524. /* Exported functions --------------------------------------------------------*/
  525. /** @addtogroup HAL_Exported_Functions
  526. * @{
  527. */
  528. /** @addtogroup HAL_Exported_Functions_Group1
  529. * @{
  530. */
  531. /* Initialization and de-initialization functions ******************************/
  532. HAL_StatusTypeDef HAL_Init(void);
  533. HAL_StatusTypeDef HAL_DeInit(void);
  534. void HAL_MspInit(void);
  535. void HAL_MspDeInit(void);
  536. HAL_StatusTypeDef HAL_InitTick (uint32_t TickPriority);
  537. /**
  538. * @}
  539. */
  540. /** @addtogroup HAL_Exported_Functions_Group2
  541. * @{
  542. */
  543. /* Peripheral Control functions ************************************************/
  544. void HAL_IncTick(void);
  545. void HAL_Delay(uint32_t Delay);
  546. uint32_t HAL_GetTick(void);
  547. uint32_t HAL_GetTickPrio(void);
  548. HAL_StatusTypeDef HAL_SetTickFreq(HAL_TickFreqTypeDef Freq);
  549. HAL_TickFreqTypeDef HAL_GetTickFreq(void);
  550. void HAL_SuspendTick(void);
  551. void HAL_ResumeTick(void);
  552. uint32_t HAL_GetHalVersion(void);
  553. uint32_t HAL_GetREVID(void);
  554. uint32_t HAL_GetDEVID(void);
  555. uint32_t HAL_GetUIDw0(void);
  556. uint32_t HAL_GetUIDw1(void);
  557. uint32_t HAL_GetUIDw2(void);
  558. /**
  559. * @}
  560. */
  561. /** @addtogroup HAL_Exported_Functions_Group3
  562. * @{
  563. */
  564. /* DBGMCU Peripheral Control functions *****************************************/
  565. void HAL_DBGMCU_EnableDBGSleepMode(void);
  566. void HAL_DBGMCU_DisableDBGSleepMode(void);
  567. void HAL_DBGMCU_EnableDBGStopMode(void);
  568. void HAL_DBGMCU_DisableDBGStopMode(void);
  569. void HAL_DBGMCU_EnableDBGStandbyMode(void);
  570. void HAL_DBGMCU_DisableDBGStandbyMode(void);
  571. /**
  572. * @}
  573. */
  574. /** @addtogroup HAL_Exported_Functions_Group4
  575. * @{
  576. */
  577. /* SYSCFG Control functions ****************************************************/
  578. void HAL_SYSCFG_SRAM2Erase(void);
  579. void HAL_SYSCFG_EnableMemorySwappingBank(void);
  580. void HAL_SYSCFG_DisableMemorySwappingBank(void);
  581. #if defined(VREFBUF)
  582. void HAL_SYSCFG_VREFBUF_VoltageScalingConfig(uint32_t VoltageScaling);
  583. void HAL_SYSCFG_VREFBUF_HighImpedanceConfig(uint32_t Mode);
  584. void HAL_SYSCFG_VREFBUF_TrimmingConfig(uint32_t TrimmingValue);
  585. HAL_StatusTypeDef HAL_SYSCFG_EnableVREFBUF(void);
  586. void HAL_SYSCFG_DisableVREFBUF(void);
  587. #endif /* VREFBUF */
  588. void HAL_SYSCFG_EnableIOAnalogSwitchBooster(void);
  589. void HAL_SYSCFG_DisableIOAnalogSwitchBooster(void);
  590. /**
  591. * @}
  592. */
  593. /**
  594. * @}
  595. */
  596. /**
  597. * @}
  598. */
  599. /**
  600. * @}
  601. */
  602. #ifdef __cplusplus
  603. }
  604. #endif
  605. #endif /* STM32L4xx_HAL_H */