mbed library sources

Dependents:   Encrypted my_mbed lklk CyaSSL_DTLS_Cellular ... more

Superseded

This library was superseded by mbed-dev - https://os.mbed.com/users/mbed_official/code/mbed-dev/.

Development branch of the mbed library sources. This library is kept in synch with the latest changes from the mbed SDK and it is not guaranteed to work.

If you are looking for a stable and tested release, please import one of the official mbed library releases:

Import librarymbed

The official Mbed 2 C/C++ SDK provides the software platform and libraries to build your applications.

Committer:
mbed_official
Date:
Wed Feb 26 09:45:12 2014 +0000
Revision:
106:ced8cbb51063
Parent:
87:085cde657901
Child:
226:b062af740e40
Synchronized with git revision 4222735eff5868389433f0e9271976b39c8115cd

Full URL: https://github.com/mbedmicro/mbed/commit/4222735eff5868389433f0e9271976b39c8115cd/

[NUCLEO_xxx] Update STM32CubeF4 driver V1.0.0 + update license

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 87:085cde657901 1 /**
mbed_official 87:085cde657901 2 ******************************************************************************
mbed_official 87:085cde657901 3 * @file stm32f4xx_hal.c
mbed_official 87:085cde657901 4 * @author MCD Application Team
mbed_official 106:ced8cbb51063 5 * @version V1.0.0
mbed_official 106:ced8cbb51063 6 * @date 18-February-2014
mbed_official 87:085cde657901 7 * @brief HAL module driver.
mbed_official 87:085cde657901 8 * This is the common part of the HAL initialization
mbed_official 87:085cde657901 9 *
mbed_official 87:085cde657901 10 @verbatim
mbed_official 87:085cde657901 11 ==============================================================================
mbed_official 87:085cde657901 12 ##### How to use this driver #####
mbed_official 87:085cde657901 13 ==============================================================================
mbed_official 87:085cde657901 14 [..]
mbed_official 87:085cde657901 15 The common HAL driver contains a set of generic and common APIs that can be
mbed_official 87:085cde657901 16 used by the PPP peripheral drivers and the user to start using the HAL.
mbed_official 87:085cde657901 17 [..]
mbed_official 87:085cde657901 18 The HAL contains two APIs categories:
mbed_official 87:085cde657901 19 (+) Common HAL APIs
mbed_official 87:085cde657901 20 (+) Services HAL APIs
mbed_official 87:085cde657901 21
mbed_official 87:085cde657901 22 @endverbatim
mbed_official 87:085cde657901 23 ******************************************************************************
mbed_official 87:085cde657901 24 * @attention
mbed_official 87:085cde657901 25 *
mbed_official 87:085cde657901 26 * <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2>
mbed_official 87:085cde657901 27 *
mbed_official 87:085cde657901 28 * Redistribution and use in source and binary forms, with or without modification,
mbed_official 87:085cde657901 29 * are permitted provided that the following conditions are met:
mbed_official 87:085cde657901 30 * 1. Redistributions of source code must retain the above copyright notice,
mbed_official 87:085cde657901 31 * this list of conditions and the following disclaimer.
mbed_official 87:085cde657901 32 * 2. Redistributions in binary form must reproduce the above copyright notice,
mbed_official 87:085cde657901 33 * this list of conditions and the following disclaimer in the documentation
mbed_official 87:085cde657901 34 * and/or other materials provided with the distribution.
mbed_official 87:085cde657901 35 * 3. Neither the name of STMicroelectronics nor the names of its contributors
mbed_official 87:085cde657901 36 * may be used to endorse or promote products derived from this software
mbed_official 87:085cde657901 37 * without specific prior written permission.
mbed_official 87:085cde657901 38 *
mbed_official 87:085cde657901 39 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
mbed_official 87:085cde657901 40 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
mbed_official 87:085cde657901 41 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
mbed_official 87:085cde657901 42 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
mbed_official 87:085cde657901 43 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
mbed_official 87:085cde657901 44 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
mbed_official 87:085cde657901 45 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
mbed_official 87:085cde657901 46 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
mbed_official 87:085cde657901 47 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
mbed_official 87:085cde657901 48 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
mbed_official 87:085cde657901 49 *
mbed_official 87:085cde657901 50 ******************************************************************************
mbed_official 87:085cde657901 51 */
mbed_official 87:085cde657901 52
mbed_official 87:085cde657901 53 /* Includes ------------------------------------------------------------------*/
mbed_official 87:085cde657901 54 #include "stm32f4xx_hal.h"
mbed_official 87:085cde657901 55
mbed_official 87:085cde657901 56 /** @addtogroup STM32F4xx_HAL_Driver
mbed_official 87:085cde657901 57 * @{
mbed_official 87:085cde657901 58 */
mbed_official 87:085cde657901 59
mbed_official 87:085cde657901 60 /** @defgroup HAL
mbed_official 87:085cde657901 61 * @brief HAL module driver.
mbed_official 87:085cde657901 62 * @{
mbed_official 87:085cde657901 63 */
mbed_official 87:085cde657901 64
mbed_official 87:085cde657901 65 /* Private typedef -----------------------------------------------------------*/
mbed_official 87:085cde657901 66 /* Private define ------------------------------------------------------------*/
mbed_official 87:085cde657901 67 /**
mbed_official 106:ced8cbb51063 68 * @brief STM32F4xx HAL Driver version number V1.0.0
mbed_official 87:085cde657901 69 */
mbed_official 87:085cde657901 70 #define __STM32F4xx_HAL_VERSION_MAIN (0x01) /*!< [31:24] main version */
mbed_official 87:085cde657901 71 #define __STM32F4xx_HAL_VERSION_SUB1 (0x00) /*!< [23:16] sub1 version */
mbed_official 87:085cde657901 72 #define __STM32F4xx_HAL_VERSION_SUB2 (0x00) /*!< [15:8] sub2 version */
mbed_official 106:ced8cbb51063 73 #define __STM32F4xx_HAL_VERSION_RC (0x00) /*!< [7:0] release candidate */
mbed_official 87:085cde657901 74 #define __STM32F4xx_HAL_VERSION ((__STM32F4xx_HAL_VERSION_MAIN << 24)\
mbed_official 87:085cde657901 75 |(__STM32F4xx_HAL_VERSION_SUB1 << 16)\
mbed_official 87:085cde657901 76 |(__STM32F4xx_HAL_VERSION_SUB2 << 8 )\
mbed_official 87:085cde657901 77 |(__STM32F4xx_HAL_VERSION_RC))
mbed_official 87:085cde657901 78
mbed_official 87:085cde657901 79 #define IDCODE_DEVID_MASK ((uint32_t)0x00000FFF)
mbed_official 87:085cde657901 80
mbed_official 87:085cde657901 81 /* ------------ RCC registers bit address in the alias region ----------- */
mbed_official 87:085cde657901 82 #define SYSCFG_OFFSET (SYSCFG_BASE - PERIPH_BASE)
mbed_official 87:085cde657901 83 /* --- MEMRMP Register ---*/
mbed_official 87:085cde657901 84 /* Alias word address of UFB_MODE bit */
mbed_official 87:085cde657901 85 #define MEMRMP_OFFSET SYSCFG_OFFSET
mbed_official 87:085cde657901 86 #define UFB_MODE_BitNumber ((uint8_t)0x8)
mbed_official 87:085cde657901 87 #define UFB_MODE_BB (PERIPH_BB_BASE + (MEMRMP_OFFSET * 32) + (UFB_MODE_BitNumber * 4))
mbed_official 87:085cde657901 88
mbed_official 87:085cde657901 89 /* --- CMPCR Register ---*/
mbed_official 87:085cde657901 90 /* Alias word address of CMP_PD bit */
mbed_official 87:085cde657901 91 #define CMPCR_OFFSET (SYSCFG_OFFSET + 0x20)
mbed_official 87:085cde657901 92 #define CMP_PD_BitNumber ((uint8_t)0x00)
mbed_official 87:085cde657901 93 #define CMPCR_CMP_PD_BB (PERIPH_BB_BASE + (CMPCR_OFFSET * 32) + (CMP_PD_BitNumber * 4))
mbed_official 87:085cde657901 94 /* Private macro -------------------------------------------------------------*/
mbed_official 87:085cde657901 95 /* Private variables ---------------------------------------------------------*/
mbed_official 87:085cde657901 96 static __IO uint32_t uwTick;
mbed_official 106:ced8cbb51063 97
mbed_official 87:085cde657901 98 /* Private function prototypes -----------------------------------------------*/
mbed_official 87:085cde657901 99 /* Private functions ---------------------------------------------------------*/
mbed_official 87:085cde657901 100
mbed_official 87:085cde657901 101 /** @defgroup HAL_Private_Functions
mbed_official 87:085cde657901 102 * @{
mbed_official 87:085cde657901 103 */
mbed_official 87:085cde657901 104
mbed_official 87:085cde657901 105 /** @defgroup HAL_Group1 Initialization and de-initialization Functions
mbed_official 87:085cde657901 106 * @brief Initialization and de-initialization functions
mbed_official 87:085cde657901 107 *
mbed_official 87:085cde657901 108 @verbatim
mbed_official 87:085cde657901 109 ===============================================================================
mbed_official 87:085cde657901 110 ##### Initialization and de-initialization functions #####
mbed_official 87:085cde657901 111 ===============================================================================
mbed_official 87:085cde657901 112 [..] This section provides functions allowing to:
mbed_official 87:085cde657901 113 (+) Initializes the Flash interface the NVIC allocation and initial clock
mbed_official 87:085cde657901 114 configuration. It initializes the systick also when timeout is needed
mbed_official 87:085cde657901 115 and the backup domain when enabled.
mbed_official 87:085cde657901 116 (+) de-Initializes common part of the HAL
mbed_official 87:085cde657901 117
mbed_official 87:085cde657901 118 @endverbatim
mbed_official 87:085cde657901 119 * @{
mbed_official 87:085cde657901 120 */
mbed_official 87:085cde657901 121
mbed_official 87:085cde657901 122 /**
mbed_official 106:ced8cbb51063 123 * @brief This function is used to initialize the HAL Library; it must be the first
mbed_official 106:ced8cbb51063 124 * instruction to be executed in the main program (before to call any other
mbed_official 106:ced8cbb51063 125 * HAL function), it performs the following:
mbed_official 106:ced8cbb51063 126 * - Configure the Flash prefetch, instruction and Data caches
mbed_official 106:ced8cbb51063 127 * - Configures the SysTick to generate an interrupt each 1 millisecond,
mbed_official 106:ced8cbb51063 128 * which is clocked by the HSI (at this stage, the clock is not yet
mbed_official 106:ced8cbb51063 129 * configured and thus the system is running from the internal HSI at 16 MHz)
mbed_official 106:ced8cbb51063 130 * - Set NVIC Group Priority to 4
mbed_official 106:ced8cbb51063 131 * - Calls the HAL_MspInit() callback function defined in user file
mbed_official 106:ced8cbb51063 132 * stm32f4xx_hal_msp.c to do the global low level hardware initialization
mbed_official 87:085cde657901 133 *
mbed_official 106:ced8cbb51063 134 * @note SysTick is used as time base for the HAL_Delay() function, the application
mbed_official 106:ced8cbb51063 135 * need to ensure that the SysTick time base is always set to 1 millisecond
mbed_official 106:ced8cbb51063 136 * to have correct HAL operation.
mbed_official 87:085cde657901 137 * @note
mbed_official 87:085cde657901 138 * @param None
mbed_official 87:085cde657901 139 * @retval HAL status
mbed_official 87:085cde657901 140 */
mbed_official 87:085cde657901 141 HAL_StatusTypeDef HAL_Init(void)
mbed_official 87:085cde657901 142 {
mbed_official 87:085cde657901 143 /* Configure Flash prefetch, Instruction cache, Data cache */
mbed_official 87:085cde657901 144 #if (INSTRUCTION_CACHE_ENABLE != 0)
mbed_official 87:085cde657901 145 __HAL_FLASH_INSTRUCTION_CACHE_ENABLE();
mbed_official 87:085cde657901 146 #endif /* INSTRUCTION_CACHE_ENABLE */
mbed_official 87:085cde657901 147
mbed_official 87:085cde657901 148 #if (DATA_CACHE_ENABLE != 0)
mbed_official 87:085cde657901 149 __HAL_FLASH_DATA_CACHE_ENABLE();
mbed_official 87:085cde657901 150 #endif /* DATA_CACHE_ENABLE */
mbed_official 87:085cde657901 151
mbed_official 87:085cde657901 152 #if (PREFETCH_ENABLE != 0)
mbed_official 87:085cde657901 153 __HAL_FLASH_PREFETCH_BUFFER_ENABLE();
mbed_official 87:085cde657901 154 #endif /* PREFETCH_ENABLE */
mbed_official 87:085cde657901 155
mbed_official 87:085cde657901 156 /* Enable systick and configure 1ms tick (default clock after Reset is HSI) */
mbed_official 87:085cde657901 157 HAL_SYSTICK_Config(HSI_VALUE/ 1000);
mbed_official 87:085cde657901 158
mbed_official 87:085cde657901 159 /* Set Interrupt Group Priority */
mbed_official 87:085cde657901 160 HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_4);
mbed_official 87:085cde657901 161
mbed_official 87:085cde657901 162 /* Init the low level hardware */
mbed_official 87:085cde657901 163 HAL_MspInit();
mbed_official 87:085cde657901 164
mbed_official 87:085cde657901 165 /* Return function status */
mbed_official 87:085cde657901 166 return HAL_OK;
mbed_official 87:085cde657901 167 }
mbed_official 87:085cde657901 168
mbed_official 87:085cde657901 169 /**
mbed_official 87:085cde657901 170 * @brief This function de-Initializes common part of the HAL and stops the systick.
mbed_official 87:085cde657901 171 * This function is optional.
mbed_official 87:085cde657901 172 * @param None
mbed_official 87:085cde657901 173 * @retval HAL status
mbed_official 87:085cde657901 174 */
mbed_official 87:085cde657901 175 HAL_StatusTypeDef HAL_DeInit(void)
mbed_official 87:085cde657901 176 {
mbed_official 87:085cde657901 177 /* Reset of all peripherals */
mbed_official 87:085cde657901 178 __APB1_FORCE_RESET();
mbed_official 87:085cde657901 179 __APB1_RELEASE_RESET();
mbed_official 87:085cde657901 180
mbed_official 87:085cde657901 181 __APB2_FORCE_RESET();
mbed_official 87:085cde657901 182 __APB2_RELEASE_RESET();
mbed_official 87:085cde657901 183
mbed_official 87:085cde657901 184 __AHB1_FORCE_RESET();
mbed_official 87:085cde657901 185 __AHB1_RELEASE_RESET();
mbed_official 87:085cde657901 186
mbed_official 87:085cde657901 187 __AHB2_FORCE_RESET();
mbed_official 87:085cde657901 188 __AHB2_RELEASE_RESET();
mbed_official 87:085cde657901 189
mbed_official 87:085cde657901 190 __AHB3_FORCE_RESET();
mbed_official 87:085cde657901 191 __AHB3_RELEASE_RESET();
mbed_official 87:085cde657901 192
mbed_official 87:085cde657901 193 /* De-Init the low level hardware */
mbed_official 87:085cde657901 194 HAL_MspDeInit();
mbed_official 87:085cde657901 195
mbed_official 87:085cde657901 196 /* Return function status */
mbed_official 87:085cde657901 197 return HAL_OK;
mbed_official 87:085cde657901 198 }
mbed_official 87:085cde657901 199
mbed_official 87:085cde657901 200 /**
mbed_official 87:085cde657901 201 * @brief Initializes the MSP.
mbed_official 87:085cde657901 202 * @param None
mbed_official 87:085cde657901 203 * @retval None
mbed_official 87:085cde657901 204 */
mbed_official 87:085cde657901 205 __weak void HAL_MspInit(void)
mbed_official 87:085cde657901 206 {
mbed_official 87:085cde657901 207 /* NOTE : This function Should not be modified, when the callback is needed,
mbed_official 87:085cde657901 208 the HAL_MspInit could be implemented in the user file
mbed_official 87:085cde657901 209 */
mbed_official 87:085cde657901 210 }
mbed_official 87:085cde657901 211
mbed_official 87:085cde657901 212 /**
mbed_official 87:085cde657901 213 * @brief DeInitializes the MSP.
mbed_official 87:085cde657901 214 * @param None
mbed_official 87:085cde657901 215 * @retval None
mbed_official 87:085cde657901 216 */
mbed_official 87:085cde657901 217 __weak void HAL_MspDeInit(void)
mbed_official 87:085cde657901 218 {
mbed_official 87:085cde657901 219 /* NOTE : This function Should not be modified, when the callback is needed,
mbed_official 87:085cde657901 220 the HAL_MspDeInit could be implemented in the user file
mbed_official 87:085cde657901 221 */
mbed_official 87:085cde657901 222 }
mbed_official 87:085cde657901 223
mbed_official 87:085cde657901 224 /**
mbed_official 87:085cde657901 225 * @}
mbed_official 87:085cde657901 226 */
mbed_official 87:085cde657901 227
mbed_official 87:085cde657901 228 /** @defgroup HAL_Group2 HAL Control functions
mbed_official 87:085cde657901 229 * @brief HAL Control functions
mbed_official 87:085cde657901 230 *
mbed_official 87:085cde657901 231 @verbatim
mbed_official 87:085cde657901 232 ===============================================================================
mbed_official 87:085cde657901 233 ##### HAL Control functions #####
mbed_official 87:085cde657901 234 ===============================================================================
mbed_official 87:085cde657901 235 [..] This section provides functions allowing to:
mbed_official 87:085cde657901 236 (+) provide a tick value in millisecond
mbed_official 87:085cde657901 237 (+) provide a blocking delay in millisecond
mbed_official 87:085cde657901 238 (+) Get the HAL API driver version
mbed_official 87:085cde657901 239 (+) Get the device identifier
mbed_official 87:085cde657901 240 (+) Get the device revision identifier
mbed_official 87:085cde657901 241 (+) Enable/Disable Debug module during Sleep mode
mbed_official 87:085cde657901 242 (+) Enable/Disable Debug module during STOP mode
mbed_official 87:085cde657901 243 (+) Enable/Disable Debug module during STANDBY mode
mbed_official 87:085cde657901 244
mbed_official 87:085cde657901 245
mbed_official 87:085cde657901 246 @endverbatim
mbed_official 87:085cde657901 247 * @{
mbed_official 87:085cde657901 248 */
mbed_official 87:085cde657901 249
mbed_official 87:085cde657901 250 /**
mbed_official 106:ced8cbb51063 251 * @brief This function is called from SysTick ISR each 1 millisecond, to increment
mbed_official 106:ced8cbb51063 252 * a global variable "uwTick" used as time base.
mbed_official 87:085cde657901 253 * @param None
mbed_official 87:085cde657901 254 * @retval None
mbed_official 87:085cde657901 255 */
mbed_official 87:085cde657901 256 void HAL_IncTick(void)
mbed_official 87:085cde657901 257 {
mbed_official 87:085cde657901 258 uwTick++;
mbed_official 87:085cde657901 259 }
mbed_official 87:085cde657901 260
mbed_official 87:085cde657901 261 /**
mbed_official 106:ced8cbb51063 262 * @brief Povides a tick value in millisecond.
mbed_official 87:085cde657901 263 * @param Non
mbed_official 87:085cde657901 264 * @retval tick value
mbed_official 87:085cde657901 265 */
mbed_official 87:085cde657901 266 uint32_t HAL_GetTick(void)
mbed_official 87:085cde657901 267 {
mbed_official 87:085cde657901 268 return uwTick;
mbed_official 87:085cde657901 269 }
mbed_official 87:085cde657901 270
mbed_official 87:085cde657901 271 /**
mbed_official 106:ced8cbb51063 272 * @brief Provides a blocking delay in millisecond.
mbed_official 106:ced8cbb51063 273 * @note Care must be taken when using HAL_Delay(), this function provides accurate delay
mbed_official 106:ced8cbb51063 274 * (in milliseconds) based on variable incremented in SysTick ISR. This implies that
mbed_official 106:ced8cbb51063 275 * if HAL_Delay() is called from a peripheral ISR process, then the SysTick interrupt
mbed_official 106:ced8cbb51063 276 * must have higher priority (numerically lower) than the peripheral interrupt.
mbed_official 106:ced8cbb51063 277 * Otherwise the caller ISR process will be blocked. To change the SysTick interrupt
mbed_official 106:ced8cbb51063 278 * priority you have to use HAL_NVIC_SetPriority() function.
mbed_official 87:085cde657901 279 * @param Delay : specifies the delay time length, in milliseconds.
mbed_official 87:085cde657901 280 * @retval None
mbed_official 87:085cde657901 281 */
mbed_official 87:085cde657901 282 void HAL_Delay(__IO uint32_t Delay)
mbed_official 87:085cde657901 283 {
mbed_official 87:085cde657901 284 uint32_t timingdelay;
mbed_official 87:085cde657901 285
mbed_official 87:085cde657901 286 timingdelay = HAL_GetTick() + Delay;
mbed_official 87:085cde657901 287 while(HAL_GetTick() < timingdelay)
mbed_official 87:085cde657901 288 {
mbed_official 87:085cde657901 289 }
mbed_official 87:085cde657901 290 }
mbed_official 87:085cde657901 291
mbed_official 87:085cde657901 292 /**
mbed_official 106:ced8cbb51063 293 * @brief Returns the HAL revision
mbed_official 87:085cde657901 294 * @param None
mbed_official 87:085cde657901 295 * @retval version : 0xXYZR (8bits for each decimal, R for RC)
mbed_official 87:085cde657901 296 */
mbed_official 87:085cde657901 297 uint32_t HAL_GetHalVersion(void)
mbed_official 87:085cde657901 298 {
mbed_official 87:085cde657901 299 return __STM32F4xx_HAL_VERSION;
mbed_official 87:085cde657901 300 }
mbed_official 87:085cde657901 301
mbed_official 87:085cde657901 302 /**
mbed_official 87:085cde657901 303 * @brief Returns the device revision identifier.
mbed_official 87:085cde657901 304 * @param None
mbed_official 87:085cde657901 305 * @retval Device revision identifier
mbed_official 87:085cde657901 306 */
mbed_official 87:085cde657901 307 uint32_t HAL_GetREVID(void)
mbed_official 87:085cde657901 308 {
mbed_official 87:085cde657901 309 return((DBGMCU->IDCODE) >> 16);
mbed_official 87:085cde657901 310 }
mbed_official 87:085cde657901 311
mbed_official 87:085cde657901 312 /**
mbed_official 87:085cde657901 313 * @brief Returns the device identifier.
mbed_official 87:085cde657901 314 * @param None
mbed_official 87:085cde657901 315 * @retval Device identifier
mbed_official 87:085cde657901 316 */
mbed_official 87:085cde657901 317 uint32_t HAL_GetDEVID(void)
mbed_official 87:085cde657901 318 {
mbed_official 87:085cde657901 319 return((DBGMCU->IDCODE) & IDCODE_DEVID_MASK);
mbed_official 87:085cde657901 320 }
mbed_official 87:085cde657901 321
mbed_official 87:085cde657901 322 /**
mbed_official 87:085cde657901 323 * @brief Enable the Debug Module during SLEEP mode
mbed_official 87:085cde657901 324 * @param None
mbed_official 87:085cde657901 325 * @retval None
mbed_official 87:085cde657901 326 */
mbed_official 87:085cde657901 327 void HAL_EnableDBGSleepMode(void)
mbed_official 87:085cde657901 328 {
mbed_official 87:085cde657901 329 SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_SLEEP);
mbed_official 87:085cde657901 330 }
mbed_official 87:085cde657901 331
mbed_official 87:085cde657901 332 /**
mbed_official 87:085cde657901 333 * @brief Disable the Debug Module during SLEEP mode
mbed_official 87:085cde657901 334 * @param None
mbed_official 87:085cde657901 335 * @retval None
mbed_official 87:085cde657901 336 */
mbed_official 87:085cde657901 337 void HAL_DisableDBGSleepMode(void)
mbed_official 87:085cde657901 338 {
mbed_official 87:085cde657901 339 CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_SLEEP);
mbed_official 87:085cde657901 340 }
mbed_official 87:085cde657901 341
mbed_official 87:085cde657901 342 /**
mbed_official 87:085cde657901 343 * @brief Enable the Debug Module during STOP mode
mbed_official 87:085cde657901 344 * @param None
mbed_official 87:085cde657901 345 * @retval None
mbed_official 87:085cde657901 346 */
mbed_official 87:085cde657901 347 void HAL_EnableDBGStopMode(void)
mbed_official 87:085cde657901 348 {
mbed_official 87:085cde657901 349 SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_STOP);
mbed_official 87:085cde657901 350 }
mbed_official 87:085cde657901 351
mbed_official 87:085cde657901 352 /**
mbed_official 87:085cde657901 353 * @brief Disable the Debug Module during STOP mode
mbed_official 87:085cde657901 354 * @param None
mbed_official 87:085cde657901 355 * @retval None
mbed_official 87:085cde657901 356 */
mbed_official 87:085cde657901 357 void HAL_DisableDBGStopMode(void)
mbed_official 87:085cde657901 358 {
mbed_official 87:085cde657901 359 CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_STOP);
mbed_official 87:085cde657901 360 }
mbed_official 87:085cde657901 361
mbed_official 87:085cde657901 362 /**
mbed_official 87:085cde657901 363 * @brief Enable the Debug Module during STANDBY mode
mbed_official 87:085cde657901 364 * @param None
mbed_official 87:085cde657901 365 * @retval None
mbed_official 87:085cde657901 366 */
mbed_official 87:085cde657901 367 void HAL_EnableDBGStandbyMode(void)
mbed_official 87:085cde657901 368 {
mbed_official 87:085cde657901 369 SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_STANDBY);
mbed_official 87:085cde657901 370 }
mbed_official 87:085cde657901 371
mbed_official 87:085cde657901 372 /**
mbed_official 87:085cde657901 373 * @brief Disable the Debug Module during STANDBY mode
mbed_official 87:085cde657901 374 * @param None
mbed_official 87:085cde657901 375 * @retval None
mbed_official 87:085cde657901 376 */
mbed_official 87:085cde657901 377 void HAL_DisableDBGStandbyMode(void)
mbed_official 87:085cde657901 378 {
mbed_official 87:085cde657901 379 CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_STANDBY);
mbed_official 87:085cde657901 380 }
mbed_official 87:085cde657901 381
mbed_official 87:085cde657901 382 /**
mbed_official 87:085cde657901 383 * @brief Enables the I/O Compensation Cell.
mbed_official 87:085cde657901 384 * @note The I/O compensation cell can be used only when the device supply
mbed_official 87:085cde657901 385 * voltage ranges from 2.4 to 3.6 V.
mbed_official 87:085cde657901 386 * @retval None
mbed_official 87:085cde657901 387 */
mbed_official 87:085cde657901 388 void HAL_EnableCompensationCell(void)
mbed_official 87:085cde657901 389 {
mbed_official 87:085cde657901 390 *(__IO uint32_t *)CMPCR_CMP_PD_BB = (uint32_t)ENABLE;
mbed_official 87:085cde657901 391 }
mbed_official 87:085cde657901 392
mbed_official 87:085cde657901 393 /**
mbed_official 87:085cde657901 394 * @brief Power-down the I/O Compensation Cell.
mbed_official 87:085cde657901 395 * @note The I/O compensation cell can be used only when the device supply
mbed_official 87:085cde657901 396 * voltage ranges from 2.4 to 3.6 V.
mbed_official 87:085cde657901 397 * @retval None
mbed_official 87:085cde657901 398 */
mbed_official 87:085cde657901 399 void HAL_DisableCompensationCell(void)
mbed_official 87:085cde657901 400 {
mbed_official 87:085cde657901 401 *(__IO uint32_t *)CMPCR_CMP_PD_BB = (uint32_t)DISABLE;
mbed_official 87:085cde657901 402 }
mbed_official 87:085cde657901 403
mbed_official 87:085cde657901 404 #if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx)|| defined(STM32F439xx)
mbed_official 87:085cde657901 405 /**
mbed_official 87:085cde657901 406 * @brief Enables the Internal FLASH Bank Swapping.
mbed_official 87:085cde657901 407 *
mbed_official 87:085cde657901 408 * @note This function can be used only for STM32F42xxx/43xxx devices.
mbed_official 87:085cde657901 409 *
mbed_official 87:085cde657901 410 * @note Flash Bank2 mapped at 0x08000000 (and aliased @0x00000000)
mbed_official 87:085cde657901 411 * and Flash Bank1 mapped at 0x08100000 (and aliased at 0x00100000)
mbed_official 87:085cde657901 412 *
mbed_official 87:085cde657901 413 * @retval None
mbed_official 87:085cde657901 414 */
mbed_official 87:085cde657901 415 void HAL_EnableMemorySwappingBank(void)
mbed_official 87:085cde657901 416 {
mbed_official 87:085cde657901 417 *(__IO uint32_t *)UFB_MODE_BB = (uint32_t)ENABLE;
mbed_official 87:085cde657901 418 }
mbed_official 87:085cde657901 419
mbed_official 87:085cde657901 420 /**
mbed_official 87:085cde657901 421 * @brief Disables the Internal FLASH Bank Swapping.
mbed_official 87:085cde657901 422 *
mbed_official 87:085cde657901 423 * @note This function can be used only for STM32F42xxx/43xxx devices.
mbed_official 87:085cde657901 424 *
mbed_official 87:085cde657901 425 * @note The default state : Flash Bank1 mapped at 0x08000000 (and aliased @0x0000 0000)
mbed_official 87:085cde657901 426 * and Flash Bank2 mapped at 0x08100000 (and aliased at 0x00100000)
mbed_official 87:085cde657901 427 *
mbed_official 87:085cde657901 428 * @retval None
mbed_official 87:085cde657901 429 */
mbed_official 87:085cde657901 430 void HAL_DisableMemorySwappingBank(void)
mbed_official 87:085cde657901 431 {
mbed_official 87:085cde657901 432
mbed_official 87:085cde657901 433 *(__IO uint32_t *)UFB_MODE_BB = (uint32_t)DISABLE;
mbed_official 87:085cde657901 434 }
mbed_official 87:085cde657901 435 #endif /* STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx */
mbed_official 87:085cde657901 436
mbed_official 87:085cde657901 437 /**
mbed_official 87:085cde657901 438 * @}
mbed_official 87:085cde657901 439 */
mbed_official 87:085cde657901 440
mbed_official 87:085cde657901 441 /**
mbed_official 87:085cde657901 442 * @}
mbed_official 87:085cde657901 443 */
mbed_official 87:085cde657901 444
mbed_official 87:085cde657901 445 /**
mbed_official 87:085cde657901 446 * @}
mbed_official 87:085cde657901 447 */
mbed_official 87:085cde657901 448
mbed_official 87:085cde657901 449 /**
mbed_official 87:085cde657901 450 * @}
mbed_official 87:085cde657901 451 */
mbed_official 87:085cde657901 452
mbed_official 87:085cde657901 453 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/