STM32F479xx HAL User Manual
|
00001 /** 00002 ****************************************************************************** 00003 * @file stm32f4xx_hal.h 00004 * @author MCD Application Team 00005 * @brief This file contains all the functions prototypes for the HAL 00006 * module driver. 00007 ****************************************************************************** 00008 * @attention 00009 * 00010 * <h2><center>© Copyright (c) 2017 STMicroelectronics. 00011 * All rights reserved.</center></h2> 00012 * 00013 * This software component is licensed by ST under BSD 3-Clause license, 00014 * the "License"; You may not use this file except in compliance with the 00015 * License. You may obtain a copy of the License at: 00016 * opensource.org/licenses/BSD-3-Clause 00017 * 00018 ****************************************************************************** 00019 */ 00020 00021 /* Define to prevent recursive inclusion -------------------------------------*/ 00022 #ifndef __STM32F4xx_HAL_H 00023 #define __STM32F4xx_HAL_H 00024 00025 #ifdef __cplusplus 00026 extern "C" { 00027 #endif 00028 00029 /* Includes ------------------------------------------------------------------*/ 00030 #include "stm32f4xx_hal_conf.h" 00031 00032 /** @addtogroup STM32F4xx_HAL_Driver 00033 * @{ 00034 */ 00035 00036 /** @addtogroup HAL 00037 * @{ 00038 */ 00039 00040 /* Exported types ------------------------------------------------------------*/ 00041 /* Exported constants --------------------------------------------------------*/ 00042 00043 /** @defgroup HAL_Exported_Constants HAL Exported Constants 00044 * @{ 00045 */ 00046 00047 /** @defgroup HAL_TICK_FREQ Tick Frequency 00048 * @{ 00049 */ 00050 typedef enum 00051 { 00052 HAL_TICK_FREQ_10HZ = 100U, 00053 HAL_TICK_FREQ_100HZ = 10U, 00054 HAL_TICK_FREQ_1KHZ = 1U, 00055 HAL_TICK_FREQ_DEFAULT = HAL_TICK_FREQ_1KHZ 00056 } HAL_TickFreqTypeDef; 00057 /** 00058 * @} 00059 */ 00060 00061 /** 00062 * @} 00063 */ 00064 00065 /* Exported macro ------------------------------------------------------------*/ 00066 /** @defgroup HAL_Exported_Macros HAL Exported Macros 00067 * @{ 00068 */ 00069 00070 /** @brief Freeze/Unfreeze Peripherals in Debug mode 00071 */ 00072 #define __HAL_DBGMCU_FREEZE_TIM2() (DBGMCU->APB1FZ |= (DBGMCU_APB1_FZ_DBG_TIM2_STOP)) 00073 #define __HAL_DBGMCU_FREEZE_TIM3() (DBGMCU->APB1FZ |= (DBGMCU_APB1_FZ_DBG_TIM3_STOP)) 00074 #define __HAL_DBGMCU_FREEZE_TIM4() (DBGMCU->APB1FZ |= (DBGMCU_APB1_FZ_DBG_TIM4_STOP)) 00075 #define __HAL_DBGMCU_FREEZE_TIM5() (DBGMCU->APB1FZ |= (DBGMCU_APB1_FZ_DBG_TIM5_STOP)) 00076 #define __HAL_DBGMCU_FREEZE_TIM6() (DBGMCU->APB1FZ |= (DBGMCU_APB1_FZ_DBG_TIM6_STOP)) 00077 #define __HAL_DBGMCU_FREEZE_TIM7() (DBGMCU->APB1FZ |= (DBGMCU_APB1_FZ_DBG_TIM7_STOP)) 00078 #define __HAL_DBGMCU_FREEZE_TIM12() (DBGMCU->APB1FZ |= (DBGMCU_APB1_FZ_DBG_TIM12_STOP)) 00079 #define __HAL_DBGMCU_FREEZE_TIM13() (DBGMCU->APB1FZ |= (DBGMCU_APB1_FZ_DBG_TIM13_STOP)) 00080 #define __HAL_DBGMCU_FREEZE_TIM14() (DBGMCU->APB1FZ |= (DBGMCU_APB1_FZ_DBG_TIM14_STOP)) 00081 #define __HAL_DBGMCU_FREEZE_RTC() (DBGMCU->APB1FZ |= (DBGMCU_APB1_FZ_DBG_RTC_STOP)) 00082 #define __HAL_DBGMCU_FREEZE_WWDG() (DBGMCU->APB1FZ |= (DBGMCU_APB1_FZ_DBG_WWDG_STOP)) 00083 #define __HAL_DBGMCU_FREEZE_IWDG() (DBGMCU->APB1FZ |= (DBGMCU_APB1_FZ_DBG_IWDG_STOP)) 00084 #define __HAL_DBGMCU_FREEZE_I2C1_TIMEOUT() (DBGMCU->APB1FZ |= (DBGMCU_APB1_FZ_DBG_I2C1_SMBUS_TIMEOUT)) 00085 #define __HAL_DBGMCU_FREEZE_I2C2_TIMEOUT() (DBGMCU->APB1FZ |= (DBGMCU_APB1_FZ_DBG_I2C2_SMBUS_TIMEOUT)) 00086 #define __HAL_DBGMCU_FREEZE_I2C3_TIMEOUT() (DBGMCU->APB1FZ |= (DBGMCU_APB1_FZ_DBG_I2C3_SMBUS_TIMEOUT)) 00087 #define __HAL_DBGMCU_FREEZE_CAN1() (DBGMCU->APB1FZ |= (DBGMCU_APB1_FZ_DBG_CAN1_STOP)) 00088 #define __HAL_DBGMCU_FREEZE_CAN2() (DBGMCU->APB1FZ |= (DBGMCU_APB1_FZ_DBG_CAN2_STOP)) 00089 #define __HAL_DBGMCU_FREEZE_TIM1() (DBGMCU->APB2FZ |= (DBGMCU_APB2_FZ_DBG_TIM1_STOP)) 00090 #define __HAL_DBGMCU_FREEZE_TIM8() (DBGMCU->APB2FZ |= (DBGMCU_APB2_FZ_DBG_TIM8_STOP)) 00091 #define __HAL_DBGMCU_FREEZE_TIM9() (DBGMCU->APB2FZ |= (DBGMCU_APB2_FZ_DBG_TIM9_STOP)) 00092 #define __HAL_DBGMCU_FREEZE_TIM10() (DBGMCU->APB2FZ |= (DBGMCU_APB2_FZ_DBG_TIM10_STOP)) 00093 #define __HAL_DBGMCU_FREEZE_TIM11() (DBGMCU->APB2FZ |= (DBGMCU_APB2_FZ_DBG_TIM11_STOP)) 00094 00095 #define __HAL_DBGMCU_UNFREEZE_TIM2() (DBGMCU->APB1FZ &= ~(DBGMCU_APB1_FZ_DBG_TIM2_STOP)) 00096 #define __HAL_DBGMCU_UNFREEZE_TIM3() (DBGMCU->APB1FZ &= ~(DBGMCU_APB1_FZ_DBG_TIM3_STOP)) 00097 #define __HAL_DBGMCU_UNFREEZE_TIM4() (DBGMCU->APB1FZ &= ~(DBGMCU_APB1_FZ_DBG_TIM4_STOP)) 00098 #define __HAL_DBGMCU_UNFREEZE_TIM5() (DBGMCU->APB1FZ &= ~(DBGMCU_APB1_FZ_DBG_TIM5_STOP)) 00099 #define __HAL_DBGMCU_UNFREEZE_TIM6() (DBGMCU->APB1FZ &= ~(DBGMCU_APB1_FZ_DBG_TIM6_STOP)) 00100 #define __HAL_DBGMCU_UNFREEZE_TIM7() (DBGMCU->APB1FZ &= ~(DBGMCU_APB1_FZ_DBG_TIM7_STOP)) 00101 #define __HAL_DBGMCU_UNFREEZE_TIM12() (DBGMCU->APB1FZ &= ~(DBGMCU_APB1_FZ_DBG_TIM12_STOP)) 00102 #define __HAL_DBGMCU_UNFREEZE_TIM13() (DBGMCU->APB1FZ &= ~(DBGMCU_APB1_FZ_DBG_TIM13_STOP)) 00103 #define __HAL_DBGMCU_UNFREEZE_TIM14() (DBGMCU->APB1FZ &= ~(DBGMCU_APB1_FZ_DBG_TIM14_STOP)) 00104 #define __HAL_DBGMCU_UNFREEZE_RTC() (DBGMCU->APB1FZ &= ~(DBGMCU_APB1_FZ_DBG_RTC_STOP)) 00105 #define __HAL_DBGMCU_UNFREEZE_WWDG() (DBGMCU->APB1FZ &= ~(DBGMCU_APB1_FZ_DBG_WWDG_STOP)) 00106 #define __HAL_DBGMCU_UNFREEZE_IWDG() (DBGMCU->APB1FZ &= ~(DBGMCU_APB1_FZ_DBG_IWDG_STOP)) 00107 #define __HAL_DBGMCU_UNFREEZE_I2C1_TIMEOUT() (DBGMCU->APB1FZ &= ~(DBGMCU_APB1_FZ_DBG_I2C1_SMBUS_TIMEOUT)) 00108 #define __HAL_DBGMCU_UNFREEZE_I2C2_TIMEOUT() (DBGMCU->APB1FZ &= ~(DBGMCU_APB1_FZ_DBG_I2C2_SMBUS_TIMEOUT)) 00109 #define __HAL_DBGMCU_UNFREEZE_I2C3_TIMEOUT() (DBGMCU->APB1FZ &= ~(DBGMCU_APB1_FZ_DBG_I2C3_SMBUS_TIMEOUT)) 00110 #define __HAL_DBGMCU_UNFREEZE_CAN1() (DBGMCU->APB1FZ &= ~(DBGMCU_APB1_FZ_DBG_CAN1_STOP)) 00111 #define __HAL_DBGMCU_UNFREEZE_CAN2() (DBGMCU->APB1FZ &= ~(DBGMCU_APB1_FZ_DBG_CAN2_STOP)) 00112 #define __HAL_DBGMCU_UNFREEZE_TIM1() (DBGMCU->APB2FZ &= ~(DBGMCU_APB2_FZ_DBG_TIM1_STOP)) 00113 #define __HAL_DBGMCU_UNFREEZE_TIM8() (DBGMCU->APB2FZ &= ~(DBGMCU_APB2_FZ_DBG_TIM8_STOP)) 00114 #define __HAL_DBGMCU_UNFREEZE_TIM9() (DBGMCU->APB2FZ &= ~(DBGMCU_APB2_FZ_DBG_TIM9_STOP)) 00115 #define __HAL_DBGMCU_UNFREEZE_TIM10() (DBGMCU->APB2FZ &= ~(DBGMCU_APB2_FZ_DBG_TIM10_STOP)) 00116 #define __HAL_DBGMCU_UNFREEZE_TIM11() (DBGMCU->APB2FZ &= ~(DBGMCU_APB2_FZ_DBG_TIM11_STOP)) 00117 00118 /** @brief Main Flash memory mapped at 0x00000000 00119 */ 00120 #define __HAL_SYSCFG_REMAPMEMORY_FLASH() (SYSCFG->MEMRMP &= ~(SYSCFG_MEMRMP_MEM_MODE)) 00121 00122 /** @brief System Flash memory mapped at 0x00000000 00123 */ 00124 #define __HAL_SYSCFG_REMAPMEMORY_SYSTEMFLASH() do {SYSCFG->MEMRMP &= ~(SYSCFG_MEMRMP_MEM_MODE);\ 00125 SYSCFG->MEMRMP |= SYSCFG_MEMRMP_MEM_MODE_0;\ 00126 }while(0); 00127 00128 /** @brief Embedded SRAM mapped at 0x00000000 00129 */ 00130 #define __HAL_SYSCFG_REMAPMEMORY_SRAM() do {SYSCFG->MEMRMP &= ~(SYSCFG_MEMRMP_MEM_MODE);\ 00131 SYSCFG->MEMRMP |= (SYSCFG_MEMRMP_MEM_MODE_0 | SYSCFG_MEMRMP_MEM_MODE_1);\ 00132 }while(0); 00133 00134 #if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx)|| defined(STM32F417xx) 00135 /** @brief FSMC Bank1 (NOR/PSRAM 1 and 2) mapped at 0x00000000 00136 */ 00137 #define __HAL_SYSCFG_REMAPMEMORY_FSMC() do {SYSCFG->MEMRMP &= ~(SYSCFG_MEMRMP_MEM_MODE);\ 00138 SYSCFG->MEMRMP |= (SYSCFG_MEMRMP_MEM_MODE_1);\ 00139 }while(0); 00140 #endif /* STM32F405xx || STM32F415xx || STM32F407xx || STM32F417xx */ 00141 00142 #if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx)|| defined(STM32F439xx) ||\ 00143 defined(STM32F469xx) || defined(STM32F479xx) 00144 /** @brief FMC Bank1 (NOR/PSRAM 1 and 2) mapped at 0x00000000 00145 */ 00146 #define __HAL_SYSCFG_REMAPMEMORY_FMC() do {SYSCFG->MEMRMP &= ~(SYSCFG_MEMRMP_MEM_MODE);\ 00147 SYSCFG->MEMRMP |= (SYSCFG_MEMRMP_MEM_MODE_1);\ 00148 }while(0); 00149 00150 /** @brief FMC/SDRAM Bank 1 and 2 mapped at 0x00000000 00151 */ 00152 #define __HAL_SYSCFG_REMAPMEMORY_FMC_SDRAM() do {SYSCFG->MEMRMP &= ~(SYSCFG_MEMRMP_MEM_MODE);\ 00153 SYSCFG->MEMRMP |= (SYSCFG_MEMRMP_MEM_MODE_2);\ 00154 }while(0); 00155 #endif /* STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx || STM32F469xx || STM32F479xx */ 00156 00157 #if defined(STM32F410Tx) || defined(STM32F410Cx) || defined(STM32F410Rx) || defined(STM32F413xx) || defined(STM32F423xx) 00158 /** @defgroup Cortex_Lockup_Enable Cortex Lockup Enable 00159 * @{ 00160 */ 00161 /** @brief SYSCFG Break Lockup lock 00162 * Enables and locks the connection of Cortex-M4 LOCKUP (Hardfault) output to TIM1/8 input 00163 * @note The selected configuration is locked and can be unlocked by system reset 00164 */ 00165 #define __HAL_SYSCFG_BREAK_PVD_LOCK() do {SYSCFG->CFGR2 &= ~(SYSCFG_CFGR2_PVD_LOCK); \ 00166 SYSCFG->CFGR2 |= SYSCFG_CFGR2_PVD_LOCK; \ 00167 }while(0) 00168 /** 00169 * @} 00170 */ 00171 00172 /** @defgroup PVD_Lock_Enable PVD Lock 00173 * @{ 00174 */ 00175 /** @brief SYSCFG Break PVD lock 00176 * Enables and locks the PVD connection with Timer1/8 Break Input, , as well as the PVDE and PLS[2:0] in the PWR_CR register 00177 * @note The selected configuration is locked and can be unlocked by system reset 00178 */ 00179 #define __HAL_SYSCFG_BREAK_LOCKUP_LOCK() do {SYSCFG->CFGR2 &= ~(SYSCFG_CFGR2_LOCKUP_LOCK); \ 00180 SYSCFG->CFGR2 |= SYSCFG_CFGR2_LOCKUP_LOCK; \ 00181 }while(0) 00182 /** 00183 * @} 00184 */ 00185 #endif /* STM32F410Tx || STM32F410Cx || STM32F410Rx || STM32F413xx || STM32F423xx */ 00186 /** 00187 * @} 00188 */ 00189 00190 /** @defgroup HAL_Private_Macros HAL Private Macros 00191 * @{ 00192 */ 00193 #define IS_TICKFREQ(FREQ) (((FREQ) == HAL_TICK_FREQ_10HZ) || \ 00194 ((FREQ) == HAL_TICK_FREQ_100HZ) || \ 00195 ((FREQ) == HAL_TICK_FREQ_1KHZ)) 00196 /** 00197 * @} 00198 */ 00199 00200 /* Exported variables --------------------------------------------------------*/ 00201 00202 /** @addtogroup HAL_Exported_Variables 00203 * @{ 00204 */ 00205 extern __IO uint32_t uwTick; 00206 extern uint32_t uwTickPrio; 00207 extern HAL_TickFreqTypeDef uwTickFreq; 00208 /** 00209 * @} 00210 */ 00211 00212 /* Exported functions --------------------------------------------------------*/ 00213 /** @addtogroup HAL_Exported_Functions 00214 * @{ 00215 */ 00216 /** @addtogroup HAL_Exported_Functions_Group1 00217 * @{ 00218 */ 00219 /* Initialization and Configuration functions ******************************/ 00220 HAL_StatusTypeDef HAL_Init(void); 00221 HAL_StatusTypeDef HAL_DeInit(void); 00222 void HAL_MspInit(void); 00223 void HAL_MspDeInit(void); 00224 HAL_StatusTypeDef HAL_InitTick (uint32_t TickPriority); 00225 /** 00226 * @} 00227 */ 00228 00229 /** @addtogroup HAL_Exported_Functions_Group2 00230 * @{ 00231 */ 00232 /* Peripheral Control functions ************************************************/ 00233 void HAL_IncTick(void); 00234 void HAL_Delay(uint32_t Delay); 00235 uint32_t HAL_GetTick(void); 00236 uint32_t HAL_GetTickPrio(void); 00237 HAL_StatusTypeDef HAL_SetTickFreq(HAL_TickFreqTypeDef Freq); 00238 HAL_TickFreqTypeDef HAL_GetTickFreq(void); 00239 void HAL_SuspendTick(void); 00240 void HAL_ResumeTick(void); 00241 uint32_t HAL_GetHalVersion(void); 00242 uint32_t HAL_GetREVID(void); 00243 uint32_t HAL_GetDEVID(void); 00244 void HAL_DBGMCU_EnableDBGSleepMode(void); 00245 void HAL_DBGMCU_DisableDBGSleepMode(void); 00246 void HAL_DBGMCU_EnableDBGStopMode(void); 00247 void HAL_DBGMCU_DisableDBGStopMode(void); 00248 void HAL_DBGMCU_EnableDBGStandbyMode(void); 00249 void HAL_DBGMCU_DisableDBGStandbyMode(void); 00250 void HAL_EnableCompensationCell(void); 00251 void HAL_DisableCompensationCell(void); 00252 uint32_t HAL_GetUIDw0(void); 00253 uint32_t HAL_GetUIDw1(void); 00254 uint32_t HAL_GetUIDw2(void); 00255 #if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx)|| defined(STM32F439xx) ||\ 00256 defined(STM32F469xx) || defined(STM32F479xx) 00257 void HAL_EnableMemorySwappingBank(void); 00258 void HAL_DisableMemorySwappingBank(void); 00259 #endif /* STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx || STM32F469xx || STM32F479xx */ 00260 /** 00261 * @} 00262 */ 00263 00264 /** 00265 * @} 00266 */ 00267 /* Private types -------------------------------------------------------------*/ 00268 /* Private variables ---------------------------------------------------------*/ 00269 /** @defgroup HAL_Private_Variables HAL Private Variables 00270 * @{ 00271 */ 00272 /** 00273 * @} 00274 */ 00275 /* Private constants ---------------------------------------------------------*/ 00276 /** @defgroup HAL_Private_Constants HAL Private Constants 00277 * @{ 00278 */ 00279 /** 00280 * @} 00281 */ 00282 /* Private macros ------------------------------------------------------------*/ 00283 /* Private functions ---------------------------------------------------------*/ 00284 /** 00285 * @} 00286 */ 00287 00288 /** 00289 * @} 00290 */ 00291 00292 #ifdef __cplusplus 00293 } 00294 #endif 00295 00296 #endif /* __STM32F4xx_HAL_H */ 00297 00298 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/