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:
Tue Nov 04 09:30:07 2014 +0000
Revision:
384:ef87175507f1
Parent:
targets/cmsis/TARGET_STM/TARGET_STM32F407VG/stm32f4xx.h@296:ec1b66a3d094
Child:
532:fe11edbda85c
Synchronized with git revision 8f7778d898867246da01cfccb39396c2e419c1f6

Full URL: https://github.com/mbedmicro/mbed/commit/8f7778d898867246da01cfccb39396c2e419c1f6/

Targets: Nucleo F4xx - Reorder f4xx structure

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 133:d4dda5c437f0 1 /**
mbed_official 133:d4dda5c437f0 2 ******************************************************************************
mbed_official 133:d4dda5c437f0 3 * @file stm32f4xx.h
mbed_official 133:d4dda5c437f0 4 * @author MCD Application Team
mbed_official 242:7074e42da0b2 5 * @version V2.1.0RC2
mbed_official 242:7074e42da0b2 6 * @date 14-May-2014
mbed_official 133:d4dda5c437f0 7 * @brief CMSIS STM32F4xx Device Peripheral Access Layer Header File.
mbed_official 133:d4dda5c437f0 8 *
mbed_official 133:d4dda5c437f0 9 * The file is the unique include file that the application programmer
mbed_official 133:d4dda5c437f0 10 * is using in the C source code, usually in main.c. This file contains:
mbed_official 133:d4dda5c437f0 11 * - Configuration section that allows to select:
mbed_official 133:d4dda5c437f0 12 * - The STM32F4xx device used in the target application
mbed_official 133:d4dda5c437f0 13 * - To use or not the peripheral’s drivers in application code(i.e.
mbed_official 133:d4dda5c437f0 14 * code will be based on direct access to peripheral’s registers
mbed_official 133:d4dda5c437f0 15 * rather than drivers API), this option is controlled by
mbed_official 133:d4dda5c437f0 16 * "#define USE_HAL_DRIVER"
mbed_official 133:d4dda5c437f0 17 *
mbed_official 133:d4dda5c437f0 18 ******************************************************************************
mbed_official 133:d4dda5c437f0 19 * @attention
mbed_official 133:d4dda5c437f0 20 *
mbed_official 133:d4dda5c437f0 21 * <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2>
mbed_official 133:d4dda5c437f0 22 *
mbed_official 133:d4dda5c437f0 23 * Redistribution and use in source and binary forms, with or without modification,
mbed_official 133:d4dda5c437f0 24 * are permitted provided that the following conditions are met:
mbed_official 133:d4dda5c437f0 25 * 1. Redistributions of source code must retain the above copyright notice,
mbed_official 133:d4dda5c437f0 26 * this list of conditions and the following disclaimer.
mbed_official 133:d4dda5c437f0 27 * 2. Redistributions in binary form must reproduce the above copyright notice,
mbed_official 133:d4dda5c437f0 28 * this list of conditions and the following disclaimer in the documentation
mbed_official 133:d4dda5c437f0 29 * and/or other materials provided with the distribution.
mbed_official 133:d4dda5c437f0 30 * 3. Neither the name of STMicroelectronics nor the names of its contributors
mbed_official 133:d4dda5c437f0 31 * may be used to endorse or promote products derived from this software
mbed_official 133:d4dda5c437f0 32 * without specific prior written permission.
mbed_official 133:d4dda5c437f0 33 *
mbed_official 133:d4dda5c437f0 34 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
mbed_official 133:d4dda5c437f0 35 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
mbed_official 133:d4dda5c437f0 36 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
mbed_official 133:d4dda5c437f0 37 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
mbed_official 133:d4dda5c437f0 38 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
mbed_official 133:d4dda5c437f0 39 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
mbed_official 133:d4dda5c437f0 40 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
mbed_official 133:d4dda5c437f0 41 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
mbed_official 133:d4dda5c437f0 42 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
mbed_official 133:d4dda5c437f0 43 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
mbed_official 133:d4dda5c437f0 44 *
mbed_official 133:d4dda5c437f0 45 ******************************************************************************
mbed_official 133:d4dda5c437f0 46 */
mbed_official 133:d4dda5c437f0 47
mbed_official 133:d4dda5c437f0 48 /** @addtogroup CMSIS
mbed_official 133:d4dda5c437f0 49 * @{
mbed_official 133:d4dda5c437f0 50 */
mbed_official 133:d4dda5c437f0 51
mbed_official 133:d4dda5c437f0 52 /** @addtogroup stm32f4xx
mbed_official 133:d4dda5c437f0 53 * @{
mbed_official 133:d4dda5c437f0 54 */
mbed_official 133:d4dda5c437f0 55
mbed_official 133:d4dda5c437f0 56 #ifndef __STM32F4xx_H
mbed_official 133:d4dda5c437f0 57 #define __STM32F4xx_H
mbed_official 133:d4dda5c437f0 58
mbed_official 133:d4dda5c437f0 59 #ifdef __cplusplus
mbed_official 133:d4dda5c437f0 60 extern "C" {
mbed_official 133:d4dda5c437f0 61 #endif /* __cplusplus */
mbed_official 133:d4dda5c437f0 62
mbed_official 133:d4dda5c437f0 63 /** @addtogroup Library_configuration_section
mbed_official 133:d4dda5c437f0 64 * @{
mbed_official 133:d4dda5c437f0 65 */
mbed_official 133:d4dda5c437f0 66
mbed_official 133:d4dda5c437f0 67 /* Uncomment the line below according to the target STM32 device used in your
mbed_official 133:d4dda5c437f0 68 application
mbed_official 133:d4dda5c437f0 69 */
mbed_official 133:d4dda5c437f0 70
mbed_official 133:d4dda5c437f0 71 #if !defined (STM32F405xx) && !defined (STM32F415xx) && !defined (STM32F407xx) && !defined (STM32F417xx) && \
mbed_official 133:d4dda5c437f0 72 !defined (STM32F427xx) && !defined (STM32F437xx) && !defined (STM32F429xx) && !defined (STM32F439xx) && \
mbed_official 242:7074e42da0b2 73 !defined (STM32F401xC) && !defined (STM32F401xE) && !defined (STM32F411xE)
mbed_official 133:d4dda5c437f0 74 /* #define STM32F405xx */ /*!< STM32F405RG, STM32F405VG and STM32F405ZG Devices */
mbed_official 133:d4dda5c437f0 75 /* #define STM32F415xx */ /*!< STM32F415RG, STM32F415VG and STM32F415ZG Devices */
mbed_official 133:d4dda5c437f0 76 #define STM32F407xx /*!< STM32F407VG, STM32F407VE, STM32F407ZG, STM32F407ZE, STM32F407IG and STM32F407IE Devices */
mbed_official 133:d4dda5c437f0 77 /* #define STM32F417xx */ /*!< STM32F417VG, STM32F417VE, STM32F417ZG, STM32F417ZE, STM32F417IG and STM32F417IE Devices */
mbed_official 133:d4dda5c437f0 78 /* #define STM32F427xx */ /*!< STM32F427VG, STM32F427VI, STM32F427ZG, STM32F427ZI, STM32F427IG and STM32F427II Devices */
mbed_official 133:d4dda5c437f0 79 /* #define STM32F437xx */ /*!< STM32F437VG, STM32F437VI, STM32F437ZG, STM32F437ZI, STM32F437IG and STM32F437II Devices */
mbed_official 133:d4dda5c437f0 80 /* #define STM32F429xx */ /*!< STM32F429VG, STM32F429VI, STM32F429ZG, STM32F429ZI, STM32F429BG, STM32F429BI, STM32F429NG,
mbed_official 133:d4dda5c437f0 81 STM32F439NI, STM32F429IG and STM32F429II Devices */
mbed_official 133:d4dda5c437f0 82 /* #define STM32F439xx */ /*!< STM32F439VG, STM32F439VI, STM32F439ZG, STM32F439ZI, STM32F439BG, STM32F439BI, STM32F439NG,
mbed_official 133:d4dda5c437f0 83 STM32F439NI, STM32F439IG and STM32F439II Devices */
mbed_official 133:d4dda5c437f0 84 /* #define STM32F401xC */ /*!< STM32F401CB, STM32F401CC, STM32F401RB, STM32F401RC, STM32F401VB and STM32F401VC Devices */
mbed_official 242:7074e42da0b2 85 /* #define STM32F401xE */ /*!< STM32F401CD, STM32F401RD, STM32F401VD, STM32F401CE, STM32F401RE and STM32F401VE Devices */
mbed_official 242:7074e42da0b2 86 /* #define STM32F411xE */ /*!< STM32F411CD, STM32F411RD, STM32F411VD, STM32F411CE, STM32F411RE and STM32F411VE Devices */
mbed_official 133:d4dda5c437f0 87 #endif
mbed_official 133:d4dda5c437f0 88
mbed_official 133:d4dda5c437f0 89 /* Tip: To avoid modifying this file each time you need to switch between these
mbed_official 133:d4dda5c437f0 90 devices, you can define the device in your toolchain compiler preprocessor.
mbed_official 133:d4dda5c437f0 91 */
mbed_official 133:d4dda5c437f0 92 #if !defined (USE_HAL_DRIVER)
mbed_official 133:d4dda5c437f0 93 /**
mbed_official 133:d4dda5c437f0 94 * @brief Comment the line below if you will not use the peripherals drivers.
mbed_official 133:d4dda5c437f0 95 In this case, these drivers will not be included and the application code will
mbed_official 133:d4dda5c437f0 96 be based on direct access to peripherals registers
mbed_official 133:d4dda5c437f0 97 */
mbed_official 133:d4dda5c437f0 98 #define USE_HAL_DRIVER
mbed_official 133:d4dda5c437f0 99 #endif /* USE_HAL_DRIVER */
mbed_official 133:d4dda5c437f0 100
mbed_official 133:d4dda5c437f0 101 /**
mbed_official 242:7074e42da0b2 102 * @brief CMSIS Device version number V2.1.0RC2
mbed_official 133:d4dda5c437f0 103 */
mbed_official 133:d4dda5c437f0 104 #define __STM32F4xx_CMSIS_DEVICE_VERSION_MAIN (0x02) /*!< [31:24] main version */
mbed_official 242:7074e42da0b2 105 #define __STM32F4xx_CMSIS_DEVICE_VERSION_SUB1 (0x01) /*!< [23:16] sub1 version */
mbed_official 133:d4dda5c437f0 106 #define __STM32F4xx_CMSIS_DEVICE_VERSION_SUB2 (0x00) /*!< [15:8] sub2 version */
mbed_official 242:7074e42da0b2 107 #define __STM32F4xx_CMSIS_DEVICE_VERSION_RC (0x02) /*!< [7:0] release candidate */
mbed_official 133:d4dda5c437f0 108 #define __STM32F4xx_CMSIS_DEVICE_VERSION ((__CMSIS_DEVICE_VERSION_MAIN << 24)\
mbed_official 133:d4dda5c437f0 109 |(__CMSIS_DEVICE_HAL_VERSION_SUB1 << 16)\
mbed_official 133:d4dda5c437f0 110 |(__CMSIS_DEVICE_HAL_VERSION_SUB2 << 8 )\
mbed_official 133:d4dda5c437f0 111 |(__CMSIS_DEVICE_HAL_VERSION_RC))
mbed_official 133:d4dda5c437f0 112
mbed_official 133:d4dda5c437f0 113 /**
mbed_official 133:d4dda5c437f0 114 * @}
mbed_official 133:d4dda5c437f0 115 */
mbed_official 133:d4dda5c437f0 116
mbed_official 133:d4dda5c437f0 117 /** @addtogroup Device_Included
mbed_official 133:d4dda5c437f0 118 * @{
mbed_official 133:d4dda5c437f0 119 */
mbed_official 133:d4dda5c437f0 120
mbed_official 133:d4dda5c437f0 121 #if defined(STM32F405xx)
mbed_official 133:d4dda5c437f0 122 #include "stm32f405xx.h"
mbed_official 133:d4dda5c437f0 123 #elif defined(STM32F415xx)
mbed_official 133:d4dda5c437f0 124 #include "stm32f415xx.h"
mbed_official 133:d4dda5c437f0 125 #elif defined(STM32F407xx)
mbed_official 133:d4dda5c437f0 126 #include "stm32f407xx.h"
mbed_official 133:d4dda5c437f0 127 #elif defined(STM32F417xx)
mbed_official 133:d4dda5c437f0 128 #include "stm32f417xx.h"
mbed_official 133:d4dda5c437f0 129 #elif defined(STM32F427xx)
mbed_official 133:d4dda5c437f0 130 #include "stm32f427xx.h"
mbed_official 133:d4dda5c437f0 131 #elif defined(STM32F437xx)
mbed_official 133:d4dda5c437f0 132 #include "stm32f437xx.h"
mbed_official 133:d4dda5c437f0 133 #elif defined(STM32F429xx)
mbed_official 133:d4dda5c437f0 134 #include "stm32f429xx.h"
mbed_official 133:d4dda5c437f0 135 #elif defined(STM32F439xx)
mbed_official 133:d4dda5c437f0 136 #include "stm32f439xx.h"
mbed_official 133:d4dda5c437f0 137 #elif defined(STM32F401xC)
mbed_official 133:d4dda5c437f0 138 #include "stm32f401xc.h"
mbed_official 133:d4dda5c437f0 139 #elif defined(STM32F401xE)
mbed_official 133:d4dda5c437f0 140 #include "stm32f401xe.h"
mbed_official 242:7074e42da0b2 141 #elif defined(STM32F411xE)
mbed_official 242:7074e42da0b2 142 #include "stm32f411xe.h"
mbed_official 133:d4dda5c437f0 143 #else
mbed_official 133:d4dda5c437f0 144 #error "Please select first the target STM32F4xx device used in your application (in stm32f4xx.h file)"
mbed_official 133:d4dda5c437f0 145 #endif
mbed_official 133:d4dda5c437f0 146
mbed_official 133:d4dda5c437f0 147 /**
mbed_official 133:d4dda5c437f0 148 * @}
mbed_official 133:d4dda5c437f0 149 */
mbed_official 133:d4dda5c437f0 150
mbed_official 133:d4dda5c437f0 151 /** @addtogroup Exported_types
mbed_official 133:d4dda5c437f0 152 * @{
mbed_official 133:d4dda5c437f0 153 */
mbed_official 133:d4dda5c437f0 154 typedef enum
mbed_official 133:d4dda5c437f0 155 {
mbed_official 133:d4dda5c437f0 156 RESET = 0,
mbed_official 133:d4dda5c437f0 157 SET = !RESET
mbed_official 133:d4dda5c437f0 158 } FlagStatus, ITStatus;
mbed_official 133:d4dda5c437f0 159
mbed_official 133:d4dda5c437f0 160 typedef enum
mbed_official 133:d4dda5c437f0 161 {
mbed_official 133:d4dda5c437f0 162 DISABLE = 0,
mbed_official 133:d4dda5c437f0 163 ENABLE = !DISABLE
mbed_official 133:d4dda5c437f0 164 } FunctionalState;
mbed_official 133:d4dda5c437f0 165 #define IS_FUNCTIONAL_STATE(STATE) (((STATE) == DISABLE) || ((STATE) == ENABLE))
mbed_official 133:d4dda5c437f0 166
mbed_official 133:d4dda5c437f0 167 typedef enum
mbed_official 133:d4dda5c437f0 168 {
mbed_official 133:d4dda5c437f0 169 ERROR = 0,
mbed_official 133:d4dda5c437f0 170 SUCCESS = !ERROR
mbed_official 133:d4dda5c437f0 171 } ErrorStatus;
mbed_official 133:d4dda5c437f0 172
mbed_official 133:d4dda5c437f0 173 /**
mbed_official 133:d4dda5c437f0 174 * @}
mbed_official 133:d4dda5c437f0 175 */
mbed_official 133:d4dda5c437f0 176
mbed_official 133:d4dda5c437f0 177
mbed_official 133:d4dda5c437f0 178 /** @addtogroup Exported_macro
mbed_official 133:d4dda5c437f0 179 * @{
mbed_official 133:d4dda5c437f0 180 */
mbed_official 133:d4dda5c437f0 181 #define SET_BIT(REG, BIT) ((REG) |= (BIT))
mbed_official 133:d4dda5c437f0 182
mbed_official 133:d4dda5c437f0 183 #define CLEAR_BIT(REG, BIT) ((REG) &= ~(BIT))
mbed_official 133:d4dda5c437f0 184
mbed_official 133:d4dda5c437f0 185 #define READ_BIT(REG, BIT) ((REG) & (BIT))
mbed_official 133:d4dda5c437f0 186
mbed_official 133:d4dda5c437f0 187 #define CLEAR_REG(REG) ((REG) = (0x0))
mbed_official 133:d4dda5c437f0 188
mbed_official 133:d4dda5c437f0 189 #define WRITE_REG(REG, VAL) ((REG) = (VAL))
mbed_official 133:d4dda5c437f0 190
mbed_official 133:d4dda5c437f0 191 #define READ_REG(REG) ((REG))
mbed_official 133:d4dda5c437f0 192
mbed_official 133:d4dda5c437f0 193 #define MODIFY_REG(REG, CLEARMASK, SETMASK) WRITE_REG((REG), (((READ_REG(REG)) & (~(CLEARMASK))) | (SETMASK)))
mbed_official 133:d4dda5c437f0 194
mbed_official 133:d4dda5c437f0 195 #define POSITION_VAL(VAL) (__CLZ(__RBIT(VAL)))
mbed_official 133:d4dda5c437f0 196
mbed_official 133:d4dda5c437f0 197
mbed_official 133:d4dda5c437f0 198 /**
mbed_official 133:d4dda5c437f0 199 * @}
mbed_official 133:d4dda5c437f0 200 */
mbed_official 133:d4dda5c437f0 201
mbed_official 242:7074e42da0b2 202 #if defined (USE_HAL_DRIVER)
mbed_official 242:7074e42da0b2 203 #include "stm32f4xx_hal.h"
mbed_official 242:7074e42da0b2 204 #endif /* USE_HAL_DRIVER */
mbed_official 133:d4dda5c437f0 205
mbed_official 133:d4dda5c437f0 206 #ifdef __cplusplus
mbed_official 133:d4dda5c437f0 207 }
mbed_official 133:d4dda5c437f0 208 #endif /* __cplusplus */
mbed_official 133:d4dda5c437f0 209
mbed_official 133:d4dda5c437f0 210 #endif /* __STM32F4xx_H */
mbed_official 133:d4dda5c437f0 211 /**
mbed_official 133:d4dda5c437f0 212 * @}
mbed_official 133:d4dda5c437f0 213 */
mbed_official 133:d4dda5c437f0 214
mbed_official 133:d4dda5c437f0 215 /**
mbed_official 133:d4dda5c437f0 216 * @}
mbed_official 133:d4dda5c437f0 217 */
mbed_official 133:d4dda5c437f0 218
mbed_official 133:d4dda5c437f0 219
mbed_official 133:d4dda5c437f0 220
mbed_official 133:d4dda5c437f0 221
mbed_official 133:d4dda5c437f0 222 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/