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

968 lines
56 KiB

  1. /**
  2. ******************************************************************************
  3. * @file stm32h7xx_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) 2017 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 STM32H7xx_HAL_H
  22. #define STM32H7xx_HAL_H
  23. #ifdef __cplusplus
  24. extern "C" {
  25. #endif
  26. /* Includes ------------------------------------------------------------------*/
  27. #include "stm32h7xx_hal_conf.h"
  28. /** @addtogroup STM32H7xx_HAL_Driver
  29. * @{
  30. */
  31. /** @addtogroup HAL
  32. * @{
  33. */
  34. /* Exported types ------------------------------------------------------------*/
  35. /** @defgroup HAL_TICK_FREQ Tick Frequency
  36. * @{
  37. */
  38. typedef enum
  39. {
  40. HAL_TICK_FREQ_10HZ = 100U,
  41. HAL_TICK_FREQ_100HZ = 10U,
  42. HAL_TICK_FREQ_1KHZ = 1U,
  43. HAL_TICK_FREQ_DEFAULT = HAL_TICK_FREQ_1KHZ
  44. } HAL_TickFreqTypeDef;
  45. /**
  46. * @}
  47. */
  48. /* Exported constants --------------------------------------------------------*/
  49. /** @defgroup REV_ID device revision ID
  50. * @{
  51. */
  52. #define REV_ID_Y ((uint32_t)0x1003) /*!< STM32H7 rev.Y */
  53. #define REV_ID_B ((uint32_t)0x2000) /*!< STM32H7 rev.B */
  54. #define REV_ID_X ((uint32_t)0x2001) /*!< STM32H7 rev.X */
  55. #define REV_ID_V ((uint32_t)0x2003) /*!< STM32H7 rev.V */
  56. /**
  57. * @}
  58. */
  59. /** @defgroup SYSCFG_VREFBUF_VoltageScale VREFBUF Voltage Scale
  60. * @{
  61. */
  62. #define SYSCFG_VREFBUF_VOLTAGE_SCALE0 VREFBUF_CSR_VRS_OUT2 /*!< Voltage reference scale 0 (VREF_OUT2) */
  63. #define SYSCFG_VREFBUF_VOLTAGE_SCALE1 VREFBUF_CSR_VRS_OUT1 /*!< Voltage reference scale 1 (VREF_OUT1) */
  64. #define SYSCFG_VREFBUF_VOLTAGE_SCALE2 VREFBUF_CSR_VRS_OUT4 /*!< Voltage reference scale 2 (VREF_OUT4) */
  65. #define SYSCFG_VREFBUF_VOLTAGE_SCALE3 VREFBUF_CSR_VRS_OUT3 /*!< Voltage reference scale 3 (VREF_OUT3) */
  66. #define IS_SYSCFG_VREFBUF_VOLTAGE_SCALE(__SCALE__) (((__SCALE__) == SYSCFG_VREFBUF_VOLTAGE_SCALE0) || \
  67. ((__SCALE__) == SYSCFG_VREFBUF_VOLTAGE_SCALE1) || \
  68. ((__SCALE__) == SYSCFG_VREFBUF_VOLTAGE_SCALE2) || \
  69. ((__SCALE__) == SYSCFG_VREFBUF_VOLTAGE_SCALE3))
  70. /**
  71. * @}
  72. */
  73. /** @defgroup SYSCFG_VREFBUF_HighImpedance VREFBUF High Impedance
  74. * @{
  75. */
  76. #define SYSCFG_VREFBUF_HIGH_IMPEDANCE_DISABLE ((uint32_t)0x00000000) /*!< VREF_plus pin is internally connected to Voltage reference buffer output */
  77. #define SYSCFG_VREFBUF_HIGH_IMPEDANCE_ENABLE VREFBUF_CSR_HIZ /*!< VREF_plus pin is high impedance */
  78. #define IS_SYSCFG_VREFBUF_HIGH_IMPEDANCE(__VALUE__) (((__VALUE__) == SYSCFG_VREFBUF_HIGH_IMPEDANCE_DISABLE) || \
  79. ((__VALUE__) == SYSCFG_VREFBUF_HIGH_IMPEDANCE_ENABLE))
  80. #define IS_SYSCFG_VREFBUF_TRIMMING(__VALUE__) (((__VALUE__) > 0UL) && ((__VALUE__) <= VREFBUF_CCR_TRIM))
  81. /**
  82. * @}
  83. */
  84. /** @defgroup SYSCFG_Ethernet_Config Ethernet Config
  85. * @{
  86. */
  87. #define SYSCFG_ETH_MII ((uint32_t)0x00000000) /*!< Select the Media Independent Interface */
  88. #define SYSCFG_ETH_RMII SYSCFG_PMCR_EPIS_SEL_2 /*!< Select the Reduced Media Independent Interface */
  89. #define IS_SYSCFG_ETHERNET_CONFIG(CONFIG) (((CONFIG) == SYSCFG_ETH_MII) || \
  90. ((CONFIG) == SYSCFG_ETH_RMII))
  91. /**
  92. * @}
  93. */
  94. /** @defgroup SYSCFG_Analog_Switch_Config Analog Switch Config
  95. * @{
  96. */
  97. #define SYSCFG_SWITCH_PA0 SYSCFG_PMCR_PA0SO /*!< Select PA0 analog switch */
  98. #define SYSCFG_SWITCH_PA1 SYSCFG_PMCR_PA1SO /*!< Select PA1 analog switch */
  99. #define SYSCFG_SWITCH_PC2 SYSCFG_PMCR_PC2SO /*!< Select PC2 analog switch */
  100. #define SYSCFG_SWITCH_PC3 SYSCFG_PMCR_PC3SO /*!< Select PC3 analog switch */
  101. #define IS_SYSCFG_ANALOG_SWITCH(SWITCH) ((((SWITCH) & SYSCFG_SWITCH_PA0) == SYSCFG_SWITCH_PA0)|| \
  102. (((SWITCH) & SYSCFG_SWITCH_PA1) == SYSCFG_SWITCH_PA1) || \
  103. (((SWITCH) & SYSCFG_SWITCH_PC2) == SYSCFG_SWITCH_PC2) || \
  104. (((SWITCH) & SYSCFG_SWITCH_PC3) == SYSCFG_SWITCH_PC3))
  105. #define SYSCFG_SWITCH_PA0_OPEN SYSCFG_PMCR_PA0SO /*!< PA0 analog switch opened */
  106. #define SYSCFG_SWITCH_PA0_CLOSE ((uint32_t)0x00000000) /*!< PA0 analog switch closed */
  107. #define SYSCFG_SWITCH_PA1_OPEN SYSCFG_PMCR_PA1SO /*!< PA1 analog switch opened */
  108. #define SYSCFG_SWITCH_PA1_CLOSE ((uint32_t)0x00000000) /*!< PA1 analog switch closed*/
  109. #define SYSCFG_SWITCH_PC2_OPEN SYSCFG_PMCR_PC2SO /*!< PC2 analog switch opened */
  110. #define SYSCFG_SWITCH_PC2_CLOSE ((uint32_t)0x00000000) /*!< PC2 analog switch closed */
  111. #define SYSCFG_SWITCH_PC3_OPEN SYSCFG_PMCR_PC3SO /*!< PC3 analog switch opened */
  112. #define SYSCFG_SWITCH_PC3_CLOSE ((uint32_t)0x00000000) /*!< PC3 analog switch closed */
  113. #define IS_SYSCFG_SWITCH_STATE(STATE) ((((STATE) & SYSCFG_SWITCH_PA0_OPEN) == SYSCFG_SWITCH_PA0_OPEN) || \
  114. (((STATE) & SYSCFG_SWITCH_PA0_CLOSE) == SYSCFG_SWITCH_PA0_CLOSE) || \
  115. (((STATE) & SYSCFG_SWITCH_PA1_OPEN) == SYSCFG_SWITCH_PA1_OPEN) || \
  116. (((STATE) & SYSCFG_SWITCH_PA1_CLOSE) == SYSCFG_SWITCH_PA1_CLOSE) || \
  117. (((STATE) & SYSCFG_SWITCH_PC2_OPEN) == SYSCFG_SWITCH_PC2_OPEN) || \
  118. (((STATE) & SYSCFG_SWITCH_PC2_CLOSE) == SYSCFG_SWITCH_PC2_CLOSE) || \
  119. (((STATE) & SYSCFG_SWITCH_PC3_OPEN) == SYSCFG_SWITCH_PC3_OPEN) || \
  120. (((STATE) & SYSCFG_SWITCH_PC3_CLOSE) == SYSCFG_SWITCH_PC3_CLOSE))
  121. /**
  122. * @}
  123. */
  124. /** @defgroup SYSCFG_Boot_Config Boot Config
  125. * @{
  126. */
  127. #define SYSCFG_BOOT_ADDR0 ((uint32_t)0x00000000) /*!< Select Boot address0 */
  128. #define SYSCFG_BOOT_ADDR1 ((uint32_t)0x00000001) /*!< Select Boot address1 */
  129. #define IS_SYSCFG_BOOT_REGISTER(REGISTER) (((REGISTER) == SYSCFG_BOOT_ADDR0)|| \
  130. ((REGISTER) == SYSCFG_BOOT_ADDR1))
  131. #define IS_SYSCFG_BOOT_ADDRESS(ADDRESS) ((ADDRESS) < PERIPH_BASE)
  132. /**
  133. * @}
  134. */
  135. /** @defgroup SYSCFG_IOCompenstionCell_Config IOCompenstionCell Config
  136. * @{
  137. */
  138. #define SYSCFG_CELL_CODE ((uint32_t)0x00000000) /*!< Select Code from the cell */
  139. #define SYSCFG_REGISTER_CODE SYSCFG_CCCSR_CS /*!< Code from the SYSCFG compensation cell code register */
  140. #define IS_SYSCFG_CODE_SELECT(SELECT) (((SELECT) == SYSCFG_CELL_CODE)|| \
  141. ((SELECT) == SYSCFG_REGISTER_CODE))
  142. #define IS_SYSCFG_CODE_CONFIG(CONFIG) ((CONFIG) < (0x10UL))
  143. /**
  144. * @}
  145. */
  146. /** @defgroup EXTI_Event_Input_Config Event Input Config
  147. * @{
  148. */
  149. #define EXTI_MODE_IT ((uint32_t)0x00010000)
  150. #define EXTI_MODE_EVT ((uint32_t)0x00020000)
  151. #define EXTI_RISING_EDGE ((uint32_t)0x00100000)
  152. #define EXTI_FALLING_EDGE ((uint32_t)0x00200000)
  153. #define IS_EXTI_EDGE_LINE(EDGE) (((EDGE) == EXTI_RISING_EDGE) || ((EDGE) == EXTI_FALLING_EDGE))
  154. #define IS_EXTI_MODE_LINE(MODE) (((MODE) == EXTI_MODE_IT) || ((MODE) == EXTI_MODE_EVT))
  155. #define EXTI_LINE0 ((uint32_t)0x00) /*!< External interrupt LINE 0 */
  156. #define EXTI_LINE1 ((uint32_t)0x01) /*!< External interrupt LINE 1 */
  157. #define EXTI_LINE2 ((uint32_t)0x02) /*!< External interrupt LINE 2 */
  158. #define EXTI_LINE3 ((uint32_t)0x03) /*!< External interrupt LINE 3 */
  159. #define EXTI_LINE4 ((uint32_t)0x04) /*!< External interrupt LINE 4 */
  160. #define EXTI_LINE5 ((uint32_t)0x05) /*!< External interrupt LINE 5 */
  161. #define EXTI_LINE6 ((uint32_t)0x06) /*!< External interrupt LINE 6 */
  162. #define EXTI_LINE7 ((uint32_t)0x07) /*!< External interrupt LINE 7 */
  163. #define EXTI_LINE8 ((uint32_t)0x08) /*!< External interrupt LINE 8 */
  164. #define EXTI_LINE9 ((uint32_t)0x09) /*!< External interrupt LINE 9 */
  165. #define EXTI_LINE10 ((uint32_t)0x0A) /*!< External interrupt LINE 10 */
  166. #define EXTI_LINE11 ((uint32_t)0x0B) /*!< External interrupt LINE 11 */
  167. #define EXTI_LINE12 ((uint32_t)0x0C) /*!< External interrupt LINE 12 */
  168. #define EXTI_LINE13 ((uint32_t)0x0D) /*!< External interrupt LINE 13 */
  169. #define EXTI_LINE14 ((uint32_t)0x0E) /*!< External interrupt LINE 14 */
  170. #define EXTI_LINE15 ((uint32_t)0x0F) /*!< External interrupt LINE 15 */
  171. #define EXTI_LINE16 ((uint32_t)0x10)
  172. #define EXTI_LINE17 ((uint32_t)0x11)
  173. #define EXTI_LINE18 ((uint32_t)0x12)
  174. #define EXTI_LINE19 ((uint32_t)0x13)
  175. #define EXTI_LINE20 ((uint32_t)0x14)
  176. #define EXTI_LINE21 ((uint32_t)0x15)
  177. #define EXTI_LINE22 ((uint32_t)0x16)
  178. #define EXTI_LINE23 ((uint32_t)0x17)
  179. #define EXTI_LINE24 ((uint32_t)0x18)
  180. #define EXTI_LINE25 ((uint32_t)0x19)
  181. #define EXTI_LINE26 ((uint32_t)0x1A)
  182. #define EXTI_LINE27 ((uint32_t)0x1B)
  183. #define EXTI_LINE28 ((uint32_t)0x1C)
  184. #define EXTI_LINE29 ((uint32_t)0x1D)
  185. #define EXTI_LINE30 ((uint32_t)0x1E)
  186. #define EXTI_LINE31 ((uint32_t)0x1F)
  187. #define EXTI_LINE32 ((uint32_t)0x20)
  188. #define EXTI_LINE33 ((uint32_t)0x21)
  189. #define EXTI_LINE34 ((uint32_t)0x22)
  190. #define EXTI_LINE35 ((uint32_t)0x23)
  191. #define EXTI_LINE36 ((uint32_t)0x24)
  192. #define EXTI_LINE37 ((uint32_t)0x25)
  193. #define EXTI_LINE38 ((uint32_t)0x26)
  194. #define EXTI_LINE39 ((uint32_t)0x27)
  195. #define EXTI_LINE40 ((uint32_t)0x28)
  196. #define EXTI_LINE41 ((uint32_t)0x29)
  197. #define EXTI_LINE42 ((uint32_t)0x2A)
  198. #define EXTI_LINE43 ((uint32_t)0x2B)
  199. #define EXTI_LINE44 ((uint32_t)0x2C)
  200. /* EXTI_LINE45 Reserved */
  201. #if defined(DUAL_CORE)
  202. #define EXTI_LINE46 ((uint32_t)0x2E)
  203. #else
  204. /* EXTI_LINE46 Reserved */
  205. #endif
  206. #define EXTI_LINE47 ((uint32_t)0x2F)
  207. #define EXTI_LINE48 ((uint32_t)0x30)
  208. #define EXTI_LINE49 ((uint32_t)0x31)
  209. #define EXTI_LINE50 ((uint32_t)0x32)
  210. #define EXTI_LINE51 ((uint32_t)0x33)
  211. #define EXTI_LINE52 ((uint32_t)0x34)
  212. #define EXTI_LINE53 ((uint32_t)0x35)
  213. #define EXTI_LINE54 ((uint32_t)0x36)
  214. #define EXTI_LINE55 ((uint32_t)0x37)
  215. #define EXTI_LINE56 ((uint32_t)0x38)
  216. #define EXTI_LINE57 ((uint32_t)0x39)
  217. #define EXTI_LINE58 ((uint32_t)0x3A)
  218. #define EXTI_LINE59 ((uint32_t)0x3B)
  219. #define EXTI_LINE60 ((uint32_t)0x3C)
  220. #define EXTI_LINE61 ((uint32_t)0x3D)
  221. #define EXTI_LINE62 ((uint32_t)0x3E)
  222. #define EXTI_LINE63 ((uint32_t)0x3F)
  223. #define EXTI_LINE64 ((uint32_t)0x40)
  224. #define EXTI_LINE65 ((uint32_t)0x41)
  225. #define EXTI_LINE66 ((uint32_t)0x42)
  226. #define EXTI_LINE67 ((uint32_t)0x43)
  227. #define EXTI_LINE68 ((uint32_t)0x44)
  228. #define EXTI_LINE69 ((uint32_t)0x45)
  229. #define EXTI_LINE70 ((uint32_t)0x46)
  230. #define EXTI_LINE71 ((uint32_t)0x47)
  231. #define EXTI_LINE72 ((uint32_t)0x48)
  232. #define EXTI_LINE73 ((uint32_t)0x49)
  233. #define EXTI_LINE74 ((uint32_t)0x4A)
  234. #define EXTI_LINE75 ((uint32_t)0x4B)
  235. #define EXTI_LINE76 ((uint32_t)0x4C)
  236. #if defined(DUAL_CORE)
  237. #define EXTI_LINE77 ((uint32_t)0x4D)
  238. #define EXTI_LINE78 ((uint32_t)0x4E)
  239. #define EXTI_LINE79 ((uint32_t)0x4F)
  240. #define EXTI_LINE80 ((uint32_t)0x50)
  241. /* EXTI_LINE81 Reserved */
  242. #define EXTI_LINE82 ((uint32_t)0x52)
  243. /* EXTI_LINE83 Reserved */
  244. #define EXTI_LINE84 ((uint32_t)0x54)
  245. #define EXTI_LINE85 ((uint32_t)0x55)
  246. #define EXTI_LINE86 ((uint32_t)0x56)
  247. #define EXTI_LINE87 ((uint32_t)0x57)
  248. /* EXTI_LINE88 Reserved */
  249. #else
  250. /* EXTI_LINE77 Reserved */
  251. /* EXTI_LINE78 Reserved */
  252. /* EXTI_LINE79 Reserved */
  253. /* EXTI_LINE80 Reserved */
  254. /* EXTI_LINE81 Reserved */
  255. /* EXTI_LINE82 Reserved */
  256. /* EXTI_LINE83 Reserved */
  257. /* EXTI_LINE84 Reserved */
  258. #define EXTI_LINE85 ((uint32_t)0x55)
  259. #define EXTI_LINE86 ((uint32_t)0x56)
  260. #define EXTI_LINE87 ((uint32_t)0x57)
  261. /* EXTI_LINE88 Reserved */
  262. #endif
  263. #if defined(DUAL_CORE)
  264. #define IS_HAL_EXTI_CONFIG_LINE(LINE) (((LINE) == EXTI_LINE0) || ((LINE) == EXTI_LINE1) || \
  265. ((LINE) == EXTI_LINE2) || ((LINE) == EXTI_LINE3) || \
  266. ((LINE) == EXTI_LINE4) || ((LINE) == EXTI_LINE5) || \
  267. ((LINE) == EXTI_LINE6) || ((LINE) == EXTI_LINE7) || \
  268. ((LINE) == EXTI_LINE8) || ((LINE) == EXTI_LINE9) || \
  269. ((LINE) == EXTI_LINE10) || ((LINE) == EXTI_LINE11) || \
  270. ((LINE) == EXTI_LINE12) || ((LINE) == EXTI_LINE13) || \
  271. ((LINE) == EXTI_LINE14) || ((LINE) == EXTI_LINE15) || \
  272. ((LINE) == EXTI_LINE16) || ((LINE) == EXTI_LINE17) || \
  273. ((LINE) == EXTI_LINE18) || ((LINE) == EXTI_LINE19) || \
  274. ((LINE) == EXTI_LINE20) || ((LINE) == EXTI_LINE21) || \
  275. ((LINE) == EXTI_LINE49) || ((LINE) == EXTI_LINE51) || \
  276. ((LINE) == EXTI_LINE82) || ((LINE) == EXTI_LINE84) || \
  277. ((LINE) == EXTI_LINE85) || ((LINE) == EXTI_LINE86))
  278. #else
  279. #define IS_HAL_EXTI_CONFIG_LINE(LINE) (((LINE) == EXTI_LINE0) || ((LINE) == EXTI_LINE1)|| \
  280. ((LINE) == EXTI_LINE2) || ((LINE) == EXTI_LINE3) || \
  281. ((LINE) == EXTI_LINE4) || ((LINE) == EXTI_LINE5) || \
  282. ((LINE) == EXTI_LINE6) || ((LINE) == EXTI_LINE7) || \
  283. ((LINE) == EXTI_LINE8) || ((LINE) == EXTI_LINE9) || \
  284. ((LINE) == EXTI_LINE10) || ((LINE) == EXTI_LINE11) || \
  285. ((LINE) == EXTI_LINE12) || ((LINE) == EXTI_LINE13) || \
  286. ((LINE) == EXTI_LINE14) || ((LINE) == EXTI_LINE15) || \
  287. ((LINE) == EXTI_LINE16) || ((LINE) == EXTI_LINE17) || \
  288. ((LINE) == EXTI_LINE18) || ((LINE) == EXTI_LINE19) || \
  289. ((LINE) == EXTI_LINE20) || ((LINE) == EXTI_LINE21) || \
  290. ((LINE) == EXTI_LINE49) || ((LINE) == EXTI_LINE51) || \
  291. ((LINE) == EXTI_LINE85) || ((LINE) == EXTI_LINE86))
  292. #endif
  293. #if defined(DUAL_CORE)
  294. #define IS_EXTI_ALL_LINE(LINE) (((LINE) == EXTI_LINE0) || ((LINE) == EXTI_LINE1) || \
  295. ((LINE) == EXTI_LINE2) || ((LINE) == EXTI_LINE3) || \
  296. ((LINE) == EXTI_LINE4) || ((LINE) == EXTI_LINE5) || \
  297. ((LINE) == EXTI_LINE6) || ((LINE) == EXTI_LINE7) || \
  298. ((LINE) == EXTI_LINE8) || ((LINE) == EXTI_LINE9) || \
  299. ((LINE) == EXTI_LINE10) || ((LINE) == EXTI_LINE11) || \
  300. ((LINE) == EXTI_LINE12) || ((LINE) == EXTI_LINE13) || \
  301. ((LINE) == EXTI_LINE14) || ((LINE) == EXTI_LINE15) || \
  302. ((LINE) == EXTI_LINE16) || ((LINE) == EXTI_LINE17) || \
  303. ((LINE) == EXTI_LINE18) || ((LINE) == EXTI_LINE19) || \
  304. ((LINE) == EXTI_LINE20) || ((LINE) == EXTI_LINE21) || \
  305. ((LINE) == EXTI_LINE22) || ((LINE) == EXTI_LINE23) || \
  306. ((LINE) == EXTI_LINE24) || ((LINE) == EXTI_LINE25) || \
  307. ((LINE) == EXTI_LINE26) || ((LINE) == EXTI_LINE27) || \
  308. ((LINE) == EXTI_LINE28) || ((LINE) == EXTI_LINE29) || \
  309. ((LINE) == EXTI_LINE30) || ((LINE) == EXTI_LINE31) || \
  310. ((LINE) == EXTI_LINE32) || ((LINE) == EXTI_LINE33) || \
  311. ((LINE) == EXTI_LINE34) || ((LINE) == EXTI_LINE35) || \
  312. ((LINE) == EXTI_LINE36) || ((LINE) == EXTI_LINE37) || \
  313. ((LINE) == EXTI_LINE38) || ((LINE) == EXTI_LINE39) || \
  314. ((LINE) == EXTI_LINE40) || ((LINE) == EXTI_LINE41) || \
  315. ((LINE) == EXTI_LINE42) || ((LINE) == EXTI_LINE43) || \
  316. ((LINE) == EXTI_LINE44) || ((LINE) == EXTI_LINE46) || \
  317. ((LINE) == EXTI_LINE47) || ((LINE) == EXTI_LINE48) || \
  318. ((LINE) == EXTI_LINE49) || ((LINE) == EXTI_LINE50) || \
  319. ((LINE) == EXTI_LINE51) || ((LINE) == EXTI_LINE52) || \
  320. ((LINE) == EXTI_LINE53) || ((LINE) == EXTI_LINE54) || \
  321. ((LINE) == EXTI_LINE55) || ((LINE) == EXTI_LINE56) || \
  322. ((LINE) == EXTI_LINE57) || ((LINE) == EXTI_LINE58) || \
  323. ((LINE) == EXTI_LINE59) || ((LINE) == EXTI_LINE60) || \
  324. ((LINE) == EXTI_LINE61) || ((LINE) == EXTI_LINE62) || \
  325. ((LINE) == EXTI_LINE63) || ((LINE) == EXTI_LINE64) || \
  326. ((LINE) == EXTI_LINE65) || ((LINE) == EXTI_LINE66) || \
  327. ((LINE) == EXTI_LINE67) || ((LINE) == EXTI_LINE68) || \
  328. ((LINE) == EXTI_LINE69) || ((LINE) == EXTI_LINE70) || \
  329. ((LINE) == EXTI_LINE71) || ((LINE) == EXTI_LINE72) || \
  330. ((LINE) == EXTI_LINE73) || ((LINE) == EXTI_LINE74) || \
  331. ((LINE) == EXTI_LINE75) || ((LINE) == EXTI_LINE76) || \
  332. ((LINE) == EXTI_LINE77) || ((LINE) == EXTI_LINE79) || \
  333. ((LINE) == EXTI_LINE84) || ((LINE) == EXTI_LINE85) || \
  334. ((LINE) == EXTI_LINE86) || ((LINE) == EXTI_LINE87) || \
  335. ((LINE) == EXTI_LINE78) || \
  336. ((LINE) == EXTI_LINE80) || ((LINE) == EXTI_LINE82))
  337. #else
  338. #define IS_EXTI_ALL_LINE(LINE) (((LINE) == EXTI_LINE0) || ((LINE) == EXTI_LINE1) || \
  339. ((LINE) == EXTI_LINE2) || ((LINE) == EXTI_LINE3) || \
  340. ((LINE) == EXTI_LINE4) || ((LINE) == EXTI_LINE5) || \
  341. ((LINE) == EXTI_LINE6) || ((LINE) == EXTI_LINE7) || \
  342. ((LINE) == EXTI_LINE8) || ((LINE) == EXTI_LINE9) || \
  343. ((LINE) == EXTI_LINE10) || ((LINE) == EXTI_LINE11) || \
  344. ((LINE) == EXTI_LINE12) || ((LINE) == EXTI_LINE13) || \
  345. ((LINE) == EXTI_LINE14) || ((LINE) == EXTI_LINE15) || \
  346. ((LINE) == EXTI_LINE16) || ((LINE) == EXTI_LINE17) || \
  347. ((LINE) == EXTI_LINE18) || ((LINE) == EXTI_LINE19) || \
  348. ((LINE) == EXTI_LINE20) || ((LINE) == EXTI_LINE21) || \
  349. ((LINE) == EXTI_LINE22) || ((LINE) == EXTI_LINE23) || \
  350. ((LINE) == EXTI_LINE24) || ((LINE) == EXTI_LINE25) || \
  351. ((LINE) == EXTI_LINE26) || ((LINE) == EXTI_LINE27) || \
  352. ((LINE) == EXTI_LINE28) || ((LINE) == EXTI_LINE29) || \
  353. ((LINE) == EXTI_LINE30) || ((LINE) == EXTI_LINE31) || \
  354. ((LINE) == EXTI_LINE32) || ((LINE) == EXTI_LINE33) || \
  355. ((LINE) == EXTI_LINE34) || ((LINE) == EXTI_LINE35) || \
  356. ((LINE) == EXTI_LINE36) || ((LINE) == EXTI_LINE37) || \
  357. ((LINE) == EXTI_LINE38) || ((LINE) == EXTI_LINE39) || \
  358. ((LINE) == EXTI_LINE40) || ((LINE) == EXTI_LINE41) || \
  359. ((LINE) == EXTI_LINE42) || ((LINE) == EXTI_LINE43) || \
  360. ((LINE) == EXTI_LINE44) || \
  361. ((LINE) == EXTI_LINE47) || ((LINE) == EXTI_LINE48) || \
  362. ((LINE) == EXTI_LINE49) || ((LINE) == EXTI_LINE50) || \
  363. ((LINE) == EXTI_LINE51) || ((LINE) == EXTI_LINE52) || \
  364. ((LINE) == EXTI_LINE53) || ((LINE) == EXTI_LINE54) || \
  365. ((LINE) == EXTI_LINE55) || ((LINE) == EXTI_LINE56) || \
  366. ((LINE) == EXTI_LINE57) || ((LINE) == EXTI_LINE58) || \
  367. ((LINE) == EXTI_LINE59) || ((LINE) == EXTI_LINE60) || \
  368. ((LINE) == EXTI_LINE61) || ((LINE) == EXTI_LINE62) || \
  369. ((LINE) == EXTI_LINE63) || ((LINE) == EXTI_LINE64) || \
  370. ((LINE) == EXTI_LINE65) || ((LINE) == EXTI_LINE66) || \
  371. ((LINE) == EXTI_LINE67) || ((LINE) == EXTI_LINE68) || \
  372. ((LINE) == EXTI_LINE69) || ((LINE) == EXTI_LINE70) || \
  373. ((LINE) == EXTI_LINE71) || ((LINE) == EXTI_LINE72) || \
  374. ((LINE) == EXTI_LINE73) || ((LINE) == EXTI_LINE74) || \
  375. ((LINE) == EXTI_LINE75) || ((LINE) == EXTI_LINE76) || \
  376. ((LINE) == EXTI_LINE85) || \
  377. ((LINE) == EXTI_LINE86) || ((LINE) == EXTI_LINE87))
  378. #endif /*DUAL_CORE*/
  379. #if defined(DUAL_CORE)
  380. #define IS_EXTI_D1_LINE(LINE) (((LINE) == EXTI_LINE0) || ((LINE) == EXTI_LINE1) || \
  381. ((LINE) == EXTI_LINE2) || ((LINE) == EXTI_LINE3) || \
  382. ((LINE) == EXTI_LINE4) || ((LINE) == EXTI_LINE5) || \
  383. ((LINE) == EXTI_LINE6) || ((LINE) == EXTI_LINE7) || \
  384. ((LINE) == EXTI_LINE8) || ((LINE) == EXTI_LINE9) || \
  385. ((LINE) == EXTI_LINE10) || ((LINE) == EXTI_LINE11) || \
  386. ((LINE) == EXTI_LINE12) || ((LINE) == EXTI_LINE13) || \
  387. ((LINE) == EXTI_LINE14) || ((LINE) == EXTI_LINE15) || \
  388. ((LINE) == EXTI_LINE16) || ((LINE) == EXTI_LINE17) || \
  389. ((LINE) == EXTI_LINE18) || ((LINE) == EXTI_LINE19) || \
  390. ((LINE) == EXTI_LINE20) || ((LINE) == EXTI_LINE21) || \
  391. ((LINE) == EXTI_LINE22) || ((LINE) == EXTI_LINE23) || \
  392. ((LINE) == EXTI_LINE24) || ((LINE) == EXTI_LINE25) || \
  393. ((LINE) == EXTI_LINE26) || ((LINE) == EXTI_LINE27) || \
  394. ((LINE) == EXTI_LINE28) || ((LINE) == EXTI_LINE29) || \
  395. ((LINE) == EXTI_LINE30) || ((LINE) == EXTI_LINE31) || \
  396. ((LINE) == EXTI_LINE32) || ((LINE) == EXTI_LINE33) || \
  397. ((LINE) == EXTI_LINE34) || ((LINE) == EXTI_LINE35) || \
  398. ((LINE) == EXTI_LINE36) || ((LINE) == EXTI_LINE37) || \
  399. ((LINE) == EXTI_LINE38) || ((LINE) == EXTI_LINE39) || \
  400. ((LINE) == EXTI_LINE40) || ((LINE) == EXTI_LINE41) || \
  401. ((LINE) == EXTI_LINE42) || ((LINE) == EXTI_LINE43) || \
  402. ((LINE) == EXTI_LINE44) || ((LINE) == EXTI_LINE46) || \
  403. ((LINE) == EXTI_LINE47) || ((LINE) == EXTI_LINE48) || \
  404. ((LINE) == EXTI_LINE49) || ((LINE) == EXTI_LINE50) || \
  405. ((LINE) == EXTI_LINE51) || ((LINE) == EXTI_LINE52) || \
  406. ((LINE) == EXTI_LINE53) || ((LINE) == EXTI_LINE54) || \
  407. ((LINE) == EXTI_LINE55) || ((LINE) == EXTI_LINE56) || \
  408. ((LINE) == EXTI_LINE57) || ((LINE) == EXTI_LINE58) || \
  409. ((LINE) == EXTI_LINE59) || ((LINE) == EXTI_LINE60) || \
  410. ((LINE) == EXTI_LINE61) || ((LINE) == EXTI_LINE62) || \
  411. ((LINE) == EXTI_LINE63) || ((LINE) == EXTI_LINE64) || \
  412. ((LINE) == EXTI_LINE65) || ((LINE) == EXTI_LINE66) || \
  413. ((LINE) == EXTI_LINE67) || ((LINE) == EXTI_LINE68) || \
  414. ((LINE) == EXTI_LINE69) || ((LINE) == EXTI_LINE70) || \
  415. ((LINE) == EXTI_LINE71) || ((LINE) == EXTI_LINE72) || \
  416. ((LINE) == EXTI_LINE73) || ((LINE) == EXTI_LINE74) || \
  417. ((LINE) == EXTI_LINE75) || ((LINE) == EXTI_LINE76) || \
  418. ((LINE) == EXTI_LINE77) || ((LINE) == EXTI_LINE79) || \
  419. ((LINE) == EXTI_LINE84) || ((LINE) == EXTI_LINE85) || \
  420. ((LINE) == EXTI_LINE86) || ((LINE) == EXTI_LINE87))
  421. #else
  422. #define IS_EXTI_D1_LINE(LINE) (((LINE) == EXTI_LINE0) || ((LINE) == EXTI_LINE1) || \
  423. ((LINE) == EXTI_LINE2) || ((LINE) == EXTI_LINE3) || \
  424. ((LINE) == EXTI_LINE4) || ((LINE) == EXTI_LINE5) || \
  425. ((LINE) == EXTI_LINE6) || ((LINE) == EXTI_LINE7) || \
  426. ((LINE) == EXTI_LINE8) || ((LINE) == EXTI_LINE9) || \
  427. ((LINE) == EXTI_LINE10) || ((LINE) == EXTI_LINE11) || \
  428. ((LINE) == EXTI_LINE12) || ((LINE) == EXTI_LINE13) || \
  429. ((LINE) == EXTI_LINE14) || ((LINE) == EXTI_LINE15) || \
  430. ((LINE) == EXTI_LINE16) || ((LINE) == EXTI_LINE17) || \
  431. ((LINE) == EXTI_LINE18) || ((LINE) == EXTI_LINE19) || \
  432. ((LINE) == EXTI_LINE20) || ((LINE) == EXTI_LINE21) || \
  433. ((LINE) == EXTI_LINE22) || ((LINE) == EXTI_LINE23) || \
  434. ((LINE) == EXTI_LINE24) || ((LINE) == EXTI_LINE25) || \
  435. ((LINE) == EXTI_LINE26) || ((LINE) == EXTI_LINE27) || \
  436. ((LINE) == EXTI_LINE28) || ((LINE) == EXTI_LINE29) || \
  437. ((LINE) == EXTI_LINE30) || ((LINE) == EXTI_LINE31) || \
  438. ((LINE) == EXTI_LINE32) || ((LINE) == EXTI_LINE33) || \
  439. ((LINE) == EXTI_LINE34) || ((LINE) == EXTI_LINE35) || \
  440. ((LINE) == EXTI_LINE36) || ((LINE) == EXTI_LINE37) || \
  441. ((LINE) == EXTI_LINE38) || ((LINE) == EXTI_LINE39) || \
  442. ((LINE) == EXTI_LINE40) || ((LINE) == EXTI_LINE41) || \
  443. ((LINE) == EXTI_LINE42) || ((LINE) == EXTI_LINE43) || \
  444. ((LINE) == EXTI_LINE44) || \
  445. ((LINE) == EXTI_LINE47) || ((LINE) == EXTI_LINE48) || \
  446. ((LINE) == EXTI_LINE49) || ((LINE) == EXTI_LINE50) || \
  447. ((LINE) == EXTI_LINE51) || ((LINE) == EXTI_LINE52) || \
  448. ((LINE) == EXTI_LINE53) || ((LINE) == EXTI_LINE54) || \
  449. ((LINE) == EXTI_LINE55) || ((LINE) == EXTI_LINE56) || \
  450. ((LINE) == EXTI_LINE57) || ((LINE) == EXTI_LINE58) || \
  451. ((LINE) == EXTI_LINE59) || ((LINE) == EXTI_LINE60) || \
  452. ((LINE) == EXTI_LINE61) || ((LINE) == EXTI_LINE62) || \
  453. ((LINE) == EXTI_LINE63) || ((LINE) == EXTI_LINE64) || \
  454. ((LINE) == EXTI_LINE65) || ((LINE) == EXTI_LINE66) || \
  455. ((LINE) == EXTI_LINE67) || ((LINE) == EXTI_LINE68) || \
  456. ((LINE) == EXTI_LINE69) || ((LINE) == EXTI_LINE70) || \
  457. ((LINE) == EXTI_LINE71) || ((LINE) == EXTI_LINE72) || \
  458. ((LINE) == EXTI_LINE73) || ((LINE) == EXTI_LINE74) || \
  459. ((LINE) == EXTI_LINE75) || ((LINE) == EXTI_LINE76) || \
  460. ((LINE) == EXTI_LINE85) || \
  461. ((LINE) == EXTI_LINE86) || ((LINE) == EXTI_LINE87))
  462. #endif /*DUAL_CORE*/
  463. #if defined(DUAL_CORE)
  464. #define IS_EXTI_D2_LINE(LINE) (((LINE) == EXTI_LINE0) || ((LINE) == EXTI_LINE1) || \
  465. ((LINE) == EXTI_LINE2) || ((LINE) == EXTI_LINE3) || \
  466. ((LINE) == EXTI_LINE4) || ((LINE) == EXTI_LINE5) || \
  467. ((LINE) == EXTI_LINE6) || ((LINE) == EXTI_LINE7) || \
  468. ((LINE) == EXTI_LINE8) || ((LINE) == EXTI_LINE9) || \
  469. ((LINE) == EXTI_LINE10) || ((LINE) == EXTI_LINE11) || \
  470. ((LINE) == EXTI_LINE12) || ((LINE) == EXTI_LINE13) || \
  471. ((LINE) == EXTI_LINE14) || ((LINE) == EXTI_LINE15) || \
  472. ((LINE) == EXTI_LINE16) || ((LINE) == EXTI_LINE17) || \
  473. ((LINE) == EXTI_LINE18) || ((LINE) == EXTI_LINE19) || \
  474. ((LINE) == EXTI_LINE20) || ((LINE) == EXTI_LINE21) || \
  475. ((LINE) == EXTI_LINE22) || ((LINE) == EXTI_LINE23) || \
  476. ((LINE) == EXTI_LINE24) || ((LINE) == EXTI_LINE25) || \
  477. ((LINE) == EXTI_LINE26) || ((LINE) == EXTI_LINE27) || \
  478. ((LINE) == EXTI_LINE28) || ((LINE) == EXTI_LINE29) || \
  479. ((LINE) == EXTI_LINE30) || ((LINE) == EXTI_LINE31) || \
  480. ((LINE) == EXTI_LINE32) || ((LINE) == EXTI_LINE33) || \
  481. ((LINE) == EXTI_LINE34) || ((LINE) == EXTI_LINE35) || \
  482. ((LINE) == EXTI_LINE36) || ((LINE) == EXTI_LINE37) || \
  483. ((LINE) == EXTI_LINE38) || ((LINE) == EXTI_LINE39) || \
  484. ((LINE) == EXTI_LINE40) || ((LINE) == EXTI_LINE41) || \
  485. ((LINE) == EXTI_LINE42) || ((LINE) == EXTI_LINE43) || \
  486. ((LINE) == EXTI_LINE44) || ((LINE) == EXTI_LINE46) || \
  487. ((LINE) == EXTI_LINE47) || ((LINE) == EXTI_LINE48) || \
  488. ((LINE) == EXTI_LINE49) || ((LINE) == EXTI_LINE50) || \
  489. ((LINE) == EXTI_LINE51) || ((LINE) == EXTI_LINE52) || \
  490. ((LINE) == EXTI_LINE53) || ((LINE) == EXTI_LINE54) || \
  491. ((LINE) == EXTI_LINE55) || ((LINE) == EXTI_LINE56) || \
  492. ((LINE) == EXTI_LINE57) || ((LINE) == EXTI_LINE58) || \
  493. ((LINE) == EXTI_LINE59) || ((LINE) == EXTI_LINE60) || \
  494. ((LINE) == EXTI_LINE61) || ((LINE) == EXTI_LINE62) || \
  495. ((LINE) == EXTI_LINE63) || ((LINE) == EXTI_LINE64) || \
  496. ((LINE) == EXTI_LINE65) || ((LINE) == EXTI_LINE66) || \
  497. ((LINE) == EXTI_LINE67) || ((LINE) == EXTI_LINE68) || \
  498. ((LINE) == EXTI_LINE69) || ((LINE) == EXTI_LINE70) || \
  499. ((LINE) == EXTI_LINE71) || ((LINE) == EXTI_LINE72) || \
  500. ((LINE) == EXTI_LINE73) || ((LINE) == EXTI_LINE74) || \
  501. ((LINE) == EXTI_LINE75) || ((LINE) == EXTI_LINE76) || \
  502. ((LINE) == EXTI_LINE78) || ((LINE) == EXTI_LINE80) || \
  503. ((LINE) == EXTI_LINE82) || ((LINE) == EXTI_LINE85) || \
  504. ((LINE) == EXTI_LINE86) || ((LINE) == EXTI_LINE87))
  505. #endif /*DUAL_CORE*/
  506. #if defined(DUAL_CORE)
  507. #define IS_EXTI_D3_LINE(LINE) (((LINE) == EXTI_LINE0) || ((LINE) == EXTI_LINE1) || \
  508. ((LINE) == EXTI_LINE2) || ((LINE) == EXTI_LINE3) || \
  509. ((LINE) == EXTI_LINE4) || ((LINE) == EXTI_LINE5) || \
  510. ((LINE) == EXTI_LINE6) || ((LINE) == EXTI_LINE7) || \
  511. ((LINE) == EXTI_LINE8) || ((LINE) == EXTI_LINE9) || \
  512. ((LINE) == EXTI_LINE10) || ((LINE) == EXTI_LINE11) || \
  513. ((LINE) == EXTI_LINE12) || ((LINE) == EXTI_LINE13) || \
  514. ((LINE) == EXTI_LINE14) || ((LINE) == EXTI_LINE15) || \
  515. ((LINE) == EXTI_LINE19) || ((LINE) == EXTI_LINE20) || \
  516. ((LINE) == EXTI_LINE21) || ((LINE) == EXTI_LINE25) || \
  517. ((LINE) == EXTI_LINE34) || ((LINE) == EXTI_LINE35) || \
  518. ((LINE) == EXTI_LINE41) || ((LINE) == EXTI_LINE48) || \
  519. ((LINE) == EXTI_LINE49) || ((LINE) == EXTI_LINE50) || \
  520. ((LINE) == EXTI_LINE51) || ((LINE) == EXTI_LINE52) || \
  521. ((LINE) == EXTI_LINE53))
  522. #else
  523. #define IS_EXTI_D3_LINE(LINE) (((LINE) == EXTI_LINE0) || ((LINE) == EXTI_LINE1) || \
  524. ((LINE) == EXTI_LINE2) || ((LINE) == EXTI_LINE3) || \
  525. ((LINE) == EXTI_LINE4) || ((LINE) == EXTI_LINE5) || \
  526. ((LINE) == EXTI_LINE6) || ((LINE) == EXTI_LINE7) || \
  527. ((LINE) == EXTI_LINE8) || ((LINE) == EXTI_LINE9) || \
  528. ((LINE) == EXTI_LINE10) || ((LINE) == EXTI_LINE11) || \
  529. ((LINE) == EXTI_LINE12) || ((LINE) == EXTI_LINE13) || \
  530. ((LINE) == EXTI_LINE14) || ((LINE) == EXTI_LINE15) || \
  531. ((LINE) == EXTI_LINE19) || ((LINE) == EXTI_LINE20) || \
  532. ((LINE) == EXTI_LINE21) || ((LINE) == EXTI_LINE25) || \
  533. ((LINE) == EXTI_LINE34) || ((LINE) == EXTI_LINE35) || \
  534. ((LINE) == EXTI_LINE41) || ((LINE) == EXTI_LINE48) || \
  535. ((LINE) == EXTI_LINE49) || ((LINE) == EXTI_LINE50) || \
  536. ((LINE) == EXTI_LINE51) || ((LINE) == EXTI_LINE52) || \
  537. ((LINE) == EXTI_LINE53))
  538. #endif
  539. #define BDMA_CH6_CLEAR ((uint32_t)0x00000000) /*!< BDMA ch6 event selected as D3 domain pendclear source*/
  540. #define BDMA_CH7_CLEAR ((uint32_t)0x00000001) /*!< BDMA ch7 event selected as D3 domain pendclear source*/
  541. #define LPTIM4_OUT_CLEAR ((uint32_t)0x00000002) /*!< LPTIM4 out selected as D3 domain pendclear source*/
  542. #define LPTIM5_OUT_CLEAR ((uint32_t)0x00000003) /*!< LPTIM5 out selected as D3 domain pendclear source*/
  543. #define IS_EXTI_D3_CLEAR(SOURCE) (((SOURCE) == BDMA_CH6_CLEAR) || ((SOURCE) == BDMA_CH7_CLEAR) || \
  544. ((SOURCE) == LPTIM4_OUT_CLEAR) || ((SOURCE) == LPTIM5_OUT_CLEAR))
  545. /**
  546. * @}
  547. */
  548. /** @defgroup FMC_SwapBankMapping_Config SwapBankMapping Config
  549. * @{
  550. */
  551. #define FMC_SWAPBMAP_DISABLE (0x00000000U)
  552. #define FMC_SWAPBMAP_SDRAM_SRAM FMC_BCR1_BMAP_0
  553. #define FMC_SWAPBMAP_SDRAMB2 FMC_BCR1_BMAP_1
  554. #define IS_FMC_SWAPBMAP_MODE(__MODE__) (((__MODE__) == FMC_SWAPBMAP_DISABLE) || \
  555. ((__MODE__) == FMC_SWAPBMAP_SDRAM_SRAM) || \
  556. ((__MODE__) == FMC_SWAPBMAP_SDRAMB2))
  557. /**
  558. * @}
  559. */
  560. /* Exported macro ------------------------------------------------------------*/
  561. /** @defgroup SYSCFG_Exported_Macros SYSCFG Exported Macros
  562. * @{
  563. */
  564. /** @brief SYSCFG Break AXIRAM double ECC lock.
  565. * Enable and lock the connection of AXIRAM double ECC error to TIM1/8/15/16/17 and HRTIMER Break input.
  566. * @note The selected configuration is locked and can be unlocked only by system reset.
  567. This feature is available on STM32H7 rev.B and above.
  568. */
  569. #define __HAL_SYSCFG_BREAK_AXISRAM_DBL_ECC_LOCK() SET_BIT(SYSCFG->CFGR, SYSCFG_CFGR_AXISRAML)
  570. /** @brief SYSCFG Break ITCM double ECC lock.
  571. * Enable and lock the connection of ITCM double ECC error to TIM1/8/15/16/17 and HRTIMER Break input.
  572. * @note The selected configuration is locked and can be unlocked only by system reset.
  573. This feature is available on STM32H7 rev.B and above.
  574. */
  575. #define __HAL_SYSCFG_BREAK_ITCM_DBL_ECC_LOCK() SET_BIT(SYSCFG->CFGR, SYSCFG_CFGR_ITCML)
  576. /** @brief SYSCFG Break DTCM double ECC lock.
  577. * Enable and lock the connection of DTCM double ECC error to TIM1/8/15/16/17 and HRTIMER Break input.
  578. * @note The selected configuration is locked and can be unlocked only by system reset.
  579. This feature is available on STM32H7 rev.B and above.
  580. */
  581. #define __HAL_SYSCFG_BREAK_DTCM_DBL_ECC_LOCK() SET_BIT(SYSCFG->CFGR, SYSCFG_CFGR_DTCML)
  582. /** @brief SYSCFG Break SRAM1 double ECC lock.
  583. * Enable and lock the connection of SRAM1 double ECC error to TIM1/8/15/16/17 and HRTIMER Break input.
  584. * @note The selected configuration is locked and can be unlocked only by system reset.
  585. This feature is available on STM32H7 rev.B and above.
  586. */
  587. #define __HAL_SYSCFG_BREAK_SRAM1_DBL_ECC_LOCK() SET_BIT(SYSCFG->CFGR, SYSCFG_CFGR_SRAM1L)
  588. /** @brief SYSCFG Break SRAM2 double ECC lock.
  589. * Enable and lock the connection of SRAM2 double ECC error to TIM1/8/15/16/17 and HRTIMER Break input.
  590. * @note The selected configuration is locked and can be unlocked only by system reset.
  591. This feature is available on STM32H7 rev.B and above.
  592. */
  593. #define __HAL_SYSCFG_BREAK_SRAM2_DBL_ECC_LOCK() SET_BIT(SYSCFG->CFGR, SYSCFG_CFGR_SRAM2L)
  594. /** @brief SYSCFG Break SRAM3 double ECC lock.
  595. * Enable and lock the connection of SRAM3 double ECC error to TIM1/8/15/16/17 and HRTIMER Break input.
  596. * @note The selected configuration is locked and can be unlocked only by system reset.
  597. This feature is available on STM32H7 rev.B and above.
  598. */
  599. #define __HAL_SYSCFG_BREAK_SRAM3_DBL_ECC_LOCK() SET_BIT(SYSCFG->CFGR, SYSCFG_CFGR_SRAM3L)
  600. /** @brief SYSCFG Break SRAM4 double ECC lock.
  601. * Enable and lock the connection of SRAM4 double ECC error to TIM1/8/15/16/17 and HRTIMER Break input.
  602. * @note The selected configuration is locked and can be unlocked only by system reset.
  603. This feature is available on STM32H7 rev.B and above.
  604. */
  605. #define __HAL_SYSCFG_BREAK_SRAM4_DBL_ECC_LOCK() SET_BIT(SYSCFG->CFGR, SYSCFG_CFGR_SRAM4L)
  606. /** @brief SYSCFG Break Backup SRAM double ECC lock.
  607. * Enable and lock the connection of Backup SRAM double ECC error to TIM1/8/15/16/17 and HRTIMER Break input.
  608. * @note The selected configuration is locked and can be unlocked only by system reset.
  609. This feature is available on STM32H7 rev.B and above.
  610. */
  611. #define __HAL_SYSCFG_BREAK_BKRAM_DBL_ECC_LOCK() SET_BIT(SYSCFG->CFGR, SYSCFG_CFGR_BKRAML)
  612. /** @brief SYSCFG Break Cortex-M7 Lockup lock.
  613. * Enable and lock the connection of Cortex-M7 LOCKUP output to TIM1/8/15/16/17 and HRTIMER Break input.
  614. * @note The selected configuration is locked and can be unlocked only by system reset.
  615. This feature is available on STM32H7 rev.B and above.
  616. */
  617. #define __HAL_SYSCFG_BREAK_CM7_LOCKUP_LOCK() SET_BIT(SYSCFG->CFGR, SYSCFG_CFGR_CM7L)
  618. /** @brief SYSCFG Break FLASH double ECC lock.
  619. * Enable and lock the connection of Flash double ECC error connection to TIM1/8/15/16/17 and HRTIMER Break input.
  620. * @note The selected configuration is locked and can be unlocked only by system reset.
  621. This feature is available on STM32H7 rev.B and above.
  622. */
  623. #define __HAL_SYSCFG_BREAK_FLASH_DBL_ECC_LOCK() SET_BIT(SYSCFG->CFGR, SYSCFG_CFGR_FLASHL)
  624. /** @brief SYSCFG Break PVD lock.
  625. * Enable and lock the PVD connection to Timer1/8/15/16/17 and HRTIMER Break input, as well as the PVDE and PLS[2:0] in the PWR_CR1 register.
  626. * @note The selected configuration is locked and can be unlocked only by system reset.
  627. This feature is available on STM32H7 rev.B and above.
  628. */
  629. #define __HAL_SYSCFG_BREAK_PVD_LOCK() SET_BIT(SYSCFG->CFGR, SYSCFG_CFGR_PVDL)
  630. #if defined(DUAL_CORE)
  631. /** @brief SYSCFG Break Cortex-M4 Lockup lock.
  632. * Enable and lock the connection of Cortex-M4 LOCKUP output to TIM1/8/15/16/17 and HRTIMER Break input.
  633. * @note The selected configuration is locked and can be unlocked only by system reset.
  634. This feature is available on STM32H7 rev.B and above.
  635. */
  636. #define __HAL_SYSCFG_BREAK_CM4_LOCKUP_LOCK() SET_BIT(SYSCFG->CFGR, SYSCFG_CFGR_CM4L)
  637. #endif /* DUAL_CORE */
  638. /**
  639. * @}
  640. */
  641. /** @brief Freeze/Unfreeze Peripherals in Debug mode
  642. */
  643. #define __HAL_DBGMCU_FREEZE_WWDG1() (DBGMCU->APB3FZ1 |= (DBGMCU_APB3FZ1_DBG_WWDG1))
  644. #define __HAL_DBGMCU_FREEZE_TIM2() (DBGMCU->APB1LFZ1 |= (DBGMCU_APB1LFZ1_DBG_TIM2))
  645. #define __HAL_DBGMCU_FREEZE_TIM3() (DBGMCU->APB1LFZ1 |= (DBGMCU_APB1LFZ1_DBG_TIM3))
  646. #define __HAL_DBGMCU_FREEZE_TIM4() (DBGMCU->APB1LFZ1 |= (DBGMCU_APB1LFZ1_DBG_TIM4))
  647. #define __HAL_DBGMCU_FREEZE_TIM5() (DBGMCU->APB1LFZ1 |= (DBGMCU_APB1LFZ1_DBG_TIM5))
  648. #define __HAL_DBGMCU_FREEZE_TIM6() (DBGMCU->APB1LFZ1 |= (DBGMCU_APB1LFZ1_DBG_TIM6))
  649. #define __HAL_DBGMCU_FREEZE_TIM7() (DBGMCU->APB1LFZ1 |= (DBGMCU_APB1LFZ1_DBG_TIM7))
  650. #define __HAL_DBGMCU_FREEZE_TIM12() (DBGMCU->APB1LFZ1 |= (DBGMCU_APB1LFZ1_DBG_TIM12))
  651. #define __HAL_DBGMCU_FREEZE_TIM13() (DBGMCU->APB1LFZ1 |= (DBGMCU_APB1LFZ1_DBG_TIM13))
  652. #define __HAL_DBGMCU_FREEZE_TIM14() (DBGMCU->APB1LFZ1 |= (DBGMCU_APB1LFZ1_DBG_TIM14))
  653. #define __HAL_DBGMCU_FREEZE_LPTIM1() (DBGMCU->APB1LFZ1 |= (DBGMCU_APB1LFZ1_DBG_LPTIM1))
  654. #define __HAL_DBGMCU_FREEZE_I2C1() (DBGMCU->APB1LFZ1 |= (DBGMCU_APB1LFZ1_DBG_I2C1))
  655. #define __HAL_DBGMCU_FREEZE_I2C2() (DBGMCU->APB1LFZ1 |= (DBGMCU_APB1LFZ1_DBG_I2C2))
  656. #define __HAL_DBGMCU_FREEZE_I2C3() (DBGMCU->APB1LFZ1 |= (DBGMCU_APB1LFZ1_DBG_I2C3))
  657. #define __HAL_DBGMCU_FREEZE_FDCAN() (DBGMCU->APB1HFZ1 |= (DBGMCU_APB1HFZ1_DBG_FDCAN))
  658. #define __HAL_DBGMCU_FREEZE_TIM1() (DBGMCU->APB2FZ1 |= (DBGMCU_APB2FZ1_DBG_TIM1))
  659. #define __HAL_DBGMCU_FREEZE_TIM8() (DBGMCU->APB2FZ1 |= (DBGMCU_APB2FZ1_DBG_TIM8))
  660. #define __HAL_DBGMCU_FREEZE_TIM15() (DBGMCU->APB2FZ1 |= (DBGMCU_APB2FZ1_DBG_TIM15))
  661. #define __HAL_DBGMCU_FREEZE_TIM16() (DBGMCU->APB2FZ1 |= (DBGMCU_APB2FZ1_DBG_TIM16))
  662. #define __HAL_DBGMCU_FREEZE_TIM17() (DBGMCU->APB2FZ1 |= (DBGMCU_APB2FZ1_DBG_TIM17))
  663. #define __HAL_DBGMCU_FREEZE_HRTIM() (DBGMCU->APB2FZ1 |= (DBGMCU_APB2FZ1_DBG_HRTIM))
  664. #define __HAL_DBGMCU_FREEZE_I2C4() (DBGMCU->APB4FZ1 |= (DBGMCU_APB4FZ1_DBG_I2C4))
  665. #define __HAL_DBGMCU_FREEZE_LPTIM2() (DBGMCU->APB4FZ1 |= (DBGMCU_APB4FZ1_DBG_LPTIM2))
  666. #define __HAL_DBGMCU_FREEZE_LPTIM3() (DBGMCU->APB4FZ1 |= (DBGMCU_APB4FZ1_DBG_LPTIM3))
  667. #define __HAL_DBGMCU_FREEZE_LPTIM4() (DBGMCU->APB4FZ1 |= (DBGMCU_APB4FZ1_DBG_LPTIM4))
  668. #define __HAL_DBGMCU_FREEZE_LPTIM5() (DBGMCU->APB4FZ1 |= (DBGMCU_APB4FZ1_DBG_LPTIM5))
  669. #define __HAL_DBGMCU_FREEZE_RTC() (DBGMCU->APB4FZ1 |= (DBGMCU_APB4FZ1_DBG_RTC))
  670. #define __HAL_DBGMCU_FREEZE_IWDG1() (DBGMCU->APB4FZ1 |= (DBGMCU_APB4FZ1_DBG_IWDG1))
  671. #define __HAL_DBGMCU_UnFreeze_WWDG1() (DBGMCU->APB3FZ1 &= ~ (DBGMCU_APB3FZ1_DBG_WWDG1))
  672. #define __HAL_DBGMCU_UnFreeze_TIM2() (DBGMCU->APB1LFZ1 &= ~ (DBGMCU_APB1LFZ1_DBG_TIM2))
  673. #define __HAL_DBGMCU_UnFreeze_TIM3() (DBGMCU->APB1LFZ1 &= ~ (DBGMCU_APB1LFZ1_DBG_TIM3))
  674. #define __HAL_DBGMCU_UnFreeze_TIM4() (DBGMCU->APB1LFZ1 &= ~ (DBGMCU_APB1LFZ1_DBG_TIM4))
  675. #define __HAL_DBGMCU_UnFreeze_TIM5() (DBGMCU->APB1LFZ1 &= ~ (DBGMCU_APB1LFZ1_DBG_TIM5))
  676. #define __HAL_DBGMCU_UnFreeze_TIM6() (DBGMCU->APB1LFZ1 &= ~ (DBGMCU_APB1LFZ1_DBG_TIM6))
  677. #define __HAL_DBGMCU_UnFreeze_TIM7() (DBGMCU->APB1LFZ1 &= ~ (DBGMCU_APB1LFZ1_DBG_TIM7))
  678. #define __HAL_DBGMCU_UnFreeze_TIM12() (DBGMCU->APB1LFZ1 &= ~ (DBGMCU_APB1LFZ1_DBG_TIM12))
  679. #define __HAL_DBGMCU_UnFreeze_TIM13() (DBGMCU->APB1LFZ1 &= ~ (DBGMCU_APB1LFZ1_DBG_TIM13))
  680. #define __HAL_DBGMCU_UnFreeze_TIM14() (DBGMCU->APB1LFZ1 &= ~ (DBGMCU_APB1LFZ1_DBG_TIM14))
  681. #define __HAL_DBGMCU_UnFreeze_LPTIM1() (DBGMCU->APB1LFZ1 &= ~ (DBGMCU_APB1LFZ1_DBG_LPTIM1))
  682. #define __HAL_DBGMCU_UnFreeze_I2C1() (DBGMCU->APB1LFZ1 &= ~ (DBGMCU_APB1LFZ1_DBG_I2C1))
  683. #define __HAL_DBGMCU_UnFreeze_I2C2() (DBGMCU->APB1LFZ1 &= ~ (DBGMCU_APB1LFZ1_DBG_I2C2))
  684. #define __HAL_DBGMCU_UnFreeze_I2C3() (DBGMCU->APB1LFZ1 &= ~ (DBGMCU_APB1LFZ1_DBG_I2C3))
  685. #define __HAL_DBGMCU_UnFreeze_FDCAN() (DBGMCU->APB1HFZ1 &= ~ (DBGMCU_APB1HFZ1_DBG_FDCAN))
  686. #define __HAL_DBGMCU_UnFreeze_TIM1() (DBGMCU->APB2FZ1 &= ~ (DBGMCU_APB2FZ1_DBG_TIM1))
  687. #define __HAL_DBGMCU_UnFreeze_TIM8() (DBGMCU->APB2FZ1 &= ~ (DBGMCU_APB2FZ1_DBG_TIM8))
  688. #define __HAL_DBGMCU_UnFreeze_TIM15() (DBGMCU->APB2FZ1 &= ~ (DBGMCU_APB2FZ1_DBG_TIM15))
  689. #define __HAL_DBGMCU_UnFreeze_TIM16() (DBGMCU->APB2FZ1 &= ~ (DBGMCU_APB2FZ1_DBG_TIM16))
  690. #define __HAL_DBGMCU_UnFreeze_TIM17() (DBGMCU->APB2FZ1 &= ~ (DBGMCU_APB2FZ1_DBG_TIM17))
  691. #define __HAL_DBGMCU_UnFreeze_HRTIM() (DBGMCU->APB2FZ1 &= ~ (DBGMCU_APB2FZ1_DBG_HRTIM))
  692. #define __HAL_DBGMCU_UnFreeze_I2C4() (DBGMCU->APB4FZ1 &= ~ (DBGMCU_APB4FZ1_DBG_I2C4))
  693. #define __HAL_DBGMCU_UnFreeze_LPTIM2() (DBGMCU->APB4FZ1 &= ~ (DBGMCU_APB4FZ1_DBG_LPTIM2))
  694. #define __HAL_DBGMCU_UnFreeze_LPTIM3() (DBGMCU->APB4FZ1 &= ~ (DBGMCU_APB4FZ1_DBG_LPTIM3))
  695. #define __HAL_DBGMCU_UnFreeze_LPTIM4() (DBGMCU->APB4FZ1 &= ~ (DBGMCU_APB4FZ1_DBG_LPTIM4))
  696. #define __HAL_DBGMCU_UnFreeze_LPTIM5() (DBGMCU->APB4FZ1 &= ~ (DBGMCU_APB4FZ1_DBG_LPTIM5))
  697. #define __HAL_DBGMCU_UnFreeze_RTC() (DBGMCU->APB4FZ1 &= ~ (DBGMCU_APB4FZ1_DBG_RTC))
  698. #define __HAL_DBGMCU_UnFreeze_IWDG1() (DBGMCU->APB4FZ1 &= ~ (DBGMCU_APB4FZ1_DBG_IWDG1))
  699. #if defined(DUAL_CORE)
  700. #define __HAL_DBGMCU_FREEZE2_IWDG2() (DBGMCU->APB4FZ2 |= (DBGMCU_APB4FZ2_DBG_IWDG2))
  701. #define __HAL_DBGMCU_FREEZE2_WWDG2() (DBGMCU->APB1LFZ2 |= (DBGMCU_APB1LFZ2_DBG_WWDG2))
  702. #define __HAL_DBGMCU_UnFreeze2_IWDG2() (DBGMCU->APB4FZ2 &= ~ (DBGMCU_APB4FZ2_DBG_IWDG2))
  703. #define __HAL_DBGMCU_UnFreeze2_WWDG2() (DBGMCU->APB1LFZ2 &= ~ (DBGMCU_APB1LFZ2_DBG_WWDG2))
  704. #define __HAL_DBGMCU_FREEZE2_WWDG1() (DBGMCU->APB3FZ2 |= (DBGMCU_APB3FZ2_DBG_WWDG1))
  705. #define __HAL_DBGMCU_FREEZE2_TIM2() (DBGMCU->APB1LFZ2 |= (DBGMCU_APB1LFZ2_DBG_TIM2))
  706. #define __HAL_DBGMCU_FREEZE2_TIM3() (DBGMCU->APB1LFZ2 |= (DBGMCU_APB1LFZ2_DBG_TIM3))
  707. #define __HAL_DBGMCU_FREEZE2_TIM4() (DBGMCU->APB1LFZ2 |= (DBGMCU_APB1LFZ2_DBG_TIM4))
  708. #define __HAL_DBGMCU_FREEZE2_TIM5() (DBGMCU->APB1LFZ2 |= (DBGMCU_APB1LFZ2_DBG_TIM5))
  709. #define __HAL_DBGMCU_FREEZE2_TIM6() (DBGMCU->APB1LFZ2 |= (DBGMCU_APB1LFZ2_DBG_TIM6))
  710. #define __HAL_DBGMCU_FREEZE2_TIM7() (DBGMCU->APB1LFZ2 |= (DBGMCU_APB1LFZ2_DBG_TIM7))
  711. #define __HAL_DBGMCU_FREEZE2_TIM12() (DBGMCU->APB1LFZ2 |= (DBGMCU_APB1LFZ2_DBG_TIM12))
  712. #define __HAL_DBGMCU_FREEZE2_TIM13() (DBGMCU->APB1LFZ2 |= (DBGMCU_APB1LFZ2_DBG_TIM13))
  713. #define __HAL_DBGMCU_FREEZE2_TIM14() (DBGMCU->APB1LFZ2 |= (DBGMCU_APB1LFZ2_DBG_TIM14))
  714. #define __HAL_DBGMCU_FREEZE2_LPTIM1() (DBGMCU->APB1LFZ2 |= (DBGMCU_APB1LFZ2_DBG_LPTIM1))
  715. #define __HAL_DBGMCU_FREEZE2_I2C1() (DBGMCU->APB1LFZ2 |= (DBGMCU_APB1LFZ2_DBG_I2C1))
  716. #define __HAL_DBGMCU_FREEZE2_I2C2() (DBGMCU->APB1LFZ2 |= (DBGMCU_APB1LFZ2_DBG_I2C2))
  717. #define __HAL_DBGMCU_FREEZE2_I2C3() (DBGMCU->APB1LFZ2 |= (DBGMCU_APB1LFZ2_DBG_I2C3))
  718. #define __HAL_DBGMCU_FREEZE2_FDCAN() (DBGMCU->APB1HFZ2 |= (DBGMCU_APB1HFZ2_DBG_FDCAN))
  719. #define __HAL_DBGMCU_FREEZE2_TIM1() (DBGMCU->APB2FZ2 |= (DBGMCU_APB2FZ2_DBG_TIM1))
  720. #define __HAL_DBGMCU_FREEZE2_TIM8() (DBGMCU->APB2FZ2 |= (DBGMCU_APB2FZ2_DBG_TIM8))
  721. #define __HAL_DBGMCU_FREEZE2_TIM15() (DBGMCU->APB2FZ2 |= (DBGMCU_APB2FZ2_DBG_TIM15))
  722. #define __HAL_DBGMCU_FREEZE2_TIM16() (DBGMCU->APB2FZ2 |= (DBGMCU_APB2FZ2_DBG_TIM16))
  723. #define __HAL_DBGMCU_FREEZE2_TIM17() (DBGMCU->APB2FZ2 |= (DBGMCU_APB2FZ2_DBG_TIM17))
  724. #define __HAL_DBGMCU_FREEZE2_HRTIM() (DBGMCU->APB2FZ2 |= (DBGMCU_APB2FZ2_DBG_HRTIM))
  725. #define __HAL_DBGMCU_FREEZE2_I2C4() (DBGMCU->APB4FZ2 |= (DBGMCU_APB4FZ2_DBG_I2C4))
  726. #define __HAL_DBGMCU_FREEZE2_LPTIM2() (DBGMCU->APB4FZ2 |= (DBGMCU_APB4FZ2_DBG_LPTIM2))
  727. #define __HAL_DBGMCU_FREEZE2_LPTIM3() (DBGMCU->APB4FZ2 |= (DBGMCU_APB4FZ2_DBG_LPTIM3))
  728. #define __HAL_DBGMCU_FREEZE2_LPTIM4() (DBGMCU->APB4FZ2 |= (DBGMCU_APB4FZ2_DBG_LPTIM4))
  729. #define __HAL_DBGMCU_FREEZE2_LPTIM5() (DBGMCU->APB4FZ2 |= (DBGMCU_APB4FZ2_DBG_LPTIM5))
  730. #define __HAL_DBGMCU_FREEZE2_RTC() (DBGMCU->APB4FZ2 |= (DBGMCU_APB4FZ2_DBG_RTC))
  731. #define __HAL_DBGMCU_FREEZE2_IWDG1() (DBGMCU->APB4FZ2 |= (DBGMCU_APB4FZ2_DBG_IWDG1))
  732. #define __HAL_DBGMCU_UnFreeze2_WWDG1() (DBGMCU->APB3FZ2 &= ~ (DBGMCU_APB3FZ2_DBG_WWDG1))
  733. #define __HAL_DBGMCU_UnFreeze2_TIM2() (DBGMCU->APB1LFZ2 &= ~ (DBGMCU_APB1LFZ2_DBG_TIM2))
  734. #define __HAL_DBGMCU_UnFreeze2_TIM3() (DBGMCU->APB1LFZ2 &= ~ (DBGMCU_APB1LFZ2_DBG_TIM3))
  735. #define __HAL_DBGMCU_UnFreeze2_TIM4() (DBGMCU->APB1LFZ2 &= ~ (DBGMCU_APB1LFZ2_DBG_TIM4))
  736. #define __HAL_DBGMCU_UnFreeze2_TIM5() (DBGMCU->APB1LFZ2 &= ~ (DBGMCU_APB1LFZ2_DBG_TIM5))
  737. #define __HAL_DBGMCU_UnFreeze2_TIM6() (DBGMCU->APB1LFZ2 &= ~ (DBGMCU_APB1LFZ2_DBG_TIM6))
  738. #define __HAL_DBGMCU_UnFreeze2_TIM7() (DBGMCU->APB1LFZ2 &= ~ (DBGMCU_APB1LFZ2_DBG_TIM7))
  739. #define __HAL_DBGMCU_UnFreeze2_TIM12() (DBGMCU->APB1LFZ2 &= ~ (DBGMCU_APB1LFZ2_DBG_TIM12))
  740. #define __HAL_DBGMCU_UnFreeze2_TIM13() (DBGMCU->APB1LFZ2 &= ~ (DBGMCU_APB1LFZ2_DBG_TIM13))
  741. #define __HAL_DBGMCU_UnFreeze2_TIM14() (DBGMCU->APB1LFZ2 &= ~ (DBGMCU_APB1LFZ2_DBG_TIM14))
  742. #define __HAL_DBGMCU_UnFreeze2_LPTIM1() (DBGMCU->APB1LFZ2 &= ~ (DBGMCU_APB1LFZ2_DBG_LPTIM1))
  743. #define __HAL_DBGMCU_UnFreeze2_I2C1() (DBGMCU->APB1LFZ2 &= ~ (DBGMCU_APB1LFZ2_DBG_I2C1))
  744. #define __HAL_DBGMCU_UnFreeze2_I2C2() (DBGMCU->APB1LFZ2 &= ~ (DBGMCU_APB1LFZ2_DBG_I2C2))
  745. #define __HAL_DBGMCU_UnFreeze2_I2C3() (DBGMCU->APB1LFZ2 &= ~ (DBGMCU_APB1LFZ2_DBG_I2C3))
  746. #define __HAL_DBGMCU_UnFreeze2_FDCAN() (DBGMCU->APB1HFZ2 &= ~ (DBGMCU_APB1HFZ2_DBG_FDCAN))
  747. #define __HAL_DBGMCU_UnFreeze2_TIM1() (DBGMCU->APB2FZ2 &= ~ (DBGMCU_APB2FZ2_DBG_TIM1))
  748. #define __HAL_DBGMCU_UnFreeze2_TIM8() (DBGMCU->APB2FZ2 &= ~ (DBGMCU_APB2FZ2_DBG_TIM8))
  749. #define __HAL_DBGMCU_UnFreeze2_TIM15() (DBGMCU->APB2FZ2 &= ~ (DBGMCU_APB2FZ2_DBG_TIM15))
  750. #define __HAL_DBGMCU_UnFreeze2_TIM16() (DBGMCU->APB2FZ2 &= ~ (DBGMCU_APB2FZ2_DBG_TIM16))
  751. #define __HAL_DBGMCU_UnFreeze2_TIM17() (DBGMCU->APB2FZ2 &= ~ (DBGMCU_APB2FZ2_DBG_TIM17))
  752. #define __HAL_DBGMCU_UnFreeze2_HRTIM() (DBGMCU->APB2FZ2 &= ~ (DBGMCU_APB2FZ2_DBG_HRTIM))
  753. #define __HAL_DBGMCU_UnFreeze2_I2C4() (DBGMCU->APB4FZ2 &= ~ (DBGMCU_APB4FZ2_DBG_I2C4))
  754. #define __HAL_DBGMCU_UnFreeze2_LPTIM2() (DBGMCU->APB4FZ2 &= ~ (DBGMCU_APB4FZ2_DBG_LPTIM2))
  755. #define __HAL_DBGMCU_UnFreeze2_LPTIM3() (DBGMCU->APB4FZ2 &= ~ (DBGMCU_APB4FZ2_DBG_LPTIM3))
  756. #define __HAL_DBGMCU_UnFreeze2_LPTIM4() (DBGMCU->APB4FZ2 &= ~ (DBGMCU_APB4FZ2_DBG_LPTIM4))
  757. #define __HAL_DBGMCU_UnFreeze2_LPTIM5() (DBGMCU->APB4FZ2 &= ~ (DBGMCU_APB4FZ2_DBG_LPTIM5))
  758. #define __HAL_DBGMCU_UnFreeze2_RTC() (DBGMCU->APB4FZ2 &= ~ (DBGMCU_APB4FZ2_DBG_RTC))
  759. #define __HAL_DBGMCU_UnFreeze2_IWDG1() (DBGMCU->APB4FZ2 &= ~ (DBGMCU_APB4FZ2_DBG_IWDG1))
  760. #endif /*DUAL_CORE*/
  761. /** @defgroup HAL_Private_Macros HAL Private Macros
  762. * @{
  763. */
  764. #define IS_TICKFREQ(FREQ) (((FREQ) == HAL_TICK_FREQ_10HZ) || \
  765. ((FREQ) == HAL_TICK_FREQ_100HZ) || \
  766. ((FREQ) == HAL_TICK_FREQ_1KHZ))
  767. /**
  768. * @}
  769. */
  770. /* Exported functions --------------------------------------------------------*/
  771. /* Initialization and de-initialization functions ******************************/
  772. HAL_StatusTypeDef HAL_Init(void);
  773. HAL_StatusTypeDef HAL_DeInit(void);
  774. void HAL_MspInit(void);
  775. void HAL_MspDeInit(void);
  776. HAL_StatusTypeDef HAL_InitTick (uint32_t TickPriority);
  777. /* Peripheral Control functions ************************************************/
  778. void HAL_IncTick(void);
  779. void HAL_Delay(uint32_t Delay);
  780. uint32_t HAL_GetTick(void);
  781. uint32_t HAL_GetTickPrio(void);
  782. HAL_StatusTypeDef HAL_SetTickFreq(HAL_TickFreqTypeDef Freq);
  783. HAL_TickFreqTypeDef HAL_GetTickFreq(void);
  784. void HAL_SuspendTick(void);
  785. void HAL_ResumeTick(void);
  786. uint32_t HAL_GetHalVersion(void);
  787. uint32_t HAL_GetREVID(void);
  788. uint32_t HAL_GetDEVID(void);
  789. void HAL_SYSCFG_ETHInterfaceSelect(uint32_t SYSCFG_ETHInterface);
  790. void HAL_SYSCFG_AnalogSwitchConfig(uint32_t SYSCFG_AnalogSwitch , uint32_t SYSCFG_SwitchState );
  791. void HAL_SYSCFG_EnableBOOST(void);
  792. void HAL_SYSCFG_DisableBOOST(void);
  793. void HAL_SYSCFG_CM7BootAddConfig(uint32_t BootRegister, uint32_t BootAddress);
  794. #if defined(DUAL_CORE)
  795. void HAL_SYSCFG_CM4BootAddConfig(uint32_t BootRegister, uint32_t BootAddress);
  796. void HAL_SYSCFG_EnableCM7BOOT(void);
  797. void HAL_SYSCFG_DisableCM7BOOT(void);
  798. void HAL_SYSCFG_EnableCM4BOOT(void);
  799. void HAL_SYSCFG_DisableCM4BOOT(void);
  800. #endif /*DUAL_CORE*/
  801. void HAL_EnableCompensationCell(void);
  802. void HAL_DisableCompensationCell(void);
  803. void HAL_SYSCFG_EnableIOSpeedOptimize(void);
  804. void HAL_SYSCFG_DisableIOSpeedOptimize(void);
  805. void HAL_SYSCFG_CompensationCodeSelect(uint32_t SYSCFG_CompCode);
  806. void HAL_SYSCFG_CompensationCodeConfig(uint32_t SYSCFG_PMOSCode, uint32_t SYSCFG_NMOSCode);
  807. void HAL_EnableDBGSleepMode(void);
  808. void HAL_DisableDBGSleepMode(void);
  809. void HAL_EnableDBGStopMode(void);
  810. void HAL_DisableDBGStopMode(void);
  811. void HAL_EnableDBGStandbyMode(void);
  812. void HAL_DisableDBGStandbyMode(void);
  813. #if defined(DUAL_CORE)
  814. void HAL_EnableDomain2DBGSleepMode(void);
  815. void HAL_DisableDomain2DBGSleepMode(void);
  816. void HAL_EnableDomain2DBGStopMode(void);
  817. void HAL_DisableDomain2DBGStopMode(void);
  818. void HAL_EnableDomain2DBGStandbyMode(void);
  819. void HAL_DisableDomain2DBGStandbyMode(void);
  820. #endif /*DUAL_CORE*/
  821. void HAL_EnableDomain3DBGStopMode(void);
  822. void HAL_DisableDomain3DBGStopMode(void);
  823. void HAL_EnableDomain3DBGStandbyMode(void);
  824. void HAL_DisableDomain3DBGStandbyMode(void);
  825. void HAL_EXTI_EdgeConfig(uint32_t EXTI_Line , uint32_t EXTI_Edge );
  826. void HAL_EXTI_GenerateSWInterrupt(uint32_t EXTI_Line);
  827. #if defined(DUAL_CORE)
  828. void HAL_EXTI_D2_ClearFlag(uint32_t EXTI_Line);
  829. #endif /*DUAL_CORE*/
  830. void HAL_EXTI_D1_ClearFlag(uint32_t EXTI_Line);
  831. void HAL_EXTI_D1_EventInputConfig(uint32_t EXTI_Line , uint32_t EXTI_Mode, uint32_t EXTI_LineCmd);
  832. #if defined(DUAL_CORE)
  833. void HAL_EXTI_D2_EventInputConfig(uint32_t EXTI_Line , uint32_t EXTI_Mode, uint32_t EXTI_LineCmd);
  834. #endif /*DUAL_CORE*/
  835. void HAL_EXTI_D3_EventInputConfig(uint32_t EXTI_Line, uint32_t EXTI_LineCmd , uint32_t EXTI_ClearSrc);
  836. void HAL_SetFMCMemorySwappingConfig(uint32_t BankMapConfig);
  837. uint32_t HAL_GetFMCMemorySwappingConfig(void);
  838. void HAL_SYSCFG_VREFBUF_VoltageScalingConfig(uint32_t VoltageScaling);
  839. void HAL_SYSCFG_VREFBUF_HighImpedanceConfig(uint32_t Mode);
  840. void HAL_SYSCFG_VREFBUF_TrimmingConfig(uint32_t TrimmingValue);
  841. HAL_StatusTypeDef HAL_SYSCFG_EnableVREFBUF(void);
  842. void HAL_SYSCFG_DisableVREFBUF(void);
  843. /**
  844. * @}
  845. */
  846. /**
  847. * @}
  848. */
  849. #ifdef __cplusplus
  850. }
  851. #endif
  852. #endif /* STM32H7xx_HAL_H */
  853. /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/