cantata
stm32f1xx.h
Go to the documentation of this file.
1 
38 #ifndef __STM32F1XX_H
39 #define __STM32F1XX_H
40 
41 #ifdef __cplusplus
42  extern "C" {
43 #endif /* __cplusplus */
44 
52 #if !defined (STM32F1)
53 #define STM32F1
54 #endif /* STM32F1 */
55 
56 /* Uncomment the line below according to the target STM32L device used in your
57  application
58  */
59 
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)
63  /* #define STM32F100xB */
64  /* #define STM32F100xE */
65  /* #define STM32F101x6 */
66  /* #define STM32F101xB */
67  /* #define STM32F101xE */
68  /* #define STM32F101xG */
69  /* #define STM32F102x6 */
70  /* #define STM32F102xB */
71  /* #define STM32F103x6 */
72  /* #define STM32F103xB */
73  /* #define STM32F103xE */
74  /* #define STM32F103xG */
75  /* #define STM32F105xC */
76  /* #define STM32F107xC */
77 #endif
78 
79 /* Tip: To avoid modifying this file each time you need to switch between these
80  devices, you can define the device in your toolchain compiler preprocessor.
81  */
82 
83 #if !defined (USE_HAL_DRIVER)
84 
89  /*#define USE_HAL_DRIVER */
90 #endif /* USE_HAL_DRIVER */
91 
95 #define __STM32F1_CMSIS_VERSION_MAIN (0x04)
96 #define __STM32F1_CMSIS_VERSION_SUB1 (0x03)
97 #define __STM32F1_CMSIS_VERSION_SUB2 (0x02)
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))
103 
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)
139  #include "stm32f107xc.h"
140 #else
141  #error "Please select first the target STM32F1xx device used in your application (in stm32f1xx.h file)"
142 #endif
143 
151 typedef enum
152 {
153  RESET = 0,
154  SET = !RESET
155 } FlagStatus, ITStatus;
156 
157 typedef enum
158 {
159  DISABLE = 0,
160  ENABLE = !DISABLE
161 } FunctionalState;
162 #define IS_FUNCTIONAL_STATE(STATE) (((STATE) == DISABLE) || ((STATE) == ENABLE))
163 
164 typedef enum
165 {
166  SUCCESS = 0U,
167  ERROR = !SUCCESS
168 } ErrorStatus;
169 
178 #define SET_BIT(REG, BIT) ((REG) |= (BIT))
179 
180 #define CLEAR_BIT(REG, BIT) ((REG) &= ~(BIT))
181 
182 #define READ_BIT(REG, BIT) ((REG) & (BIT))
183 
184 #define CLEAR_REG(REG) ((REG) = (0x0))
185 
186 #define WRITE_REG(REG, VAL) ((REG) = (VAL))
187 
188 #define READ_REG(REG) ((REG))
189 
190 #define MODIFY_REG(REG, CLEARMASK, SETMASK) WRITE_REG((REG), (((READ_REG(REG)) & (~(CLEARMASK))) | (SETMASK)))
191 
192 #define POSITION_VAL(VAL) (__CLZ(__RBIT(VAL)))
193 
194 
199 #if defined (USE_HAL_DRIVER)
200  #include "stm32f1xx_hal.h"
201 #endif /* USE_HAL_DRIVER */
202 
203 
204 #ifdef __cplusplus
205 }
206 #endif /* __cplusplus */
207 
208 #endif /* __STM32F1xx_H */
209 
220 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
This file contains all the functions prototypes for the HAL module driver.
CMSIS Cortex-M3 Device Peripheral Access Layer Header File. This file contains all the peripheral reg...