stm32f3xx_hal.h 53 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945
  1. /**
  2. ******************************************************************************
  3. * @file stm32f3xx_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. * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
  11. * All rights reserved.</center></h2>
  12. *
  13. * This software component is licensed by ST under BSD 3-Clause license,
  14. * the "License"; You may not use this file except in compliance with the
  15. * License. You may obtain a copy of the License at:
  16. * opensource.org/licenses/BSD-3-Clause
  17. *
  18. ******************************************************************************
  19. */
  20. /* Define to prevent recursive inclusion -------------------------------------*/
  21. #ifndef __STM32F3xx_HAL_H
  22. #define __STM32F3xx_HAL_H
  23. #ifdef __cplusplus
  24. extern "C" {
  25. #endif
  26. /* Includes ------------------------------------------------------------------*/
  27. #include "stm32f3xx_hal_conf.h"
  28. /** @addtogroup STM32F3xx_HAL_Driver
  29. * @{
  30. */
  31. /** @addtogroup HAL
  32. * @{
  33. */
  34. /* Private macros ------------------------------------------------------------*/
  35. /** @addtogroup HAL_Private_Macros
  36. * @{
  37. */
  38. #define IS_SYSCFG_FASTMODEPLUS(__PIN__) ((((__PIN__) & SYSCFG_FASTMODEPLUS_PB6) == SYSCFG_FASTMODEPLUS_PB6) || \
  39. (((__PIN__) & SYSCFG_FASTMODEPLUS_PB7) == SYSCFG_FASTMODEPLUS_PB7) || \
  40. (((__PIN__) & SYSCFG_FASTMODEPLUS_PB8) == SYSCFG_FASTMODEPLUS_PB8) || \
  41. (((__PIN__) & SYSCFG_FASTMODEPLUS_PB9) == SYSCFG_FASTMODEPLUS_PB9))
  42. /**
  43. * @}
  44. */
  45. /* Exported types ------------------------------------------------------------*/
  46. /* Exported constants --------------------------------------------------------*/
  47. /** @defgroup HAL_Exported_Constants HAL Exported Constants
  48. * @{
  49. */
  50. /** @defgroup HAL_TICK_FREQ Tick Frequency
  51. * @{
  52. */
  53. typedef enum
  54. {
  55. HAL_TICK_FREQ_10HZ = 100U,
  56. HAL_TICK_FREQ_100HZ = 10U,
  57. HAL_TICK_FREQ_1KHZ = 1U,
  58. HAL_TICK_FREQ_DEFAULT = HAL_TICK_FREQ_1KHZ
  59. } HAL_TickFreqTypeDef;
  60. /**
  61. * @}
  62. */
  63. /**
  64. * @}
  65. */
  66. /** @defgroup HAL_Exported_Constants HAL Exported Constants
  67. * @{
  68. */
  69. /** @defgroup SYSCFG_BitAddress_AliasRegion SYSCFG registers bit address in the alias region
  70. * @brief SYSCFG registers bit address in the alias region
  71. * @{
  72. */
  73. /* ------------ SYSCFG registers bit address in the alias region -------------*/
  74. #define SYSCFG_OFFSET (SYSCFG_BASE - PERIPH_BASE)
  75. /* --- CFGR2 Register ---*/
  76. /* Alias word address of BYP_ADDR_PAR bit */
  77. #define CFGR2_OFFSET (SYSCFG_OFFSET + 0x18U)
  78. #define BYPADDRPAR_BitNumber 0x04U
  79. #define CFGR2_BYPADDRPAR_BB (PERIPH_BB_BASE + (CFGR2_OFFSET * 32U) + (BYPADDRPAR_BitNumber * 4U))
  80. /**
  81. * @}
  82. */
  83. #if defined(SYSCFG_CFGR1_DMA_RMP)
  84. /** @defgroup HAL_DMA_Remapping HAL DMA Remapping
  85. * Elements values convention: 0xXXYYYYYY
  86. * - YYYYYY : Position in the register
  87. * - XX : Register index
  88. * - 00: CFGR1 register in SYSCFG
  89. * - 01: CFGR3 register in SYSCFG (not available on STM32F373xC/STM32F378xx devices)
  90. * @{
  91. */
  92. #define HAL_REMAPDMA_ADC24_DMA2_CH34 (0x00000100U) /*!< ADC24 DMA remap (STM32F303xB/C/E, STM32F358xx and STM32F398xx devices)
  93. 1: Remap (ADC24 DMA requests mapped on DMA2 channels 3 and 4) */
  94. #define HAL_REMAPDMA_TIM16_DMA1_CH6 (0x00000800U) /*!< TIM16 DMA request remap
  95. 1: Remap (TIM16_CH1 and TIM16_UP DMA requests mapped on DMA1 channel 6) */
  96. #define HAL_REMAPDMA_TIM17_DMA1_CH7 (0x00001000U) /*!< TIM17 DMA request remap
  97. 1: Remap (TIM17_CH1 and TIM17_UP DMA requests mapped on DMA1 channel 7) */
  98. #define HAL_REMAPDMA_TIM6_DAC1_CH1_DMA1_CH3 (0x00002000U) /*!< TIM6 and DAC channel1 DMA remap (STM32F303xB/C/E, STM32F358xx and STM32F398xx devices)
  99. 1: Remap (TIM6_UP and DAC_CH1 DMA requests mapped on DMA1 channel 3) */
  100. #define HAL_REMAPDMA_TIM7_DAC1_CH2_DMA1_CH4 (0x00004000U) /*!< TIM7 and DAC channel2 DMA remap (STM32F303xB/C/E, STM32F358xx and STM32F398xx devices)
  101. 1: Remap (TIM7_UP and DAC_CH2 DMA requests mapped on DMA1 channel 4) */
  102. #define HAL_REMAPDMA_DAC2_CH1_DMA1_CH5 (0x00008000U) /*!< DAC2 channel1 DMA remap (STM32F303x4/6/8 devices only)
  103. 1: Remap (DAC2_CH1 DMA requests mapped on DMA1 channel 5) */
  104. #define HAL_REMAPDMA_TIM18_DAC2_CH1_DMA1_CH5 (0x00008000U) /*!< DAC2 channel1 DMA remap (STM32F303x4/6/8 devices only)
  105. 1: Remap (DAC2_CH1 DMA requests mapped on DMA1 channel 5) */
  106. #if defined(SYSCFG_CFGR3_DMA_RMP)
  107. #if !defined(HAL_REMAP_CFGR3_MASK)
  108. #define HAL_REMAP_CFGR3_MASK (0x01000000U)
  109. #endif
  110. #define HAL_REMAPDMA_SPI1_RX_DMA1_CH2 (0x01000003U) /*!< SPI1_RX DMA remap (STM32F303x4/6/8 devices only)
  111. 11: Map on DMA1 channel 2 */
  112. #define HAL_REMAPDMA_SPI1_RX_DMA1_CH4 (0x01000001U) /*!< SPI1_RX DMA remap (STM32F303x4/6/8 devices only)
  113. 01: Map on DMA1 channel 4 */
  114. #define HAL_REMAPDMA_SPI1_RX_DMA1_CH6 (0x01000002U) /*!< SPI1_RX DMA remap (STM32F303x4/6/8 devices only)
  115. 10: Map on DMA1 channel 6 */
  116. #define HAL_REMAPDMA_SPI1_TX_DMA1_CH3 (0x0100000CU) /*!< SPI1_TX DMA remap (STM32F303x4/6/8 devices only)
  117. 11: Map on DMA1 channel 3 */
  118. #define HAL_REMAPDMA_SPI1_TX_DMA1_CH5 (0x01000004U) /*!< SPI1_TX DMA remap (STM32F303x4/6/8 devices only)
  119. 01: Map on DMA1 channel 5 */
  120. #define HAL_REMAPDMA_SPI1_TX_DMA1_CH7 (0x01000008U) /*!< SPI1_TX DMA remap (STM32F303x4/6/8 devices only)
  121. 10: Map on DMA1 channel 7 */
  122. #define HAL_REMAPDMA_I2C1_RX_DMA1_CH7 (0x01000030U) /*!< I2C1_RX DMA remap (STM32F303x4/6/8 devices only)
  123. 11: Map on DMA1 channel 7 */
  124. #define HAL_REMAPDMA_I2C1_RX_DMA1_CH3 (0x01000010U) /*!< I2C1_RX DMA remap (STM32F303x4/6/8 devices only)
  125. 01: Map on DMA1 channel 3 */
  126. #define HAL_REMAPDMA_I2C1_RX_DMA1_CH5 (0x01000020U) /*!< I2C1_RX DMA remap (STM32F303x4/6/8 devices only)
  127. 10: Map on DMA1 channel 5 */
  128. #define HAL_REMAPDMA_I2C1_TX_DMA1_CH6 (0x010000C0U) /*!< I2C1_TX DMA remap (STM32F303x4/6/8 devices only)
  129. 11: Map on DMA1 channel 6 */
  130. #define HAL_REMAPDMA_I2C1_TX_DMA1_CH2 (0x01000040U) /*!< I2C1_TX DMA remap (STM32F303x4/6/8 devices only)
  131. 01: Map on DMA1 channel 2 */
  132. #define HAL_REMAPDMA_I2C1_TX_DMA1_CH4 (0x01000080U) /*!< I2C1_TX DMA remap (STM32F303x4/6/8 devices only)
  133. 10: Map on DMA1 channel 4 */
  134. #define HAL_REMAPDMA_ADC2_DMA1_CH2 (0x01000100U) /*!< ADC2 DMA remap
  135. x0: No remap (ADC2 on DMA2)
  136. 10: Map on DMA1 channel 2 */
  137. #define HAL_REMAPDMA_ADC2_DMA1_CH4 (0x01000300U) /*!< ADC2 DMA remap
  138. 11: Map on DMA1 channel 4 */
  139. #endif /* SYSCFG_CFGR3_DMA_RMP */
  140. #if defined(SYSCFG_CFGR3_DMA_RMP)
  141. #define IS_DMA_REMAP(RMP) ((((RMP) & HAL_REMAPDMA_ADC24_DMA2_CH34) == HAL_REMAPDMA_ADC24_DMA2_CH34) || \
  142. (((RMP) & HAL_REMAPDMA_TIM16_DMA1_CH6) == HAL_REMAPDMA_TIM16_DMA1_CH6) || \
  143. (((RMP) & HAL_REMAPDMA_TIM17_DMA1_CH7) == HAL_REMAPDMA_TIM17_DMA1_CH7) || \
  144. (((RMP) & HAL_REMAPDMA_TIM6_DAC1_CH1_DMA1_CH3) == HAL_REMAPDMA_TIM6_DAC1_CH1_DMA1_CH3) || \
  145. (((RMP) & HAL_REMAPDMA_TIM7_DAC1_CH2_DMA1_CH4) == HAL_REMAPDMA_TIM7_DAC1_CH2_DMA1_CH4) || \
  146. (((RMP) & HAL_REMAPDMA_DAC2_CH1_DMA1_CH5) == HAL_REMAPDMA_DAC2_CH1_DMA1_CH5) || \
  147. (((RMP) & HAL_REMAPDMA_TIM18_DAC2_CH1_DMA1_CH5) == HAL_REMAPDMA_TIM18_DAC2_CH1_DMA1_CH5) || \
  148. (((RMP) & HAL_REMAPDMA_SPI1_RX_DMA1_CH2) == HAL_REMAPDMA_SPI1_RX_DMA1_CH2) || \
  149. (((RMP) & HAL_REMAPDMA_SPI1_RX_DMA1_CH4) == HAL_REMAPDMA_SPI1_RX_DMA1_CH4) || \
  150. (((RMP) & HAL_REMAPDMA_SPI1_RX_DMA1_CH6) == HAL_REMAPDMA_SPI1_RX_DMA1_CH6) || \
  151. (((RMP) & HAL_REMAPDMA_SPI1_TX_DMA1_CH3) == HAL_REMAPDMA_SPI1_TX_DMA1_CH3) || \
  152. (((RMP) & HAL_REMAPDMA_SPI1_TX_DMA1_CH5) == HAL_REMAPDMA_SPI1_TX_DMA1_CH5) || \
  153. (((RMP) & HAL_REMAPDMA_SPI1_TX_DMA1_CH7) == HAL_REMAPDMA_SPI1_TX_DMA1_CH7) || \
  154. (((RMP) & HAL_REMAPDMA_I2C1_RX_DMA1_CH7) == HAL_REMAPDMA_I2C1_RX_DMA1_CH7) || \
  155. (((RMP) & HAL_REMAPDMA_I2C1_RX_DMA1_CH3) == HAL_REMAPDMA_I2C1_RX_DMA1_CH3) || \
  156. (((RMP) & HAL_REMAPDMA_I2C1_RX_DMA1_CH5) == HAL_REMAPDMA_I2C1_RX_DMA1_CH5) || \
  157. (((RMP) & HAL_REMAPDMA_I2C1_TX_DMA1_CH6) == HAL_REMAPDMA_I2C1_TX_DMA1_CH6) || \
  158. (((RMP) & HAL_REMAPDMA_I2C1_TX_DMA1_CH2) == HAL_REMAPDMA_I2C1_TX_DMA1_CH2) || \
  159. (((RMP) & HAL_REMAPDMA_I2C1_TX_DMA1_CH4) == HAL_REMAPDMA_I2C1_TX_DMA1_CH4) || \
  160. (((RMP) & HAL_REMAPDMA_ADC2_DMA1_CH2) == HAL_REMAPDMA_ADC2_DMA1_CH2) || \
  161. (((RMP) & HAL_REMAPDMA_ADC2_DMA1_CH4) == HAL_REMAPDMA_ADC2_DMA1_CH4))
  162. #else
  163. #define IS_DMA_REMAP(RMP) ((((RMP) & HAL_REMAPDMA_ADC24_DMA2_CH34) == HAL_REMAPDMA_ADC24_DMA2_CH34) || \
  164. (((RMP) & HAL_REMAPDMA_TIM16_DMA1_CH6) == HAL_REMAPDMA_TIM16_DMA1_CH6) || \
  165. (((RMP) & HAL_REMAPDMA_TIM17_DMA1_CH7) == HAL_REMAPDMA_TIM17_DMA1_CH7) || \
  166. (((RMP) & HAL_REMAPDMA_TIM6_DAC1_CH1_DMA1_CH3) == HAL_REMAPDMA_TIM6_DAC1_CH1_DMA1_CH3) || \
  167. (((RMP) & HAL_REMAPDMA_TIM7_DAC1_CH2_DMA1_CH4) == HAL_REMAPDMA_TIM7_DAC1_CH2_DMA1_CH4) || \
  168. (((RMP) & HAL_REMAPDMA_DAC2_CH1_DMA1_CH5) == HAL_REMAPDMA_DAC2_CH1_DMA1_CH5) || \
  169. (((RMP) & HAL_REMAPDMA_TIM18_DAC2_CH1_DMA1_CH5) == HAL_REMAPDMA_TIM18_DAC2_CH1_DMA1_CH5))
  170. #endif /* SYSCFG_CFGR3_DMA_RMP && SYSCFG_CFGR1_DMA_RMP*/
  171. /**
  172. * @}
  173. */
  174. #endif /* SYSCFG_CFGR1_DMA_RMP */
  175. /** @defgroup HAL_Trigger_Remapping HAL Trigger Remapping
  176. * Elements values convention: 0xXXYYYYYY
  177. * - YYYYYY : Position in the register
  178. * - XX : Register index
  179. * - 00: CFGR1 register in SYSCFG
  180. * - 01: CFGR3 register in SYSCFG
  181. * @{
  182. */
  183. #define HAL_REMAPTRIGGER_DAC1_TRIG (0x00000080U) /*!< DAC trigger remap (when TSEL = 001 on STM32F303xB/C and STM32F358xx devices)
  184. 0: No remap (DAC trigger is TIM8_TRGO)
  185. 1: Remap (DAC trigger is TIM3_TRGO) */
  186. #define HAL_REMAPTRIGGER_TIM1_ITR3 (0x00000040U) /*!< TIM1 ITR3 trigger remap
  187. 0: No remap
  188. 1: Remap (TIM1_TRG3 = TIM17_OC) */
  189. #if defined(SYSCFG_CFGR3_TRIGGER_RMP)
  190. #if !defined(HAL_REMAP_CFGR3_MASK)
  191. #define HAL_REMAP_CFGR3_MASK (0x01000000U)
  192. #endif
  193. #define HAL_REMAPTRIGGER_DAC1_TRIG3 (0x01010000U) /*!< DAC1_CH1 / DAC1_CH2 Trigger remap
  194. 0: Remap (DAC trigger is TIM15_TRGO)
  195. 1: Remap (DAC trigger is HRTIM1_DAC1_TRIG1) */
  196. #define HAL_REMAPTRIGGER_DAC1_TRIG5 (0x01020000U) /*!< DAC1_CH1 / DAC1_CH2 Trigger remap
  197. 0: No remap
  198. 1: Remap (DAC trigger is HRTIM1_DAC1_TRIG2) */
  199. #define IS_HAL_REMAPTRIGGER(RMP) ((((RMP) & HAL_REMAPTRIGGER_DAC1) == HAL_REMAPTRIGGER_DAC1) || \
  200. (((RMP) & HAL_REMAPTRIGGER_TIM1_ITR3) == HAL_REMAPTRIGGER_TIM1_ITR3) || \
  201. (((RMP) & HAL_REMAPTRIGGER_DAC1_TRIG3) == HAL_REMAPTRIGGER_DAC1_TRIG3) || \
  202. (((RMP) & HAL_REMAPTRIGGER_DAC1_TRIG5) == HAL_REMAPTRIGGER_DAC1_TRIG5))
  203. #else
  204. #define IS_HAL_REMAPTRIGGER(RMP) ((((RMP) & HAL_REMAPTRIGGER_DAC1) == HAL_REMAPTRIGGER_DAC1) || \
  205. (((RMP) & HAL_REMAPTRIGGER_TIM1_ITR3) == HAL_REMAPTRIGGER_TIM1_ITR3))
  206. #endif /* SYSCFG_CFGR3_TRIGGER_RMP */
  207. /**
  208. * @}
  209. */
  210. #if defined (STM32F302xE)
  211. /** @defgroup HAL_ADC_Trigger_Remapping HAL ADC Trigger Remapping
  212. * @{
  213. */
  214. #define HAL_REMAPADCTRIGGER_ADC12_EXT2 SYSCFG_CFGR4_ADC12_EXT2_RMP /*!< Input trigger of ADC12 regular channel EXT2
  215. 0: No remap (TIM1_CC3)
  216. 1: Remap (TIM20_TRGO) */
  217. #define HAL_REMAPADCTRIGGER_ADC12_EXT3 SYSCFG_CFGR4_ADC12_EXT3_RMP /*!< Input trigger of ADC12 regular channel EXT3
  218. 0: No remap (TIM2_CC2)
  219. 1: Remap (TIM20_TRGO2) */
  220. #define HAL_REMAPADCTRIGGER_ADC12_EXT5 SYSCFG_CFGR4_ADC12_EXT5_RMP /*!< Input trigger of ADC12 regular channel EXT5
  221. 0: No remap (TIM4_CC4)
  222. 1: Remap (TIM20_CC1) */
  223. #define HAL_REMAPADCTRIGGER_ADC12_EXT13 SYSCFG_CFGR4_ADC12_EXT13_RMP /*!< Input trigger of ADC12 regular channel EXT13
  224. 0: No remap (TIM6_TRGO)
  225. 1: Remap (TIM20_CC2) */
  226. #define HAL_REMAPADCTRIGGER_ADC12_EXT15 SYSCFG_CFGR4_ADC12_EXT15_RMP /*!< Input trigger of ADC12 regular channel EXT15
  227. 0: No remap (TIM3_CC4)
  228. 1: Remap (TIM20_CC3) */
  229. #define HAL_REMAPADCTRIGGER_ADC12_JEXT3 SYSCFG_CFGR4_ADC12_JEXT3_RMP /*!< Input trigger of ADC12 injected channel JEXT3
  230. 0: No remap (TIM2_CC1)
  231. 1: Remap (TIM20_TRGO) */
  232. #define HAL_REMAPADCTRIGGER_ADC12_JEXT6 SYSCFG_CFGR4_ADC12_JEXT6_RMP /*!< Input trigger of ADC12 injected channel JEXT6
  233. 0: No remap (EXTI line 15)
  234. 1: Remap (TIM20_TRGO2) */
  235. #define HAL_REMAPADCTRIGGER_ADC12_JEXT13 SYSCFG_CFGR4_ADC12_JEXT13_RMP /*!< Input trigger of ADC12 injected channel JEXT13
  236. 0: No remap (TIM3_CC1)
  237. 1: Remap (TIM20_CC4) */
  238. #define IS_HAL_REMAPADCTRIGGER(RMP) ((((RMP) & HAL_REMAPADCTRIGGER_ADC12_EXT2) == HAL_REMAPADCTRIGGER_ADC12_EXT2) || \
  239. (((RMP) & HAL_REMAPADCTRIGGER_ADC12_EXT3) == HAL_REMAPADCTRIGGER_ADC12_EXT3) || \
  240. (((RMP) & HAL_REMAPADCTRIGGER_ADC12_EXT5) == HAL_REMAPADCTRIGGER_ADC12_EXT5) || \
  241. (((RMP) & HAL_REMAPADCTRIGGER_ADC12_EXT13) == HAL_REMAPADCTRIGGER_ADC12_EXT13) || \
  242. (((RMP) & HAL_REMAPADCTRIGGER_ADC12_EXT15) == HAL_REMAPADCTRIGGER_ADC12_EXT15) || \
  243. (((RMP) & HAL_REMAPADCTRIGGER_ADC12_JEXT3) == HAL_REMAPADCTRIGGER_ADC12_JEXT3) || \
  244. (((RMP) & HAL_REMAPADCTRIGGER_ADC12_JEXT6) == HAL_REMAPADCTRIGGER_ADC12_JEXT6) || \
  245. (((RMP) & HAL_REMAPADCTRIGGER_ADC12_JEXT13) == HAL_REMAPADCTRIGGER_ADC12_JEXT13))
  246. /**
  247. * @}
  248. */
  249. #endif /* STM32F302xE */
  250. #if defined (STM32F303xE) || defined (STM32F398xx)
  251. /** @defgroup HAL_ADC_Trigger_Remapping HAL ADC Trigger Remapping
  252. * @{
  253. */
  254. #define HAL_REMAPADCTRIGGER_ADC12_EXT2 SYSCFG_CFGR4_ADC12_EXT2_RMP /*!< Input trigger of ADC12 regular channel EXT2
  255. 0: No remap (TIM1_CC3)
  256. 1: Remap (TIM20_TRGO) */
  257. #define HAL_REMAPADCTRIGGER_ADC12_EXT3 SYSCFG_CFGR4_ADC12_EXT3_RMP /*!< Input trigger of ADC12 regular channel EXT3
  258. 0: No remap (TIM2_CC2)
  259. 1: Remap (TIM20_TRGO2) */
  260. #define HAL_REMAPADCTRIGGER_ADC12_EXT5 SYSCFG_CFGR4_ADC12_EXT5_RMP /*!< Input trigger of ADC12 regular channel EXT5
  261. 0: No remap (TIM4_CC4)
  262. 1: Remap (TIM20_CC1) */
  263. #define HAL_REMAPADCTRIGGER_ADC12_EXT13 SYSCFG_CFGR4_ADC12_EXT13_RMP /*!< Input trigger of ADC12 regular channel EXT13
  264. 0: No remap (TIM6_TRGO)
  265. 1: Remap (TIM20_CC2) */
  266. #define HAL_REMAPADCTRIGGER_ADC12_EXT15 SYSCFG_CFGR4_ADC12_EXT15_RMP /*!< Input trigger of ADC12 regular channel EXT15
  267. 0: No remap (TIM3_CC4)
  268. 1: Remap (TIM20_CC3) */
  269. #define HAL_REMAPADCTRIGGER_ADC12_JEXT3 SYSCFG_CFGR4_ADC12_JEXT3_RMP /*!< Input trigger of ADC12 injected channel JEXT3
  270. 0: No remap (TIM2_CC1)
  271. 1: Remap (TIM20_TRGO) */
  272. #define HAL_REMAPADCTRIGGER_ADC12_JEXT6 SYSCFG_CFGR4_ADC12_JEXT6_RMP /*!< Input trigger of ADC12 injected channel JEXT6
  273. 0: No remap (EXTI line 15)
  274. 1: Remap (TIM20_TRGO2) */
  275. #define HAL_REMAPADCTRIGGER_ADC12_JEXT13 SYSCFG_CFGR4_ADC12_JEXT13_RMP /*!< Input trigger of ADC12 injected channel JEXT13
  276. 0: No remap (TIM3_CC1)
  277. 1: Remap (TIM20_CC4) */
  278. #define HAL_REMAPADCTRIGGER_ADC34_EXT5 SYSCFG_CFGR4_ADC34_EXT5_RMP /*!< Input trigger of ADC34 regular channel EXT5
  279. 0: No remap (EXTI line 2)
  280. 1: Remap (TIM20_TRGO) */
  281. #define HAL_REMAPADCTRIGGER_ADC34_EXT6 SYSCFG_CFGR4_ADC34_EXT6_RMP /*!< Input trigger of ADC34 regular channel EXT6
  282. 0: No remap (TIM4_CC1)
  283. 1: Remap (TIM20_TRGO2) */
  284. #define HAL_REMAPADCTRIGGER_ADC34_EXT15 SYSCFG_CFGR4_ADC34_EXT15_RMP /*!< Input trigger of ADC34 regular channel EXT15
  285. 0: No remap (TIM2_CC1)
  286. 1: Remap (TIM20_CC1) */
  287. #define HAL_REMAPADCTRIGGER_ADC34_JEXT5 SYSCFG_CFGR4_ADC34_JEXT5_RMP /*!< Input trigger of ADC34 injected channel JEXT5
  288. 0: No remap (TIM4_CC3)
  289. 1: Remap (TIM20_TRGO) */
  290. #define HAL_REMAPADCTRIGGER_ADC34_JEXT11 SYSCFG_CFGR4_ADC34_JEXT11_RMP /*!< Input trigger of ADC34 injected channel JEXT11
  291. 0: No remap (TIM1_CC3)
  292. 1: Remap (TIM20_TRGO2) */
  293. #define HAL_REMAPADCTRIGGER_ADC34_JEXT14 SYSCFG_CFGR4_ADC34_JEXT14_RMP /*!< Input trigger of ADC34 injected channel JEXT14
  294. 0: No remap (TIM7_TRGO)
  295. 1: Remap (TIM20_CC2) */
  296. #define IS_HAL_REMAPADCTRIGGER(RMP) ((((RMP) & HAL_REMAPADCTRIGGER_ADC12_EXT2) == HAL_REMAPADCTRIGGER_ADC12_EXT2) || \
  297. (((RMP) & HAL_REMAPADCTRIGGER_ADC12_EXT3) == HAL_REMAPADCTRIGGER_ADC12_EXT3) || \
  298. (((RMP) & HAL_REMAPADCTRIGGER_ADC12_EXT5) == HAL_REMAPADCTRIGGER_ADC12_EXT5) || \
  299. (((RMP) & HAL_REMAPADCTRIGGER_ADC12_EXT13) == HAL_REMAPADCTRIGGER_ADC12_EXT13) || \
  300. (((RMP) & HAL_REMAPADCTRIGGER_ADC12_EXT15) == HAL_REMAPADCTRIGGER_ADC12_EXT15) || \
  301. (((RMP) & HAL_REMAPADCTRIGGER_ADC12_JEXT3) == HAL_REMAPADCTRIGGER_ADC12_JEXT3) || \
  302. (((RMP) & HAL_REMAPADCTRIGGER_ADC12_JEXT6) == HAL_REMAPADCTRIGGER_ADC12_JEXT6) || \
  303. (((RMP) & HAL_REMAPADCTRIGGER_ADC12_JEXT13) == HAL_REMAPADCTRIGGER_ADC12_JEXT13) || \
  304. (((RMP) & HAL_REMAPADCTRIGGER_ADC34_EXT5) == HAL_REMAPADCTRIGGER_ADC34_EXT5) || \
  305. (((RMP) & HAL_REMAPADCTRIGGER_ADC34_EXT6) == HAL_REMAPADCTRIGGER_ADC34_EXT6) || \
  306. (((RMP) & HAL_REMAPADCTRIGGER_ADC34_EXT15) == HAL_REMAPADCTRIGGER_ADC34_EXT15) || \
  307. (((RMP) & HAL_REMAPADCTRIGGER_ADC34_JEXT5) == HAL_REMAPADCTRIGGER_ADC34_JEXT5) || \
  308. (((RMP) & HAL_REMAPADCTRIGGER_ADC34_JEXT11) == HAL_REMAPADCTRIGGER_ADC34_JEXT11) || \
  309. (((RMP) & HAL_REMAPADCTRIGGER_ADC34_JEXT14) == HAL_REMAPADCTRIGGER_ADC34_JEXT14))
  310. /**
  311. * @}
  312. */
  313. #endif /* STM32F303xE || STM32F398xx */
  314. /** @defgroup SYSCFG_FastModePlus_GPIO Fast-mode Plus on GPIO
  315. * @{
  316. */
  317. /** @brief Fast-mode Plus driving capability on a specific GPIO
  318. */
  319. #if defined(SYSCFG_CFGR1_I2C_PB6_FMP)
  320. #define SYSCFG_FASTMODEPLUS_PB6 ((uint32_t)SYSCFG_CFGR1_I2C_PB6_FMP) /*!< Enable Fast-mode Plus on PB6 */
  321. #endif /* SYSCFG_CFGR1_I2C_PB6_FMP */
  322. #if defined(SYSCFG_CFGR1_I2C_PB7_FMP)
  323. #define SYSCFG_FASTMODEPLUS_PB7 ((uint32_t)SYSCFG_CFGR1_I2C_PB7_FMP) /*!< Enable Fast-mode Plus on PB7 */
  324. #endif /* SYSCFG_CFGR1_I2C_PB7_FMP */
  325. #if defined(SYSCFG_CFGR1_I2C_PB8_FMP)
  326. #define SYSCFG_FASTMODEPLUS_PB8 ((uint32_t)SYSCFG_CFGR1_I2C_PB8_FMP) /*!< Enable Fast-mode Plus on PB8 */
  327. #endif /* SYSCFG_CFGR1_I2C_PB8_FMP */
  328. #if defined(SYSCFG_CFGR1_I2C_PB9_FMP)
  329. #define SYSCFG_FASTMODEPLUS_PB9 ((uint32_t)SYSCFG_CFGR1_I2C_PB9_FMP) /*!< Enable Fast-mode Plus on PB9 */
  330. #endif /* SYSCFG_CFGR1_I2C_PB9_FMP */
  331. /**
  332. * @}
  333. */
  334. #if defined(SYSCFG_RCR_PAGE0)
  335. /* CCM-SRAM defined */
  336. /** @defgroup HAL_Page_Write_Protection HAL CCM RAM page write protection
  337. * @{
  338. */
  339. #define HAL_SYSCFG_WP_PAGE0 (SYSCFG_RCR_PAGE0) /*!< ICODE SRAM Write protection page 0 */
  340. #define HAL_SYSCFG_WP_PAGE1 (SYSCFG_RCR_PAGE1) /*!< ICODE SRAM Write protection page 1 */
  341. #define HAL_SYSCFG_WP_PAGE2 (SYSCFG_RCR_PAGE2) /*!< ICODE SRAM Write protection page 2 */
  342. #define HAL_SYSCFG_WP_PAGE3 (SYSCFG_RCR_PAGE3) /*!< ICODE SRAM Write protection page 3 */
  343. #if defined(SYSCFG_RCR_PAGE4)
  344. /* More than 4KB CCM-SRAM defined */
  345. #define HAL_SYSCFG_WP_PAGE4 (SYSCFG_RCR_PAGE4) /*!< ICODE SRAM Write protection page 4 */
  346. #define HAL_SYSCFG_WP_PAGE5 (SYSCFG_RCR_PAGE5) /*!< ICODE SRAM Write protection page 5 */
  347. #define HAL_SYSCFG_WP_PAGE6 (SYSCFG_RCR_PAGE6) /*!< ICODE SRAM Write protection page 6 */
  348. #define HAL_SYSCFG_WP_PAGE7 (SYSCFG_RCR_PAGE7) /*!< ICODE SRAM Write protection page 7 */
  349. #endif /* SYSCFG_RCR_PAGE4 */
  350. #if defined(SYSCFG_RCR_PAGE8)
  351. #define HAL_SYSCFG_WP_PAGE8 (SYSCFG_RCR_PAGE8) /*!< ICODE SRAM Write protection page 8 */
  352. #define HAL_SYSCFG_WP_PAGE9 (SYSCFG_RCR_PAGE9) /*!< ICODE SRAM Write protection page 9 */
  353. #define HAL_SYSCFG_WP_PAGE10 (SYSCFG_RCR_PAGE10) /*!< ICODE SRAM Write protection page 10 */
  354. #define HAL_SYSCFG_WP_PAGE11 (SYSCFG_RCR_PAGE11) /*!< ICODE SRAM Write protection page 11 */
  355. #define HAL_SYSCFG_WP_PAGE12 (SYSCFG_RCR_PAGE12) /*!< ICODE SRAM Write protection page 12 */
  356. #define HAL_SYSCFG_WP_PAGE13 (SYSCFG_RCR_PAGE13) /*!< ICODE SRAM Write protection page 13 */
  357. #define HAL_SYSCFG_WP_PAGE14 (SYSCFG_RCR_PAGE14) /*!< ICODE SRAM Write protection page 14 */
  358. #define HAL_SYSCFG_WP_PAGE15 (SYSCFG_RCR_PAGE15) /*!< ICODE SRAM Write protection page 15 */
  359. #endif /* SYSCFG_RCR_PAGE8 */
  360. #if defined(SYSCFG_RCR_PAGE8)
  361. #define IS_HAL_SYSCFG_WP_PAGE(__PAGE__) (((__PAGE__) > 0U) && ((__PAGE__) <= 0xFFFFU))
  362. #elif defined(SYSCFG_RCR_PAGE4)
  363. #define IS_HAL_SYSCFG_WP_PAGE(__PAGE__) (((__PAGE__) > 0U) && ((__PAGE__) <= 0x00FFU))
  364. #else
  365. #define IS_HAL_SYSCFG_WP_PAGE(__PAGE__) (((__PAGE__) > 0U) && ((__PAGE__) <= 0x000FU))
  366. #endif /* SYSCFG_RCR_PAGE8 */
  367. /**
  368. * @}
  369. */
  370. #endif /* SYSCFG_RCR_PAGE0 */
  371. /** @defgroup HAL_SYSCFG_Interrupts HAL SYSCFG Interrupts
  372. * @{
  373. */
  374. #define HAL_SYSCFG_IT_FPU_IOC (SYSCFG_CFGR1_FPU_IE_0) /*!< Floating Point Unit Invalid operation Interrupt */
  375. #define HAL_SYSCFG_IT_FPU_DZC (SYSCFG_CFGR1_FPU_IE_1) /*!< Floating Point Unit Divide-by-zero Interrupt */
  376. #define HAL_SYSCFG_IT_FPU_UFC (SYSCFG_CFGR1_FPU_IE_2) /*!< Floating Point Unit Underflow Interrupt */
  377. #define HAL_SYSCFG_IT_FPU_OFC (SYSCFG_CFGR1_FPU_IE_3) /*!< Floating Point Unit Overflow Interrupt */
  378. #define HAL_SYSCFG_IT_FPU_IDC (SYSCFG_CFGR1_FPU_IE_4) /*!< Floating Point Unit Input denormal Interrupt */
  379. #define HAL_SYSCFG_IT_FPU_IXC (SYSCFG_CFGR1_FPU_IE_5) /*!< Floating Point Unit Inexact Interrupt */
  380. #define IS_HAL_SYSCFG_INTERRUPT(__INTERRUPT__) ((((__INTERRUPT__) & SYSCFG_CFGR1_FPU_IE_0) == SYSCFG_CFGR1_FPU_IE_0) || \
  381. (((__INTERRUPT__) & SYSCFG_CFGR1_FPU_IE_1) == SYSCFG_CFGR1_FPU_IE_1) || \
  382. (((__INTERRUPT__) & SYSCFG_CFGR1_FPU_IE_2) == SYSCFG_CFGR1_FPU_IE_2) || \
  383. (((__INTERRUPT__) & SYSCFG_CFGR1_FPU_IE_3) == SYSCFG_CFGR1_FPU_IE_3) || \
  384. (((__INTERRUPT__) & SYSCFG_CFGR1_FPU_IE_4) == SYSCFG_CFGR1_FPU_IE_4) || \
  385. (((__INTERRUPT__) & SYSCFG_CFGR1_FPU_IE_5) == SYSCFG_CFGR1_FPU_IE_5))
  386. /**
  387. * @}
  388. */
  389. /**
  390. * @}
  391. */
  392. /* Exported macros -----------------------------------------------------------*/
  393. /** @defgroup HAL_Exported_Macros HAL Exported Macros
  394. * @{
  395. */
  396. /** @defgroup Debug_MCU_APB1_Freeze Freeze/Unfreeze APB1 Peripherals in Debug mode
  397. * @{
  398. */
  399. #if defined(DBGMCU_APB1_FZ_DBG_TIM2_STOP)
  400. #define __HAL_DBGMCU_FREEZE_TIM2() (DBGMCU->APB1FZ |= (DBGMCU_APB1_FZ_DBG_TIM2_STOP))
  401. #define __HAL_DBGMCU_UNFREEZE_TIM2() (DBGMCU->APB1FZ &= ~(DBGMCU_APB1_FZ_DBG_TIM2_STOP))
  402. #endif /* DBGMCU_APB1_FZ_DBG_TIM2_STOP */
  403. #if defined(DBGMCU_APB1_FZ_DBG_TIM3_STOP)
  404. #define __HAL_DBGMCU_FREEZE_TIM3() (DBGMCU->APB1FZ |= (DBGMCU_APB1_FZ_DBG_TIM3_STOP))
  405. #define __HAL_DBGMCU_UNFREEZE_TIM3() (DBGMCU->APB1FZ &= ~(DBGMCU_APB1_FZ_DBG_TIM3_STOP))
  406. #endif /* DBGMCU_APB1_FZ_DBG_TIM3_STOP */
  407. #if defined(DBGMCU_APB1_FZ_DBG_TIM4_STOP)
  408. #define __HAL_DBGMCU_FREEZE_TIM4() (DBGMCU->APB1FZ |= (DBGMCU_APB1_FZ_DBG_TIM4_STOP))
  409. #define __HAL_DBGMCU_UNFREEZE_TIM4() (DBGMCU->APB1FZ &= ~(DBGMCU_APB1_FZ_DBG_TIM4_STOP))
  410. #endif /* DBGMCU_APB1_FZ_DBG_TIM4_STOP */
  411. #if defined(DBGMCU_APB1_FZ_DBG_TIM5_STOP)
  412. #define __HAL_DBGMCU_FREEZE_TIM5() (DBGMCU->APB1FZ |= (DBGMCU_APB1_FZ_DBG_TIM5_STOP))
  413. #define __HAL_DBGMCU_UNFREEZE_TIM5() (DBGMCU->APB1FZ &= ~(DBGMCU_APB1_FZ_DBG_TIM5_STOP))
  414. #endif /* DBGMCU_APB1_FZ_DBG_TIM5_STOP */
  415. #if defined(DBGMCU_APB1_FZ_DBG_TIM6_STOP)
  416. #define __HAL_DBGMCU_FREEZE_TIM6() (DBGMCU->APB1FZ |= (DBGMCU_APB1_FZ_DBG_TIM6_STOP))
  417. #define __HAL_DBGMCU_UNFREEZE_TIM6() (DBGMCU->APB1FZ &= ~(DBGMCU_APB1_FZ_DBG_TIM6_STOP))
  418. #endif /* DBGMCU_APB1_FZ_DBG_TIM6_STOP */
  419. #if defined(DBGMCU_APB1_FZ_DBG_TIM7_STOP)
  420. #define __HAL_DBGMCU_FREEZE_TIM7() (DBGMCU->APB1FZ |= (DBGMCU_APB1_FZ_DBG_TIM7_STOP))
  421. #define __HAL_DBGMCU_UNFREEZE_TIM7() (DBGMCU->APB1FZ &= ~(DBGMCU_APB1_FZ_DBG_TIM7_STOP))
  422. #endif /* DBGMCU_APB1_FZ_DBG_TIM7_STOP */
  423. #if defined(DBGMCU_APB1_FZ_DBG_TIM12_STOP)
  424. #define __HAL_DBGMCU_FREEZE_TIM12() (DBGMCU->APB1FZ |= (DBGMCU_APB1_FZ_DBG_TIM12_STOP))
  425. #define __HAL_DBGMCU_UNFREEZE_TIM12() (DBGMCU->APB1FZ &= ~(DBGMCU_APB1_FZ_DBG_TIM12_STOP))
  426. #endif /* DBGMCU_APB1_FZ_DBG_TIM12_STOP */
  427. #if defined(DBGMCU_APB1_FZ_DBG_TIM13_STOP)
  428. #define __HAL_DBGMCU_FREEZE_TIM13() (DBGMCU->APB1FZ |= (DBGMCU_APB1_FZ_DBG_TIM13_STOP))
  429. #define __HAL_DBGMCU_UNFREEZE_TIM13() (DBGMCU->APB1FZ &= ~(DBGMCU_APB1_FZ_DBG_TIM13_STOP))
  430. #endif /* DBGMCU_APB1_FZ_DBG_TIM13_STOP */
  431. #if defined(DBGMCU_APB1_FZ_DBG_TIM14_STOP)
  432. #define __HAL_DBGMCU_FREEZE_TIM14() (DBGMCU->APB1FZ |= (DBGMCU_APB1_FZ_DBG_TIM14_STOP))
  433. #define __HAL_DBGMCU_UNFREEZE_TIM14() (DBGMCU->APB1FZ &= ~(DBGMCU_APB1_FZ_DBG_TIM14_STOP))
  434. #endif /* DBGMCU_APB1_FZ_DBG_TIM14_STOP */
  435. #if defined(DBGMCU_APB1_FZ_DBG_TIM18_STOP)
  436. #define __HAL_FREEZE_TIM18_DBGMCU() (DBGMCU->APB1FZ |= (DBGMCU_APB1_FZ_DBG_TIM18_STOP))
  437. #define __HAL_UNFREEZE_TIM18_DBGMCU() (DBGMCU->APB1FZ &= ~(DBGMCU_APB1_FZ_DBG_TIM18_STOP))
  438. #endif /* DBGMCU_APB1_FZ_DBG_TIM14_STOP */
  439. #if defined(DBGMCU_APB1_FZ_DBG_RTC_STOP)
  440. #define __HAL_DBGMCU_FREEZE_RTC() (DBGMCU->APB1FZ |= (DBGMCU_APB1_FZ_DBG_RTC_STOP))
  441. #define __HAL_DBGMCU_UNFREEZE_RTC() (DBGMCU->APB1FZ &= ~(DBGMCU_APB1_FZ_DBG_RTC_STOP))
  442. #endif /* DBGMCU_APB1_FZ_DBG_RTC_STOP */
  443. #if defined(DBGMCU_APB1_FZ_DBG_WWDG_STOP)
  444. #define __HAL_DBGMCU_FREEZE_WWDG() (DBGMCU->APB1FZ |= (DBGMCU_APB1_FZ_DBG_WWDG_STOP))
  445. #define __HAL_DBGMCU_UNFREEZE_WWDG() (DBGMCU->APB1FZ &= ~(DBGMCU_APB1_FZ_DBG_WWDG_STOP))
  446. #endif /* DBGMCU_APB1_FZ_DBG_WWDG_STOP */
  447. #if defined(DBGMCU_APB1_FZ_DBG_IWDG_STOP)
  448. #define __HAL_DBGMCU_FREEZE_IWDG() (DBGMCU->APB1FZ |= (DBGMCU_APB1_FZ_DBG_IWDG_STOP))
  449. #define __HAL_DBGMCU_UNFREEZE_IWDG() (DBGMCU->APB1FZ &= ~(DBGMCU_APB1_FZ_DBG_IWDG_STOP))
  450. #endif /* DBGMCU_APB1_FZ_DBG_IWDG_STOP */
  451. #if defined(DBGMCU_APB1_FZ_DBG_I2C1_SMBUS_TIMEOUT)
  452. #define __HAL_DBGMCU_FREEZE_I2C1_TIMEOUT() (DBGMCU->APB1FZ |= (DBGMCU_APB1_FZ_DBG_I2C1_SMBUS_TIMEOUT))
  453. #define __HAL_DBGMCU_UNFREEZE_I2C1_TIMEOUT() (DBGMCU->APB1FZ &= ~(DBGMCU_APB1_FZ_DBG_I2C1_SMBUS_TIMEOUT))
  454. #endif /* DBGMCU_APB1_FZ_DBG_I2C1_SMBUS_TIMEOUT */
  455. #if defined(DBGMCU_APB1_FZ_DBG_I2C2_SMBUS_TIMEOUT)
  456. #define __HAL_DBGMCU_FREEZE_I2C2_TIMEOUT() (DBGMCU->APB1FZ |= (DBGMCU_APB1_FZ_DBG_I2C2_SMBUS_TIMEOUT))
  457. #define __HAL_DBGMCU_UNFREEZE_I2C2_TIMEOUT() (DBGMCU->APB1FZ &= ~(DBGMCU_APB1_FZ_DBG_I2C2_SMBUS_TIMEOUT))
  458. #endif /* DBGMCU_APB1_FZ_DBG_I2C2_SMBUS_TIMEOUT */
  459. #if defined(DBGMCU_APB1_FZ_DBG_I2C3_SMBUS_TIMEOUT)
  460. #define __HAL_DBGMCU_FREEZE_I2C3_TIMEOUT() (DBGMCU->APB1FZ |= (DBGMCU_APB1_FZ_DBG_I2C3_SMBUS_TIMEOUT))
  461. #define __HAL_DBGMCU_UNFREEZE_I2C3_TIMEOUT() (DBGMCU->APB1FZ &= ~(DBGMCU_APB1_FZ_DBG_I2C3_SMBUS_TIMEOUT))
  462. #endif /* DBGMCU_APB1_FZ_DBG_I2C3_SMBUS_TIMEOUT */
  463. #if defined(DBGMCU_APB1_FZ_DBG_CAN_STOP)
  464. #define __HAL_FREEZE_CAN_DBGMCU() (DBGMCU->APB1FZ |= (DBGMCU_APB1_FZ_DBG_CAN_STOP))
  465. #define __HAL_UNFREEZE_CAN_DBGMCU() (DBGMCU->APB1FZ &= ~(DBGMCU_APB1_FZ_DBG_CAN_STOP))
  466. #endif /* DBGMCU_APB1_FZ_DBG_CAN_STOP */
  467. /**
  468. * @}
  469. */
  470. /** @defgroup Debug_MCU_APB2_Freeze Freeze/Unfreeze APB2 Peripherals in Debug mode
  471. * @{
  472. */
  473. #if defined(DBGMCU_APB2_FZ_DBG_TIM1_STOP)
  474. #define __HAL_DBGMCU_FREEZE_TIM1() (DBGMCU->APB2FZ |= (DBGMCU_APB2_FZ_DBG_TIM1_STOP))
  475. #define __HAL_DBGMCU_UNFREEZE_TIM1() (DBGMCU->APB2FZ &= ~(DBGMCU_APB2_FZ_DBG_TIM1_STOP))
  476. #endif /* DBGMCU_APB2_FZ_DBG_TIM1_STOP */
  477. #if defined(DBGMCU_APB2_FZ_DBG_TIM8_STOP)
  478. #define __HAL_DBGMCU_FREEZE_TIM8() (DBGMCU->APB2FZ |= (DBGMCU_APB2_FZ_DBG_TIM8_STOP))
  479. #define __HAL_DBGMCU_UNFREEZE_TIM8() (DBGMCU->APB2FZ &= ~(DBGMCU_APB2_FZ_DBG_TIM8_STOP))
  480. #endif /* DBGMCU_APB2_FZ_DBG_TIM8_STOP */
  481. #if defined(DBGMCU_APB2_FZ_DBG_TIM15_STOP)
  482. #define __HAL_DBGMCU_FREEZE_TIM15() (DBGMCU->APB2FZ |= (DBGMCU_APB2_FZ_DBG_TIM15_STOP))
  483. #define __HAL_DBGMCU_UNFREEZE_TIM15() (DBGMCU->APB2FZ &= ~(DBGMCU_APB2_FZ_DBG_TIM15_STOP))
  484. #endif /* DBGMCU_APB2_FZ_DBG_TIM15_STOP */
  485. #if defined(DBGMCU_APB2_FZ_DBG_TIM16_STOP)
  486. #define __HAL_DBGMCU_FREEZE_TIM16() (DBGMCU->APB2FZ |= (DBGMCU_APB2_FZ_DBG_TIM16_STOP))
  487. #define __HAL_DBGMCU_UNFREEZE_TIM16() (DBGMCU->APB2FZ &= ~(DBGMCU_APB2_FZ_DBG_TIM16_STOP))
  488. #endif /* DBGMCU_APB2_FZ_DBG_TIM16_STOP */
  489. #if defined(DBGMCU_APB2_FZ_DBG_TIM17_STOP)
  490. #define __HAL_DBGMCU_FREEZE_TIM17() (DBGMCU->APB2FZ |= (DBGMCU_APB2_FZ_DBG_TIM17_STOP))
  491. #define __HAL_DBGMCU_UNFREEZE_TIM17() (DBGMCU->APB2FZ &= ~(DBGMCU_APB2_FZ_DBG_TIM17_STOP))
  492. #endif /* DBGMCU_APB2_FZ_DBG_TIM17_STOP */
  493. #if defined(DBGMCU_APB2_FZ_DBG_TIM19_STOP)
  494. #define __HAL_FREEZE_TIM19_DBGMCU() (DBGMCU->APB2FZ |= (DBGMCU_APB2_FZ_DBG_TIM19_STOP))
  495. #define __HAL_UNFREEZE_TIM19_DBGMCU() (DBGMCU->APB2FZ &= ~(DBGMCU_APB2_FZ_DBG_TIM19_STOP))
  496. #endif /* DBGMCU_APB2_FZ_DBG_TIM19_STOP */
  497. #if defined(DBGMCU_APB2_FZ_DBG_TIM20_STOP)
  498. #define __HAL_FREEZE_TIM20_DBGMCU() (DBGMCU->APB2FZ |= (DBGMCU_APB2_FZ_DBG_TIM20_STOP))
  499. #define __HAL_UNFREEZE_TIM20_DBGMCU() (DBGMCU->APB2FZ &= ~(DBGMCU_APB2_FZ_DBG_TIM20_STOP))
  500. #endif /* DBGMCU_APB2_FZ_DBG_TIM20_STOP */
  501. #if defined(DBGMCU_APB2_FZ_DBG_HRTIM1_STOP)
  502. #define __HAL_FREEZE_HRTIM1_DBGMCU() (DBGMCU->APB2FZ |= (DBGMCU_APB2_FZ_DBG_HRTIM1_STOP))
  503. #define __HAL_UNFREEZE_HRTIM1_DBGMCU() (DBGMCU->APB2FZ &= ~(DBGMCU_APB2_FZ_DBG_HRTIM1_STOP))
  504. #endif /* DBGMCU_APB2_FZ_DBG_HRTIM1_STOP */
  505. /**
  506. * @}
  507. */
  508. /** @defgroup Memory_Mapping_Selection Memory Mapping Selection
  509. * @{
  510. */
  511. #if defined(SYSCFG_CFGR1_MEM_MODE)
  512. /** @brief Main Flash memory mapped at 0x00000000
  513. */
  514. #define __HAL_SYSCFG_REMAPMEMORY_FLASH() (SYSCFG->CFGR1 &= ~(SYSCFG_CFGR1_MEM_MODE))
  515. #endif /* SYSCFG_CFGR1_MEM_MODE */
  516. #if defined(SYSCFG_CFGR1_MEM_MODE_0)
  517. /** @brief System Flash memory mapped at 0x00000000
  518. */
  519. #define __HAL_SYSCFG_REMAPMEMORY_SYSTEMFLASH() do {SYSCFG->CFGR1 &= ~(SYSCFG_CFGR1_MEM_MODE); \
  520. SYSCFG->CFGR1 |= SYSCFG_CFGR1_MEM_MODE_0; \
  521. }while(0U)
  522. #endif /* SYSCFG_CFGR1_MEM_MODE_0 */
  523. #if defined(SYSCFG_CFGR1_MEM_MODE_0) && defined(SYSCFG_CFGR1_MEM_MODE_1)
  524. /** @brief Embedded SRAM mapped at 0x00000000
  525. */
  526. #define __HAL_SYSCFG_REMAPMEMORY_SRAM() do {SYSCFG->CFGR1 &= ~(SYSCFG_CFGR1_MEM_MODE); \
  527. SYSCFG->CFGR1 |= (SYSCFG_CFGR1_MEM_MODE_0 | SYSCFG_CFGR1_MEM_MODE_1); \
  528. }while(0U)
  529. #endif /* SYSCFG_CFGR1_MEM_MODE_0 && SYSCFG_CFGR1_MEM_MODE_1 */
  530. #if defined(SYSCFG_CFGR1_MEM_MODE_2)
  531. #define __HAL_SYSCFG_FMC_BANK() do {SYSCFG->CFGR1 &= ~(SYSCFG_CFGR1_MEM_MODE); \
  532. SYSCFG->CFGR1 |= (SYSCFG_CFGR1_MEM_MODE_2); \
  533. }while(0U)
  534. #endif /* SYSCFG_CFGR1_MEM_MODE_2 */
  535. /**
  536. * @}
  537. */
  538. /** @defgroup Encoder_Mode Encoder Mode
  539. * @{
  540. */
  541. #if defined(SYSCFG_CFGR1_ENCODER_MODE)
  542. /** @brief No Encoder mode
  543. */
  544. #define __HAL_REMAPENCODER_NONE() (SYSCFG->CFGR1 &= ~(SYSCFG_CFGR1_ENCODER_MODE))
  545. #endif /* SYSCFG_CFGR1_ENCODER_MODE */
  546. #if defined(SYSCFG_CFGR1_ENCODER_MODE_0)
  547. /** @brief Encoder mode : TIM2 IC1 and TIM2 IC2 are connected to TIM15 IC1 and TIM15 IC2 respectively
  548. */
  549. #define __HAL_REMAPENCODER_TIM2() do {SYSCFG->CFGR1 &= ~(SYSCFG_CFGR1_ENCODER_MODE); \
  550. SYSCFG->CFGR1 |= SYSCFG_CFGR1_ENCODER_MODE_0; \
  551. }while(0U)
  552. #endif /* SYSCFG_CFGR1_ENCODER_MODE_0 */
  553. #if defined(SYSCFG_CFGR1_ENCODER_MODE_1)
  554. /** @brief Encoder mode : TIM3 IC1 and TIM3 IC2 are connected to TIM15 IC1 and TIM15 IC2 respectively
  555. */
  556. #define __HAL_REMAPENCODER_TIM3() do {SYSCFG->CFGR1 &= ~(SYSCFG_CFGR1_ENCODER_MODE); \
  557. SYSCFG->CFGR1 |= SYSCFG_CFGR1_ENCODER_MODE_1; \
  558. }while(0U)
  559. #endif /* SYSCFG_CFGR1_ENCODER_MODE_1 */
  560. #if defined(SYSCFG_CFGR1_ENCODER_MODE_0) && defined(SYSCFG_CFGR1_ENCODER_MODE_1)
  561. /** @brief Encoder mode : TIM4 IC1 and TIM4 IC2 are connected to TIM15 IC1 and TIM15 IC2 (STM32F303xB/C and STM32F358xx devices)
  562. */
  563. #define __HAL_REMAPENCODER_TIM4() do {SYSCFG->CFGR1 &= ~(SYSCFG_CFGR1_ENCODER_MODE); \
  564. SYSCFG->CFGR1 |= (SYSCFG_CFGR1_ENCODER_MODE_0 | SYSCFG_CFGR1_ENCODER_MODE_1); \
  565. }while(0U)
  566. #endif /* SYSCFG_CFGR1_ENCODER_MODE_0 && SYSCFG_CFGR1_ENCODER_MODE_1 */
  567. /**
  568. * @}
  569. */
  570. /** @defgroup DMA_Remap_Enable DMA Remap Enable
  571. * @{
  572. */
  573. #if defined(SYSCFG_CFGR3_DMA_RMP) && defined(SYSCFG_CFGR1_DMA_RMP)
  574. /** @brief DMA remapping enable/disable macros
  575. * @param __DMA_REMAP__ This parameter can be a value of @ref HAL_DMA_Remapping
  576. */
  577. #define __HAL_DMA_REMAP_CHANNEL_ENABLE(__DMA_REMAP__) do {assert_param(IS_DMA_REMAP((__DMA_REMAP__))); \
  578. (((__DMA_REMAP__) & HAL_REMAP_CFGR3_MASK) ? \
  579. (SYSCFG->CFGR3 |= ((__DMA_REMAP__) & ~HAL_REMAP_CFGR3_MASK)) : \
  580. (SYSCFG->CFGR1 |= (__DMA_REMAP__))); \
  581. }while(0U)
  582. #define __HAL_DMA_REMAP_CHANNEL_DISABLE(__DMA_REMAP__) do {assert_param(IS_DMA_REMAP((__DMA_REMAP__))); \
  583. (((__DMA_REMAP__) & HAL_REMAP_CFGR3_MASK) ? \
  584. (SYSCFG->CFGR3 &= (~(__DMA_REMAP__) | HAL_REMAP_CFGR3_MASK)) : \
  585. (SYSCFG->CFGR1 &= ~(__DMA_REMAP__))); \
  586. }while(0U)
  587. #elif defined(SYSCFG_CFGR1_DMA_RMP)
  588. /** @brief DMA remapping enable/disable macros
  589. * @param __DMA_REMAP__ This parameter can be a value of @ref HAL_DMA_Remapping
  590. */
  591. #define __HAL_DMA_REMAP_CHANNEL_ENABLE(__DMA_REMAP__) do {assert_param(IS_DMA_REMAP((__DMA_REMAP__))); \
  592. SYSCFG->CFGR1 |= (__DMA_REMAP__); \
  593. }while(0U)
  594. #define __HAL_DMA_REMAP_CHANNEL_DISABLE(__DMA_REMAP__) do {assert_param(IS_DMA_REMAP((__DMA_REMAP__))); \
  595. SYSCFG->CFGR1 &= ~(__DMA_REMAP__); \
  596. }while(0U)
  597. #endif /* SYSCFG_CFGR3_DMA_RMP || SYSCFG_CFGR1_DMA_RMP */
  598. /**
  599. * @}
  600. */
  601. /** @defgroup FastModePlus_GPIO Fast-mode Plus on GPIO
  602. * @{
  603. */
  604. /** @brief Fast-mode Plus driving capability enable/disable macros
  605. * @param __FASTMODEPLUS__ This parameter can be a value of @ref SYSCFG_FastModePlus_GPIO values.
  606. * That you can find above these macros.
  607. */
  608. #define __HAL_SYSCFG_FASTMODEPLUS_ENABLE(__FASTMODEPLUS__) do {assert_param(IS_SYSCFG_FASTMODEPLUS((__FASTMODEPLUS__)));\
  609. SET_BIT(SYSCFG->CFGR1, (__FASTMODEPLUS__));\
  610. }while(0U)
  611. #define __HAL_SYSCFG_FASTMODEPLUS_DISABLE(__FASTMODEPLUS__) do {assert_param(IS_SYSCFG_FASTMODEPLUS((__FASTMODEPLUS__)));\
  612. CLEAR_BIT(SYSCFG->CFGR1, (__FASTMODEPLUS__));\
  613. }while(0U)
  614. /**
  615. * @}
  616. */
  617. /** @defgroup Floating_Point_Unit_Interrupts_Enable Floating Point Unit Interrupts Enable
  618. * @{
  619. */
  620. /** @brief SYSCFG interrupt enable/disable macros
  621. * @param __INTERRUPT__ This parameter can be a value of @ref HAL_SYSCFG_Interrupts
  622. */
  623. #define __HAL_SYSCFG_INTERRUPT_ENABLE(__INTERRUPT__) do {assert_param(IS_HAL_SYSCFG_INTERRUPT((__INTERRUPT__))); \
  624. SYSCFG->CFGR1 |= (__INTERRUPT__); \
  625. }while(0U)
  626. #define __HAL_SYSCFG_INTERRUPT_DISABLE(__INTERRUPT__) do {assert_param(IS_HAL_SYSCFG_INTERRUPT((__INTERRUPT__))); \
  627. SYSCFG->CFGR1 &= ~(__INTERRUPT__); \
  628. }while(0U)
  629. /**
  630. * @}
  631. */
  632. #if defined(SYSCFG_CFGR1_USB_IT_RMP)
  633. /** @defgroup USB_Interrupt_Remap USB Interrupt Remap
  634. * @{
  635. */
  636. /** @brief USB interrupt remapping enable/disable macros
  637. */
  638. #define __HAL_REMAPINTERRUPT_USB_ENABLE() (SYSCFG->CFGR1 |= (SYSCFG_CFGR1_USB_IT_RMP))
  639. #define __HAL_REMAPINTERRUPT_USB_DISABLE() (SYSCFG->CFGR1 &= ~(SYSCFG_CFGR1_USB_IT_RMP))
  640. /**
  641. * @}
  642. */
  643. #endif /* SYSCFG_CFGR1_USB_IT_RMP */
  644. #if defined(SYSCFG_CFGR1_VBAT)
  645. /** @defgroup VBAT_Monitoring_Enable VBAT Monitoring Enable
  646. * @{
  647. */
  648. /** @brief SYSCFG interrupt enable/disable macros
  649. */
  650. #define __HAL_SYSCFG_VBAT_MONITORING_ENABLE() (SYSCFG->CFGR1 |= (SYSCFG_CFGR1_VBAT))
  651. #define __HAL_SYSCFG_VBAT_MONITORING_DISABLE() (SYSCFG->CFGR1 &= ~(SYSCFG_CFGR1_VBAT))
  652. /**
  653. * @}
  654. */
  655. #endif /* SYSCFG_CFGR1_VBAT */
  656. #if defined(SYSCFG_CFGR2_LOCKUP_LOCK)
  657. /** @defgroup Cortex_Lockup_Enable Cortex Lockup Enable
  658. * @{
  659. */
  660. /** @brief SYSCFG Break Lockup lock
  661. * Enables and locks the connection of Cortex-M4 LOCKUP (Hardfault) output to TIM1/15/16/17 Break input
  662. * @note The selected configuration is locked and can be unlocked by system reset
  663. */
  664. #define __HAL_SYSCFG_BREAK_LOCKUP_LOCK() do {SYSCFG->CFGR2 &= ~(SYSCFG_CFGR2_LOCKUP_LOCK); \
  665. SYSCFG->CFGR2 |= SYSCFG_CFGR2_LOCKUP_LOCK; \
  666. }while(0U)
  667. /**
  668. * @}
  669. */
  670. #endif /* SYSCFG_CFGR2_LOCKUP_LOCK */
  671. #if defined(SYSCFG_CFGR2_PVD_LOCK)
  672. /** @defgroup PVD_Lock_Enable PVD Lock
  673. * @{
  674. */
  675. /** @brief SYSCFG Break PVD lock
  676. * Enables and locks the PVD connection with Timer1/8/15/16/17 Break Input, , as well as the PVDE and PLS[2:0] in the PWR_CR register
  677. * @note The selected configuration is locked and can be unlocked by system reset
  678. */
  679. #define __HAL_SYSCFG_BREAK_PVD_LOCK() do {SYSCFG->CFGR2 &= ~(SYSCFG_CFGR2_PVD_LOCK); \
  680. SYSCFG->CFGR2 |= SYSCFG_CFGR2_PVD_LOCK; \
  681. }while(0U)
  682. /**
  683. * @}
  684. */
  685. #endif /* SYSCFG_CFGR2_PVD_LOCK */
  686. #if defined(SYSCFG_CFGR2_SRAM_PARITY_LOCK)
  687. /** @defgroup SRAM_Parity_Lock SRAM Parity Lock
  688. * @{
  689. */
  690. /** @brief SYSCFG Break SRAM PARITY lock
  691. * Enables and locks the SRAM_PARITY error signal with Break Input of TIMER1/8/15/16/17
  692. * @note The selected configuration is locked and can be unlocked by system reset
  693. */
  694. #define __HAL_SYSCFG_BREAK_SRAMPARITY_LOCK() do {SYSCFG->CFGR2 &= ~(SYSCFG_CFGR2_SRAM_PARITY_LOCK); \
  695. SYSCFG->CFGR2 |= SYSCFG_CFGR2_SRAM_PARITY_LOCK; \
  696. }while(0U)
  697. /**
  698. * @}
  699. */
  700. #endif /* SYSCFG_CFGR2_SRAM_PARITY_LOCK */
  701. /** @defgroup Trigger_Remapping_Enable Trigger Remapping Enable
  702. * @{
  703. */
  704. #if defined(SYSCFG_CFGR3_TRIGGER_RMP)
  705. /** @brief Trigger remapping enable/disable macros
  706. * @param __TRIGGER_REMAP__ This parameter can be a value of @ref HAL_Trigger_Remapping
  707. */
  708. #define __HAL_REMAPTRIGGER_ENABLE(__TRIGGER_REMAP__) do {assert_param(IS_HAL_REMAPTRIGGER((__TRIGGER_REMAP__))); \
  709. (((__TRIGGER_REMAP__) & HAL_REMAP_CFGR3_MASK) ? \
  710. (SYSCFG->CFGR3 |= ((__TRIGGER_REMAP__) & ~HAL_REMAP_CFGR3_MASK)) : \
  711. (SYSCFG->CFGR1 |= (__TRIGGER_REMAP__))); \
  712. }while(0U)
  713. #define __HAL_REMAPTRIGGER_DISABLE(__TRIGGER_REMAP__) do {assert_param(IS_HAL_REMAPTRIGGER((__TRIGGER_REMAP__))); \
  714. (((__TRIGGER_REMAP__) & HAL_REMAP_CFGR3_MASK) ? \
  715. (SYSCFG->CFGR3 &= (~(__TRIGGER_REMAP__) | HAL_REMAP_CFGR3_MASK)) : \
  716. (SYSCFG->CFGR1 &= ~(__TRIGGER_REMAP__))); \
  717. }while(0U)
  718. #else
  719. /** @brief Trigger remapping enable/disable macros
  720. * @param __TRIGGER_REMAP__ This parameter can be a value of @ref HAL_Trigger_Remapping
  721. */
  722. #define __HAL_REMAPTRIGGER_ENABLE(__TRIGGER_REMAP__) do {assert_param(IS_HAL_REMAPTRIGGER((__TRIGGER_REMAP__))); \
  723. (SYSCFG->CFGR1 |= (__TRIGGER_REMAP__)); \
  724. }while(0U)
  725. #define __HAL_REMAPTRIGGER_DISABLE(__TRIGGER_REMAP__) do {assert_param(IS_HAL_REMAPTRIGGER((__TRIGGER_REMAP__))); \
  726. (SYSCFG->CFGR1 &= ~(__TRIGGER_REMAP__)); \
  727. }while(0U)
  728. #endif /* SYSCFG_CFGR3_TRIGGER_RMP */
  729. /**
  730. * @}
  731. */
  732. #if defined (STM32F302xE) || defined (STM32F303xE) || defined (STM32F398xx)
  733. /** @defgroup ADC_Trigger_Remapping_Enable ADC Trigger Remapping Enable
  734. * @{
  735. */
  736. /** @brief ADC trigger remapping enable/disable macros
  737. * @param __ADCTRIGGER_REMAP__ This parameter can be a value of @ref HAL_ADC_Trigger_Remapping
  738. */
  739. #define __HAL_REMAPADCTRIGGER_ENABLE(__ADCTRIGGER_REMAP__) do {assert_param(IS_HAL_REMAPADCTRIGGER((__ADCTRIGGER_REMAP__))); \
  740. (SYSCFG->CFGR4 |= (__ADCTRIGGER_REMAP__)); \
  741. }while(0U)
  742. #define __HAL_REMAPADCTRIGGER_DISABLE(__ADCTRIGGER_REMAP__) do {assert_param(IS_HAL_REMAPADCTRIGGER((__ADCTRIGGER_REMAP__))); \
  743. (SYSCFG->CFGR4 &= ~(__ADCTRIGGER_REMAP__)); \
  744. }while(0U)
  745. /**
  746. * @}
  747. */
  748. #endif /* STM32F302xE || STM32F303xE || STM32F398xx */
  749. #if defined(SYSCFG_CFGR2_BYP_ADDR_PAR)
  750. /** @defgroup RAM_Parity_Check_Disable RAM Parity Check Disable
  751. * @{
  752. */
  753. /**
  754. * @brief Parity check on RAM disable macro
  755. * @note Disabling the parity check on RAM locks the configuration bit.
  756. * To re-enable the parity check on RAM perform a system reset.
  757. */
  758. #define __HAL_SYSCFG_RAM_PARITYCHECK_DISABLE() (*(__IO uint32_t *) CFGR2_BYPADDRPAR_BB = 0x00000001U)
  759. /**
  760. * @}
  761. */
  762. #endif /* SYSCFG_CFGR2_BYP_ADDR_PAR */
  763. #if defined(SYSCFG_RCR_PAGE0)
  764. /** @defgroup CCM_RAM_Page_Write_Protection_Enable CCM RAM page write protection enable
  765. * @{
  766. */
  767. /** @brief CCM RAM page write protection enable macro
  768. * @param __PAGE_WP__ This parameter can be a value of @ref HAL_Page_Write_Protection
  769. * @note write protection can only be disabled by a system reset
  770. */
  771. #define __HAL_SYSCFG_SRAM_WRP_ENABLE(__PAGE_WP__) do {assert_param(IS_HAL_SYSCFG_WP_PAGE((__PAGE_WP__))); \
  772. SYSCFG->RCR |= (__PAGE_WP__); \
  773. }while(0U)
  774. /**
  775. * @}
  776. */
  777. #endif /* SYSCFG_RCR_PAGE0 */
  778. /**
  779. * @}
  780. */
  781. /* Private macro -------------------------------------------------------------*/
  782. /** @defgroup HAL_Private_Macros HAL Private Macros
  783. * @{
  784. */
  785. #define IS_TICKFREQ(FREQ) (((FREQ) == HAL_TICK_FREQ_10HZ) || \
  786. ((FREQ) == HAL_TICK_FREQ_100HZ) || \
  787. ((FREQ) == HAL_TICK_FREQ_1KHZ))
  788. /**
  789. * @}
  790. */
  791. /* Exported functions --------------------------------------------------------*/
  792. /** @addtogroup HAL_Exported_Functions HAL Exported Functions
  793. * @{
  794. */
  795. /** @addtogroup HAL_Exported_Functions_Group1 Initialization and de-initialization Functions
  796. * @brief Initialization and de-initialization functions
  797. * @{
  798. */
  799. /* Initialization and de-initialization functions ******************************/
  800. HAL_StatusTypeDef HAL_Init(void);
  801. HAL_StatusTypeDef HAL_DeInit(void);
  802. void HAL_MspInit(void);
  803. void HAL_MspDeInit(void);
  804. HAL_StatusTypeDef HAL_InitTick (uint32_t TickPriority);
  805. /**
  806. * @}
  807. */
  808. /* Exported variables ---------------------------------------------------------*/
  809. /** @addtogroup HAL_Exported_Variables
  810. * @{
  811. */
  812. extern __IO uint32_t uwTick;
  813. extern uint32_t uwTickPrio;
  814. extern HAL_TickFreqTypeDef uwTickFreq;
  815. /**
  816. * @}
  817. */
  818. /** @addtogroup HAL_Exported_Functions_Group2 HAL Control functions
  819. * @brief HAL Control functions
  820. * @{
  821. */
  822. /* Peripheral Control functions ************************************************/
  823. void HAL_IncTick(void);
  824. void HAL_Delay(uint32_t Delay);
  825. void HAL_SuspendTick(void);
  826. void HAL_ResumeTick(void);
  827. uint32_t HAL_GetTick(void);
  828. uint32_t HAL_GetTickPrio(void);
  829. HAL_StatusTypeDef HAL_SetTickFreq(HAL_TickFreqTypeDef Freq);
  830. HAL_TickFreqTypeDef HAL_GetTickFreq(void);
  831. uint32_t HAL_GetHalVersion(void);
  832. uint32_t HAL_GetREVID(void);
  833. uint32_t HAL_GetDEVID(void);
  834. uint32_t HAL_GetUIDw0(void);
  835. uint32_t HAL_GetUIDw1(void);
  836. uint32_t HAL_GetUIDw2(void);
  837. void HAL_DBGMCU_EnableDBGSleepMode(void);
  838. void HAL_DBGMCU_DisableDBGSleepMode(void);
  839. void HAL_DBGMCU_EnableDBGStopMode(void);
  840. void HAL_DBGMCU_DisableDBGStopMode(void);
  841. void HAL_DBGMCU_EnableDBGStandbyMode(void);
  842. void HAL_DBGMCU_DisableDBGStandbyMode(void);
  843. /**
  844. * @}
  845. */
  846. /**
  847. * @}
  848. */
  849. /**
  850. * @}
  851. */
  852. /**
  853. * @}
  854. */
  855. #ifdef __cplusplus
  856. }
  857. #endif
  858. #endif /* __STM32F3xx_HAL_H */
  859. /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/