stm32f3xx_hal.h 53 KB

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