60#if !defined (STM32F100xB) && !defined (STM32F100xE) && !defined (STM32F101x6) && \
61 !defined (STM32F101xB) && !defined (STM32F101xE) && !defined (STM32F101xG) && !defined (STM32F102x6) && !defined (STM32F102xB) && !defined (STM32F103x6) && \
62 !defined (STM32F103xB) && !defined (STM32F103xE) && !defined (STM32F103xG) && !defined (STM32F105xC) && !defined (STM32F107xC)
83#if !defined (USE_HAL_DRIVER)
95#define __STM32F1_CMSIS_VERSION_MAIN (0x04)
96#define __STM32F1_CMSIS_VERSION_SUB1 (0x03)
97#define __STM32F1_CMSIS_VERSION_SUB2 (0x03)
98#define __STM32F1_CMSIS_VERSION_RC (0x00)
99#define __STM32F1_CMSIS_VERSION ((__STM32F1_CMSIS_VERSION_MAIN << 24)\
100 |(__STM32F1_CMSIS_VERSION_SUB1 << 16)\
101 |(__STM32F1_CMSIS_VERSION_SUB2 << 8 )\
102 |(__STM32F1_CMSIS_VERSION_RC))
112#if defined(STM32F100xB)
113 #include "stm32f100xb.h"
114#elif defined(STM32F100xE)
115 #include "stm32f100xe.h"
116#elif defined(STM32F101x6)
117 #include "stm32f101x6.h"
118#elif defined(STM32F101xB)
119 #include "stm32f101xb.h"
120#elif defined(STM32F101xE)
121 #include "stm32f101xe.h"
122#elif defined(STM32F101xG)
123 #include "stm32f101xg.h"
124#elif defined(STM32F102x6)
125 #include "stm32f102x6.h"
126#elif defined(STM32F102xB)
127 #include "stm32f102xb.h"
128#elif defined(STM32F103x6)
129 #include "stm32f103x6.h"
130#elif defined(STM32F103xB)
131 #include "stm32f103xb.h"
132#elif defined(STM32F103xE)
133 #include "stm32f103xe.h"
134#elif defined(STM32F103xG)
135 #include "stm32f103xg.h"
136#elif defined(STM32F105xC)
137 #include "stm32f105xc.h"
138#elif defined(STM32F107xC)
141 #error "Please select first the target STM32F1xx device used in your application (in stm32f1xx.h file)"
155} FlagStatus, ITStatus;
162#define IS_FUNCTIONAL_STATE(STATE) (((STATE) == DISABLE) || ((STATE) == ENABLE))
178#define SET_BIT(REG, BIT) ((REG) |= (BIT))
180#define CLEAR_BIT(REG, BIT) ((REG) &= ~(BIT))
182#define READ_BIT(REG, BIT) ((REG) & (BIT))
184#define CLEAR_REG(REG) ((REG) = (0x0))
186#define WRITE_REG(REG, VAL) ((REG) = (VAL))
188#define READ_REG(REG) ((REG))
190#define MODIFY_REG(REG, CLEARMASK, SETMASK) WRITE_REG((REG), (((READ_REG(REG)) & (~(CLEARMASK))) | (SETMASK)))
192#define POSITION_VAL(VAL) (__CLZ(__RBIT(VAL)))
196#define ATOMIC_SET_BIT(REG, BIT) \
200 val = __LDREXW((__IO uint32_t *)&(REG)) | (BIT); \
201 } while ((__STREXW(val,(__IO uint32_t *)&(REG))) != 0U); \
205#define ATOMIC_CLEAR_BIT(REG, BIT) \
209 val = __LDREXW((__IO uint32_t *)&(REG)) & ~(BIT); \
210 } while ((__STREXW(val,(__IO uint32_t *)&(REG))) != 0U); \
214#define ATOMIC_MODIFY_REG(REG, CLEARMSK, SETMASK) \
218 val = (__LDREXW((__IO uint32_t *)&(REG)) & ~(CLEARMSK)) | (SETMASK); \
219 } while ((__STREXW(val,(__IO uint32_t *)&(REG))) != 0U); \
223#define ATOMIC_SETH_BIT(REG, BIT) \
227 val = __LDREXH((__IO uint16_t *)&(REG)) | (BIT); \
228 } while ((__STREXH(val,(__IO uint16_t *)&(REG))) != 0U); \
232#define ATOMIC_CLEARH_BIT(REG, BIT) \
236 val = __LDREXH((__IO uint16_t *)&(REG)) & ~(BIT); \
237 } while ((__STREXH(val,(__IO uint16_t *)&(REG))) != 0U); \
241#define ATOMIC_MODIFYH_REG(REG, CLEARMSK, SETMASK) \
245 val = (__LDREXH((__IO uint16_t *)&(REG)) & ~(CLEARMSK)) | (SETMASK); \
246 } while ((__STREXH(val,(__IO uint16_t *)&(REG))) != 0U); \
254#if defined (USE_HAL_DRIVER)
CMSIS Cortex-M3 Device Peripheral Access Layer Header File. This file contains all the peripheral reg...
This file contains all the functions prototypes for the HAL module driver.