58#if !defined (STM32F405xx) && !defined (STM32F415xx) && !defined (STM32F407xx) && !defined (STM32F417xx) && \
59 !defined (STM32F427xx) && !defined (STM32F437xx) && !defined (STM32F429xx) && !defined (STM32F439xx) && \
60 !defined (STM32F401xC) && !defined (STM32F401xE) && !defined (STM32F410Tx) && !defined (STM32F410Cx) && \
61 !defined (STM32F410Rx) && !defined (STM32F411xE) && !defined (STM32F446xx) && !defined (STM32F469xx) && \
62 !defined (STM32F479xx) && !defined (STM32F412Cx) && !defined (STM32F412Rx) && !defined (STM32F412Vx) && \
63 !defined (STM32F412Zx) && !defined (STM32F413xx) && !defined (STM32F423xx)
98#if !defined (USE_HAL_DRIVER)
110#define __STM32F4xx_CMSIS_VERSION_MAIN (0x02U)
111#define __STM32F4xx_CMSIS_VERSION_SUB1 (0x06U)
112#define __STM32F4xx_CMSIS_VERSION_SUB2 (0x08U)
113#define __STM32F4xx_CMSIS_VERSION_RC (0x00U)
114#define __STM32F4xx_CMSIS_VERSION ((__STM32F4xx_CMSIS_VERSION_MAIN << 24)\
115 |(__STM32F4xx_CMSIS_VERSION_SUB1 << 16)\
116 |(__STM32F4xx_CMSIS_VERSION_SUB2 << 8 )\
117 |(__STM32F4xx_CMSIS_VERSION_RC))
127#if defined(STM32F405xx)
128 #include "stm32f405xx.h"
129#elif defined(STM32F415xx)
130 #include "stm32f415xx.h"
131#elif defined(STM32F407xx)
133#elif defined(STM32F417xx)
135#elif defined(STM32F427xx)
137#elif defined(STM32F437xx)
139#elif defined(STM32F429xx)
141#elif defined(STM32F439xx)
143#elif defined(STM32F401xC)
144 #include "stm32f401xc.h"
145#elif defined(STM32F401xE)
146 #include "stm32f401xe.h"
147#elif defined(STM32F410Tx)
148 #include "stm32f410tx.h"
149#elif defined(STM32F410Cx)
150 #include "stm32f410cx.h"
151#elif defined(STM32F410Rx)
152 #include "stm32f410rx.h"
153#elif defined(STM32F411xE)
154 #include "stm32f411xe.h"
155#elif defined(STM32F446xx)
156 #include "stm32f446xx.h"
157#elif defined(STM32F469xx)
159#elif defined(STM32F479xx)
161#elif defined(STM32F412Cx)
162 #include "stm32f412cx.h"
163#elif defined(STM32F412Zx)
164 #include "stm32f412zx.h"
165#elif defined(STM32F412Rx)
166 #include "stm32f412rx.h"
167#elif defined(STM32F412Vx)
168 #include "stm32f412vx.h"
169#elif defined(STM32F413xx)
170 #include "stm32f413xx.h"
171#elif defined(STM32F423xx)
172 #include "stm32f423xx.h"
174 #error "Please select first the target STM32F4xx device used in your application (in stm32f4xx.h file)"
188} FlagStatus, ITStatus;
195#define IS_FUNCTIONAL_STATE(STATE) (((STATE) == DISABLE) || ((STATE) == ENABLE))
211#define SET_BIT(REG, BIT) ((REG) |= (BIT))
213#define CLEAR_BIT(REG, BIT) ((REG) &= ~(BIT))
215#define READ_BIT(REG, BIT) ((REG) & (BIT))
217#define CLEAR_REG(REG) ((REG) = (0x0))
219#define WRITE_REG(REG, VAL) ((REG) = (VAL))
221#define READ_REG(REG) ((REG))
223#define MODIFY_REG(REG, CLEARMASK, SETMASK) WRITE_REG((REG), (((READ_REG(REG)) & (~(CLEARMASK))) | (SETMASK)))
225#define POSITION_VAL(VAL) (__CLZ(__RBIT(VAL)))
229#define ATOMIC_SET_BIT(REG, BIT) \
233 val = __LDREXW((__IO uint32_t *)&(REG)) | (BIT); \
234 } while ((__STREXW(val,(__IO uint32_t *)&(REG))) != 0U); \
238#define ATOMIC_CLEAR_BIT(REG, BIT) \
242 val = __LDREXW((__IO uint32_t *)&(REG)) & ~(BIT); \
243 } while ((__STREXW(val,(__IO uint32_t *)&(REG))) != 0U); \
247#define ATOMIC_MODIFY_REG(REG, CLEARMSK, SETMASK) \
251 val = (__LDREXW((__IO uint32_t *)&(REG)) & ~(CLEARMSK)) | (SETMASK); \
252 } while ((__STREXW(val,(__IO uint32_t *)&(REG))) != 0U); \
256#define ATOMIC_SETH_BIT(REG, BIT) \
260 val = __LDREXH((__IO uint16_t *)&(REG)) | (BIT); \
261 } while ((__STREXH(val,(__IO uint16_t *)&(REG))) != 0U); \
265#define ATOMIC_CLEARH_BIT(REG, BIT) \
269 val = __LDREXH((__IO uint16_t *)&(REG)) & ~(BIT); \
270 } while ((__STREXH(val,(__IO uint16_t *)&(REG))) != 0U); \
274#define ATOMIC_MODIFYH_REG(REG, CLEARMSK, SETMASK) \
278 val = (__LDREXH((__IO uint16_t *)&(REG)) & ~(CLEARMSK)) | (SETMASK); \
279 } while ((__STREXH(val,(__IO uint16_t *)&(REG))) != 0U); \
286#if defined (USE_HAL_DRIVER)
CMSIS STM32F407xx Device Peripheral Access Layer Header File.
CMSIS STM32F417xx Device Peripheral Access Layer Header File.
CMSIS STM32F427xx Device Peripheral Access Layer Header File.
CMSIS STM32F429xx Device Peripheral Access Layer Header File.
CMSIS STM32F437xx Device Peripheral Access Layer Header File.
CMSIS STM32F439xx Device Peripheral Access Layer Header File.
CMSIS STM32F469xx Device Peripheral Access Layer Header File.
CMSIS STM32F479xx Device Peripheral Access Layer Header File.
This file contains all the functions prototypes for the HAL module driver.