mbed official / mbed-dev

Dependents:   Nucleo_Hello_Encoder BLE_iBeaconScan AM1805_DEMO DISCO-F429ZI_ExportTemplate1 ... more

Committer:
<>
Date:
Fri Oct 28 11:17:30 2016 +0100
Revision:
149:156823d33999
Parent:
targets/cmsis/TARGET_STM/TARGET_STM32F3/TARGET_NUCLEO_F303K8/stm32f3xx.h@144:ef7eb2e8f9f7
Child:
157:ff67d9f36b67
This updates the lib to the mbed lib v128

NOTE: This release includes a restructuring of the file and directory locations and thus some
include paths in your code may need updating accordingly.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 7:cf567a118ec7 1 /**
mbed_official 7:cf567a118ec7 2 ******************************************************************************
mbed_official 7:cf567a118ec7 3 * @file stm32f3xx.h
mbed_official 7:cf567a118ec7 4 * @author MCD Application Team
<> 144:ef7eb2e8f9f7 5 * @version V2.3.0
<> 144:ef7eb2e8f9f7 6 * @date 29-April-2015
mbed_official 7:cf567a118ec7 7 * @brief CMSIS STM32F3xx Device Peripheral Access Layer Header File.
mbed_official 7:cf567a118ec7 8 *
mbed_official 7:cf567a118ec7 9 * The file is the unique include file that the application programmer
mbed_official 7:cf567a118ec7 10 * is using in the C source code, usually in main.c. This file contains:
mbed_official 7:cf567a118ec7 11 * - Configuration section that allows to select:
mbed_official 7:cf567a118ec7 12 * - The STM32F3xx device used in the target application
mbed_official 7:cf567a118ec7 13 * - To use or not the peripheral’s drivers in application code(i.e.
mbed_official 7:cf567a118ec7 14 * code will be based on direct access to peripheral’s registers
mbed_official 7:cf567a118ec7 15 * rather than drivers API), this option is controlled by
mbed_official 7:cf567a118ec7 16 * "#define USE_HAL_DRIVER"
mbed_official 7:cf567a118ec7 17 *
mbed_official 7:cf567a118ec7 18 ******************************************************************************
mbed_official 7:cf567a118ec7 19 * @attention
mbed_official 7:cf567a118ec7 20 *
<> 144:ef7eb2e8f9f7 21 * <h2><center>&copy; COPYRIGHT(c) 2016 STMicroelectronics</center></h2>
mbed_official 7:cf567a118ec7 22 *
mbed_official 7:cf567a118ec7 23 * Redistribution and use in source and binary forms, with or without modification,
mbed_official 7:cf567a118ec7 24 * are permitted provided that the following conditions are met:
mbed_official 7:cf567a118ec7 25 * 1. Redistributions of source code must retain the above copyright notice,
mbed_official 7:cf567a118ec7 26 * this list of conditions and the following disclaimer.
mbed_official 7:cf567a118ec7 27 * 2. Redistributions in binary form must reproduce the above copyright notice,
mbed_official 7:cf567a118ec7 28 * this list of conditions and the following disclaimer in the documentation
mbed_official 7:cf567a118ec7 29 * and/or other materials provided with the distribution.
mbed_official 7:cf567a118ec7 30 * 3. Neither the name of STMicroelectronics nor the names of its contributors
mbed_official 7:cf567a118ec7 31 * may be used to endorse or promote products derived from this software
mbed_official 7:cf567a118ec7 32 * without specific prior written permission.
mbed_official 7:cf567a118ec7 33 *
mbed_official 7:cf567a118ec7 34 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
mbed_official 7:cf567a118ec7 35 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
mbed_official 7:cf567a118ec7 36 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
mbed_official 7:cf567a118ec7 37 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
mbed_official 7:cf567a118ec7 38 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
mbed_official 7:cf567a118ec7 39 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
mbed_official 7:cf567a118ec7 40 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
mbed_official 7:cf567a118ec7 41 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
mbed_official 7:cf567a118ec7 42 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
mbed_official 7:cf567a118ec7 43 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
mbed_official 7:cf567a118ec7 44 *
mbed_official 7:cf567a118ec7 45 ******************************************************************************
mbed_official 7:cf567a118ec7 46 */
mbed_official 7:cf567a118ec7 47
mbed_official 7:cf567a118ec7 48 /** @addtogroup CMSIS
mbed_official 7:cf567a118ec7 49 * @{
mbed_official 7:cf567a118ec7 50 */
mbed_official 7:cf567a118ec7 51
mbed_official 7:cf567a118ec7 52 /** @addtogroup stm32f3xx
mbed_official 7:cf567a118ec7 53 * @{
mbed_official 7:cf567a118ec7 54 */
mbed_official 7:cf567a118ec7 55
mbed_official 7:cf567a118ec7 56 #ifndef __STM32F3xx_H
mbed_official 7:cf567a118ec7 57 #define __STM32F3xx_H
mbed_official 7:cf567a118ec7 58
mbed_official 7:cf567a118ec7 59 #ifdef __cplusplus
mbed_official 7:cf567a118ec7 60 extern "C" {
mbed_official 7:cf567a118ec7 61 #endif /* __cplusplus */
mbed_official 7:cf567a118ec7 62
mbed_official 7:cf567a118ec7 63 /** @addtogroup Library_configuration_section
mbed_official 7:cf567a118ec7 64 * @{
mbed_official 7:cf567a118ec7 65 */
mbed_official 7:cf567a118ec7 66
<> 144:ef7eb2e8f9f7 67 /**
<> 144:ef7eb2e8f9f7 68 * @brief STM32 Family
<> 144:ef7eb2e8f9f7 69 */
<> 144:ef7eb2e8f9f7 70 #if !defined (STM32F3)
<> 144:ef7eb2e8f9f7 71 #define STM32F3
<> 144:ef7eb2e8f9f7 72 #endif /* STM32F3 */
<> 144:ef7eb2e8f9f7 73
mbed_official 7:cf567a118ec7 74 /* Uncomment the line below according to the target STM32 device used in your
mbed_official 7:cf567a118ec7 75 application
mbed_official 7:cf567a118ec7 76 */
mbed_official 7:cf567a118ec7 77
mbed_official 7:cf567a118ec7 78 #if !defined (STM32F301x8) && !defined (STM32F302x8) && !defined (STM32F318xx) && \
mbed_official 7:cf567a118ec7 79 !defined (STM32F302xC) && !defined (STM32F303xC) && !defined (STM32F358xx) && \
mbed_official 7:cf567a118ec7 80 !defined (STM32F303x8) && !defined (STM32F334x8) && !defined (STM32F328xx) && \
mbed_official 7:cf567a118ec7 81 !defined (STM32F302xE) && !defined (STM32F303xE) && !defined (STM32F398xx) && \
mbed_official 7:cf567a118ec7 82 !defined (STM32F373xC) && !defined (STM32F378xx)
mbed_official 7:cf567a118ec7 83
mbed_official 7:cf567a118ec7 84 /* #define STM32F301x8 */ /*!< STM32F301K6, STM32F301K8, STM32F301C6, STM32F301C8,
mbed_official 7:cf567a118ec7 85 STM32F301R6 and STM32F301R8 Devices */
mbed_official 7:cf567a118ec7 86 /* #define STM32F302x8 */ /*!< STM32F302K6, STM32F302K8, STM32F302C6, STM32F302C8,
mbed_official 7:cf567a118ec7 87 STM32F302R6 and STM32F302R8 Devices */
<> 144:ef7eb2e8f9f7 88 /* #define STM32F302xC */ /*!< STM32F302CB, STM32F302CC, STM32F302RB, STM32F302RC,
<> 144:ef7eb2e8f9f7 89 STM32F302VB and STM32F302VC Devices */
<> 144:ef7eb2e8f9f7 90 /* #define STM32F302xE */ /*!< STM32F302RE, STM32F302VE, STM32F302ZE, STM32F302RD,
<> 144:ef7eb2e8f9f7 91 STM32F302VD and STM32F302ZD Devices */
mbed_official 7:cf567a118ec7 92 #define STM32F303x8 /*!< STM32F303K6, STM32F303K8, STM32F303C6, STM32F303C8,
mbed_official 7:cf567a118ec7 93 STM32F303R6 and STM32F303R8 Devices */
<> 144:ef7eb2e8f9f7 94 /* #define STM32F303xC */ /*!< STM32F303CB, STM32F303CC, STM32F303RB, STM32F303RC,
<> 144:ef7eb2e8f9f7 95 STM32F303VB and STM32F303VC Devices */
<> 144:ef7eb2e8f9f7 96 /* #define STM32F303xE */ /*!< STM32F303RE, STM32F303VE, STM32F303ZE, STM32F303RD,
<> 144:ef7eb2e8f9f7 97 STM32F303VD and STM32F303ZD Devices */
<> 144:ef7eb2e8f9f7 98 /* #define STM32F373xC */ /*!< STM32F373C8, STM32F373CB, STM32F373CC,
<> 144:ef7eb2e8f9f7 99 STM32F373R8, STM32F373RB, STM32F373RC,
mbed_official 7:cf567a118ec7 100 STM32F373V8, STM32F373VB and STM32F373VC Devices */
<> 144:ef7eb2e8f9f7 101 /* #define STM32F334x8 */ /*!< STM32F334K4, STM32F334K6, STM32F334K8,
<> 144:ef7eb2e8f9f7 102 STM32F334C4, STM32F334C6, STM32F334C8,
<> 144:ef7eb2e8f9f7 103 STM32F334R4, STM32F334R6 and STM32F334R8 Devices */
mbed_official 7:cf567a118ec7 104 /* #define STM32F318xx */ /*!< STM32F318K8, STM32F318C8: STM32F301x8 with regulator off: STM32F318xx Devices */
mbed_official 7:cf567a118ec7 105 /* #define STM32F328xx */ /*!< STM32F328C8, STM32F328R8: STM32F334x8 with regulator off: STM32F328xx Devices */
mbed_official 7:cf567a118ec7 106 /* #define STM32F358xx */ /*!< STM32F358CC, STM32F358RC, STM32F358VC: STM32F303xC with regulator off: STM32F358xx Devices */
mbed_official 7:cf567a118ec7 107 /* #define STM32F378xx */ /*!< STM32F378CC, STM32F378RC, STM32F378VC: STM32F373xC with regulator off: STM32F378xx Devices */
<> 144:ef7eb2e8f9f7 108 /* #define STM32F398xx */ /*!< STM32F398VE: STM32F303xE with regulator off: STM32F398xx Devices */
mbed_official 7:cf567a118ec7 109 #endif
mbed_official 7:cf567a118ec7 110
mbed_official 7:cf567a118ec7 111 /* Tip: To avoid modifying this file each time you need to switch between these
mbed_official 7:cf567a118ec7 112 devices, you can define the device in your toolchain compiler preprocessor.
mbed_official 7:cf567a118ec7 113 */
mbed_official 7:cf567a118ec7 114 #if !defined (USE_HAL_DRIVER)
mbed_official 7:cf567a118ec7 115 /**
mbed_official 7:cf567a118ec7 116 * @brief Comment the line below if you will not use the peripherals drivers.
mbed_official 7:cf567a118ec7 117 In this case, these drivers will not be included and the application code will
mbed_official 7:cf567a118ec7 118 be based on direct access to peripherals registers
mbed_official 7:cf567a118ec7 119 */
mbed_official 7:cf567a118ec7 120 #define USE_HAL_DRIVER
mbed_official 7:cf567a118ec7 121 #endif /* USE_HAL_DRIVER */
mbed_official 7:cf567a118ec7 122
mbed_official 7:cf567a118ec7 123 /**
<> 144:ef7eb2e8f9f7 124 * @brief CMSIS Device version number V2.3.0
mbed_official 7:cf567a118ec7 125 */
<> 144:ef7eb2e8f9f7 126 #define __STM32F3_CMSIS_VERSION_MAIN (0x02) /*!< [31:24] main version */
<> 144:ef7eb2e8f9f7 127 #define __STM32F3_CMSIS_VERSION_SUB1 (0x03) /*!< [23:16] sub1 version */
<> 144:ef7eb2e8f9f7 128 #define __STM32F3_CMSIS_VERSION_SUB2 (0x00) /*!< [15:8] sub2 version */
<> 144:ef7eb2e8f9f7 129 #define __STM32F3_CMSIS_VERSION_RC (0x00) /*!< [7:0] release candidate */
<> 144:ef7eb2e8f9f7 130 #define __STM32F3_CMSIS_VERSION ((__STM32F3_CMSIS_VERSION_MAIN << 24)\
<> 144:ef7eb2e8f9f7 131 |(__STM32F3_CMSIS_VERSION_SUB1 << 16)\
<> 144:ef7eb2e8f9f7 132 |(__STM32F3_CMSIS_VERSION_SUB2 << 8 )\
<> 144:ef7eb2e8f9f7 133 |(__STM32F3_CMSIS_VERSION_RC))
<> 144:ef7eb2e8f9f7 134
mbed_official 7:cf567a118ec7 135 /**
mbed_official 7:cf567a118ec7 136 * @}
mbed_official 7:cf567a118ec7 137 */
mbed_official 7:cf567a118ec7 138
mbed_official 7:cf567a118ec7 139 /** @addtogroup Device_Included
mbed_official 7:cf567a118ec7 140 * @{
mbed_official 7:cf567a118ec7 141 */
mbed_official 7:cf567a118ec7 142
mbed_official 7:cf567a118ec7 143 #if defined(STM32F301x8)
mbed_official 7:cf567a118ec7 144 #include "stm32f301x8.h"
mbed_official 7:cf567a118ec7 145 #elif defined(STM32F302x8)
mbed_official 7:cf567a118ec7 146 #include "stm32f302x8.h"
mbed_official 7:cf567a118ec7 147 #elif defined(STM32F302xC)
mbed_official 7:cf567a118ec7 148 #include "stm32f302xc.h"
mbed_official 7:cf567a118ec7 149 #elif defined(STM32F302xE)
mbed_official 7:cf567a118ec7 150 #include "stm32f302xe.h"
mbed_official 7:cf567a118ec7 151 #elif defined(STM32F303x8)
mbed_official 7:cf567a118ec7 152 #include "stm32f303x8.h"
mbed_official 7:cf567a118ec7 153 #elif defined(STM32F303xC)
mbed_official 7:cf567a118ec7 154 #include "stm32f303xc.h"
mbed_official 7:cf567a118ec7 155 #elif defined(STM32F303xE)
mbed_official 7:cf567a118ec7 156 #include "stm32f303xe.h"
mbed_official 7:cf567a118ec7 157 #elif defined(STM32F373xC)
mbed_official 7:cf567a118ec7 158 #include "stm32f373xc.h"
mbed_official 7:cf567a118ec7 159 #elif defined(STM32F334x8)
mbed_official 7:cf567a118ec7 160 #include "stm32f334x8.h"
mbed_official 7:cf567a118ec7 161 #elif defined(STM32F318xx)
mbed_official 7:cf567a118ec7 162 #include "stm32f318xx.h"
mbed_official 7:cf567a118ec7 163 #elif defined(STM32F328xx)
mbed_official 7:cf567a118ec7 164 #include "stm32f328xx.h"
mbed_official 7:cf567a118ec7 165 #elif defined(STM32F358xx)
mbed_official 7:cf567a118ec7 166 #include "stm32f358xx.h"
mbed_official 7:cf567a118ec7 167 #elif defined(STM32F378xx)
mbed_official 7:cf567a118ec7 168 #include "stm32f378xx.h"
mbed_official 7:cf567a118ec7 169 #elif defined(STM32F398xx)
mbed_official 7:cf567a118ec7 170 #include "stm32f398xx.h"
mbed_official 7:cf567a118ec7 171 #else
mbed_official 7:cf567a118ec7 172 #error "Please select first the target STM32F3xx device used in your application (in stm32f3xx.h file)"
mbed_official 7:cf567a118ec7 173 #endif
mbed_official 7:cf567a118ec7 174
mbed_official 7:cf567a118ec7 175 /**
mbed_official 7:cf567a118ec7 176 * @}
mbed_official 7:cf567a118ec7 177 */
mbed_official 7:cf567a118ec7 178
mbed_official 7:cf567a118ec7 179 /** @addtogroup Exported_types
mbed_official 7:cf567a118ec7 180 * @{
mbed_official 7:cf567a118ec7 181 */
mbed_official 7:cf567a118ec7 182 typedef enum
mbed_official 7:cf567a118ec7 183 {
mbed_official 7:cf567a118ec7 184 RESET = 0,
mbed_official 7:cf567a118ec7 185 SET = !RESET
mbed_official 7:cf567a118ec7 186 } FlagStatus, ITStatus;
mbed_official 7:cf567a118ec7 187
mbed_official 7:cf567a118ec7 188 typedef enum
mbed_official 7:cf567a118ec7 189 {
mbed_official 7:cf567a118ec7 190 DISABLE = 0,
mbed_official 7:cf567a118ec7 191 ENABLE = !DISABLE
mbed_official 7:cf567a118ec7 192 } FunctionalState;
mbed_official 7:cf567a118ec7 193 #define IS_FUNCTIONAL_STATE(STATE) (((STATE) == DISABLE) || ((STATE) == ENABLE))
mbed_official 7:cf567a118ec7 194
mbed_official 7:cf567a118ec7 195 typedef enum
mbed_official 7:cf567a118ec7 196 {
mbed_official 7:cf567a118ec7 197 ERROR = 0,
mbed_official 7:cf567a118ec7 198 SUCCESS = !ERROR
mbed_official 7:cf567a118ec7 199 } ErrorStatus;
mbed_official 7:cf567a118ec7 200
mbed_official 7:cf567a118ec7 201 /**
mbed_official 7:cf567a118ec7 202 * @}
mbed_official 7:cf567a118ec7 203 */
mbed_official 7:cf567a118ec7 204
mbed_official 7:cf567a118ec7 205
mbed_official 7:cf567a118ec7 206 /** @addtogroup Exported_macros
mbed_official 7:cf567a118ec7 207 * @{
mbed_official 7:cf567a118ec7 208 */
mbed_official 7:cf567a118ec7 209 #define SET_BIT(REG, BIT) ((REG) |= (BIT))
mbed_official 7:cf567a118ec7 210
mbed_official 7:cf567a118ec7 211 #define CLEAR_BIT(REG, BIT) ((REG) &= ~(BIT))
mbed_official 7:cf567a118ec7 212
mbed_official 7:cf567a118ec7 213 #define READ_BIT(REG, BIT) ((REG) & (BIT))
mbed_official 7:cf567a118ec7 214
mbed_official 7:cf567a118ec7 215 #define CLEAR_REG(REG) ((REG) = (0x0))
mbed_official 7:cf567a118ec7 216
mbed_official 7:cf567a118ec7 217 #define WRITE_REG(REG, VAL) ((REG) = (VAL))
mbed_official 7:cf567a118ec7 218
mbed_official 7:cf567a118ec7 219 #define READ_REG(REG) ((REG))
mbed_official 7:cf567a118ec7 220
mbed_official 7:cf567a118ec7 221 #define MODIFY_REG(REG, CLEARMASK, SETMASK) WRITE_REG((REG), (((READ_REG(REG)) & (~(CLEARMASK))) | (SETMASK)))
mbed_official 7:cf567a118ec7 222
mbed_official 7:cf567a118ec7 223 #define POSITION_VAL(VAL) (__CLZ(__RBIT(VAL)))
mbed_official 7:cf567a118ec7 224
mbed_official 7:cf567a118ec7 225
mbed_official 7:cf567a118ec7 226 #if defined (USE_HAL_DRIVER)
mbed_official 7:cf567a118ec7 227 #include "stm32f3xx_hal.h"
mbed_official 7:cf567a118ec7 228 #endif /* USE_HAL_DRIVER */
mbed_official 7:cf567a118ec7 229
mbed_official 7:cf567a118ec7 230
mbed_official 7:cf567a118ec7 231 /**
mbed_official 7:cf567a118ec7 232 * @}
mbed_official 7:cf567a118ec7 233 */
mbed_official 7:cf567a118ec7 234
mbed_official 7:cf567a118ec7 235
mbed_official 7:cf567a118ec7 236 #ifdef __cplusplus
mbed_official 7:cf567a118ec7 237 }
mbed_official 7:cf567a118ec7 238 #endif /* __cplusplus */
mbed_official 7:cf567a118ec7 239
mbed_official 7:cf567a118ec7 240 #endif /* __STM32F3xx_H */
mbed_official 7:cf567a118ec7 241 /**
mbed_official 7:cf567a118ec7 242 * @}
mbed_official 7:cf567a118ec7 243 */
mbed_official 7:cf567a118ec7 244
mbed_official 7:cf567a118ec7 245 /**
mbed_official 7:cf567a118ec7 246 * @}
mbed_official 7:cf567a118ec7 247 */
mbed_official 7:cf567a118ec7 248
mbed_official 7:cf567a118ec7 249
mbed_official 7:cf567a118ec7 250
mbed_official 7:cf567a118ec7 251
mbed_official 7:cf567a118ec7 252 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/