DSO138_SourceCodes_v037.rar
[DSO138] / Libraries / STM32F10x_StdPeriph_Driver / inc / stm32f10x_adc.h
1 /**\r
2   ******************************************************************************\r
3   * @file    stm32f10x_adc.h\r
4   * @author  MCD Application Team\r
5   * @version V3.3.0\r
6   * @date    04/16/2010\r
7   * @brief   This file contains all the functions prototypes for the ADC firmware \r
8   *          library.\r
9   ******************************************************************************\r
10   * @copy\r
11   *\r
12   * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS\r
13   * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE\r
14   * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY\r
15   * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING\r
16   * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE\r
17   * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.\r
18   *\r
19   * <h2><center>&copy; COPYRIGHT 2010 STMicroelectronics</center></h2>\r
20   */ \r
21 \r
22 /* Define to prevent recursive inclusion -------------------------------------*/\r
23 #ifndef __STM32F10x_ADC_H\r
24 #define __STM32F10x_ADC_H\r
25 \r
26 #ifdef __cplusplus\r
27  extern "C" {\r
28 #endif\r
29 \r
30 /* Includes ------------------------------------------------------------------*/\r
31 #include "stm32f10x.h"\r
32 \r
33 /** @addtogroup STM32F10x_StdPeriph_Driver\r
34   * @{\r
35   */\r
36 \r
37 /** @addtogroup ADC\r
38   * @{\r
39   */\r
40 \r
41 /** @defgroup ADC_Exported_Types\r
42   * @{\r
43   */\r
44 \r
45 /** \r
46   * @brief  ADC Init structure definition  \r
47   */\r
48 \r
49 typedef struct\r
50 {\r
51   uint32_t ADC_Mode;                      /*!< Configures the ADC to operate in independent or\r
52                                                dual mode. \r
53                                                This parameter can be a value of @ref ADC_mode */\r
54 \r
55   FunctionalState ADC_ScanConvMode;       /*!< Specifies whether the conversion is performed in\r
56                                                Scan (multichannels) or Single (one channel) mode.\r
57                                                This parameter can be set to ENABLE or DISABLE */\r
58 \r
59   FunctionalState ADC_ContinuousConvMode; /*!< Specifies whether the conversion is performed in\r
60                                                Continuous or Single mode.\r
61                                                This parameter can be set to ENABLE or DISABLE. */\r
62 \r
63   uint32_t ADC_ExternalTrigConv;          /*!< Defines the external trigger used to start the analog\r
64                                                to digital conversion of regular channels. This parameter\r
65                                                can be a value of @ref ADC_external_trigger_sources_for_regular_channels_conversion */\r
66 \r
67   uint32_t ADC_DataAlign;                 /*!< Specifies whether the ADC data alignment is left or right.\r
68                                                This parameter can be a value of @ref ADC_data_align */\r
69 \r
70   uint8_t ADC_NbrOfChannel;               /*!< Specifies the number of ADC channels that will be converted\r
71                                                using the sequencer for regular channel group.\r
72                                                This parameter must range from 1 to 16. */\r
73 }ADC_InitTypeDef;\r
74 /**\r
75   * @}\r
76   */\r
77 \r
78 /** @defgroup ADC_Exported_Constants\r
79   * @{\r
80   */\r
81 \r
82 #define IS_ADC_ALL_PERIPH(PERIPH) (((PERIPH) == ADC1) || \\r
83                                    ((PERIPH) == ADC2) || \\r
84                                    ((PERIPH) == ADC3))\r
85 \r
86 #define IS_ADC_DMA_PERIPH(PERIPH) (((PERIPH) == ADC1) || \\r
87                                    ((PERIPH) == ADC3))\r
88 \r
89 /** @defgroup ADC_mode \r
90   * @{\r
91   */\r
92 \r
93 #define ADC_Mode_Independent                       ((uint32_t)0x00000000)\r
94 #define ADC_Mode_RegInjecSimult                    ((uint32_t)0x00010000)\r
95 #define ADC_Mode_RegSimult_AlterTrig               ((uint32_t)0x00020000)\r
96 #define ADC_Mode_InjecSimult_FastInterl            ((uint32_t)0x00030000)\r
97 #define ADC_Mode_InjecSimult_SlowInterl            ((uint32_t)0x00040000)\r
98 #define ADC_Mode_InjecSimult                       ((uint32_t)0x00050000)\r
99 #define ADC_Mode_RegSimult                         ((uint32_t)0x00060000)\r
100 #define ADC_Mode_FastInterl                        ((uint32_t)0x00070000)\r
101 #define ADC_Mode_SlowInterl                        ((uint32_t)0x00080000)\r
102 #define ADC_Mode_AlterTrig                         ((uint32_t)0x00090000)\r
103 \r
104 #define IS_ADC_MODE(MODE) (((MODE) == ADC_Mode_Independent) || \\r
105                            ((MODE) == ADC_Mode_RegInjecSimult) || \\r
106                            ((MODE) == ADC_Mode_RegSimult_AlterTrig) || \\r
107                            ((MODE) == ADC_Mode_InjecSimult_FastInterl) || \\r
108                            ((MODE) == ADC_Mode_InjecSimult_SlowInterl) || \\r
109                            ((MODE) == ADC_Mode_InjecSimult) || \\r
110                            ((MODE) == ADC_Mode_RegSimult) || \\r
111                            ((MODE) == ADC_Mode_FastInterl) || \\r
112                            ((MODE) == ADC_Mode_SlowInterl) || \\r
113                            ((MODE) == ADC_Mode_AlterTrig))\r
114 /**\r
115   * @}\r
116   */\r
117 \r
118 /** @defgroup ADC_external_trigger_sources_for_regular_channels_conversion \r
119   * @{\r
120   */\r
121 \r
122 #define ADC_ExternalTrigConv_T1_CC1                ((uint32_t)0x00000000) /*!< For ADC1 and ADC2 */\r
123 #define ADC_ExternalTrigConv_T1_CC2                ((uint32_t)0x00020000) /*!< For ADC1 and ADC2 */\r
124 #define ADC_ExternalTrigConv_T2_CC2                ((uint32_t)0x00060000) /*!< For ADC1 and ADC2 */\r
125 #define ADC_ExternalTrigConv_T3_TRGO               ((uint32_t)0x00080000) /*!< For ADC1 and ADC2 */\r
126 #define ADC_ExternalTrigConv_T4_CC4                ((uint32_t)0x000A0000) /*!< For ADC1 and ADC2 */\r
127 #define ADC_ExternalTrigConv_Ext_IT11_TIM8_TRGO    ((uint32_t)0x000C0000) /*!< For ADC1 and ADC2 */\r
128 \r
129 #define ADC_ExternalTrigConv_T1_CC3                ((uint32_t)0x00040000) /*!< For ADC1, ADC2 and ADC3 */\r
130 #define ADC_ExternalTrigConv_None                  ((uint32_t)0x000E0000) /*!< For ADC1, ADC2 and ADC3 */\r
131 \r
132 #define ADC_ExternalTrigConv_T3_CC1                ((uint32_t)0x00000000) /*!< For ADC3 only */\r
133 #define ADC_ExternalTrigConv_T2_CC3                ((uint32_t)0x00020000) /*!< For ADC3 only */\r
134 #define ADC_ExternalTrigConv_T8_CC1                ((uint32_t)0x00060000) /*!< For ADC3 only */\r
135 #define ADC_ExternalTrigConv_T8_TRGO               ((uint32_t)0x00080000) /*!< For ADC3 only */\r
136 #define ADC_ExternalTrigConv_T5_CC1                ((uint32_t)0x000A0000) /*!< For ADC3 only */\r
137 #define ADC_ExternalTrigConv_T5_CC3                ((uint32_t)0x000C0000) /*!< For ADC3 only */\r
138 \r
139 #define IS_ADC_EXT_TRIG(REGTRIG) (((REGTRIG) == ADC_ExternalTrigConv_T1_CC1) || \\r
140                                   ((REGTRIG) == ADC_ExternalTrigConv_T1_CC2) || \\r
141                                   ((REGTRIG) == ADC_ExternalTrigConv_T1_CC3) || \\r
142                                   ((REGTRIG) == ADC_ExternalTrigConv_T2_CC2) || \\r
143                                   ((REGTRIG) == ADC_ExternalTrigConv_T3_TRGO) || \\r
144                                   ((REGTRIG) == ADC_ExternalTrigConv_T4_CC4) || \\r
145                                   ((REGTRIG) == ADC_ExternalTrigConv_Ext_IT11_TIM8_TRGO) || \\r
146                                   ((REGTRIG) == ADC_ExternalTrigConv_None) || \\r
147                                   ((REGTRIG) == ADC_ExternalTrigConv_T3_CC1) || \\r
148                                   ((REGTRIG) == ADC_ExternalTrigConv_T2_CC3) || \\r
149                                   ((REGTRIG) == ADC_ExternalTrigConv_T8_CC1) || \\r
150                                   ((REGTRIG) == ADC_ExternalTrigConv_T8_TRGO) || \\r
151                                   ((REGTRIG) == ADC_ExternalTrigConv_T5_CC1) || \\r
152                                   ((REGTRIG) == ADC_ExternalTrigConv_T5_CC3))\r
153 /**\r
154   * @}\r
155   */\r
156 \r
157 /** @defgroup ADC_data_align \r
158   * @{\r
159   */\r
160 \r
161 #define ADC_DataAlign_Right                        ((uint32_t)0x00000000)\r
162 #define ADC_DataAlign_Left                         ((uint32_t)0x00000800)\r
163 #define IS_ADC_DATA_ALIGN(ALIGN) (((ALIGN) == ADC_DataAlign_Right) || \\r
164                                   ((ALIGN) == ADC_DataAlign_Left))\r
165 /**\r
166   * @}\r
167   */\r
168 \r
169 /** @defgroup ADC_channels \r
170   * @{\r
171   */\r
172 \r
173 #define ADC_Channel_0                               ((uint8_t)0x00)\r
174 #define ADC_Channel_1                               ((uint8_t)0x01)\r
175 #define ADC_Channel_2                               ((uint8_t)0x02)\r
176 #define ADC_Channel_3                               ((uint8_t)0x03)\r
177 #define ADC_Channel_4                               ((uint8_t)0x04)\r
178 #define ADC_Channel_5                               ((uint8_t)0x05)\r
179 #define ADC_Channel_6                               ((uint8_t)0x06)\r
180 #define ADC_Channel_7                               ((uint8_t)0x07)\r
181 #define ADC_Channel_8                               ((uint8_t)0x08)\r
182 #define ADC_Channel_9                               ((uint8_t)0x09)\r
183 #define ADC_Channel_10                              ((uint8_t)0x0A)\r
184 #define ADC_Channel_11                              ((uint8_t)0x0B)\r
185 #define ADC_Channel_12                              ((uint8_t)0x0C)\r
186 #define ADC_Channel_13                              ((uint8_t)0x0D)\r
187 #define ADC_Channel_14                              ((uint8_t)0x0E)\r
188 #define ADC_Channel_15                              ((uint8_t)0x0F)\r
189 #define ADC_Channel_16                              ((uint8_t)0x10)\r
190 #define ADC_Channel_17                              ((uint8_t)0x11)\r
191 \r
192 #define ADC_Channel_TempSensor                      ((uint8_t)ADC_Channel_16)\r
193 #define ADC_Channel_Vrefint                         ((uint8_t)ADC_Channel_17)\r
194 \r
195 #define IS_ADC_CHANNEL(CHANNEL) (((CHANNEL) == ADC_Channel_0) || ((CHANNEL) == ADC_Channel_1) || \\r
196                                  ((CHANNEL) == ADC_Channel_2) || ((CHANNEL) == ADC_Channel_3) || \\r
197                                  ((CHANNEL) == ADC_Channel_4) || ((CHANNEL) == ADC_Channel_5) || \\r
198                                  ((CHANNEL) == ADC_Channel_6) || ((CHANNEL) == ADC_Channel_7) || \\r
199                                  ((CHANNEL) == ADC_Channel_8) || ((CHANNEL) == ADC_Channel_9) || \\r
200                                  ((CHANNEL) == ADC_Channel_10) || ((CHANNEL) == ADC_Channel_11) || \\r
201                                  ((CHANNEL) == ADC_Channel_12) || ((CHANNEL) == ADC_Channel_13) || \\r
202                                  ((CHANNEL) == ADC_Channel_14) || ((CHANNEL) == ADC_Channel_15) || \\r
203                                  ((CHANNEL) == ADC_Channel_16) || ((CHANNEL) == ADC_Channel_17))\r
204 /**\r
205   * @}\r
206   */\r
207 \r
208 /** @defgroup ADC_sampling_time \r
209   * @{\r
210   */\r
211 \r
212 #define ADC_SampleTime_1Cycles5                    ((uint8_t)0x00)\r
213 #define ADC_SampleTime_7Cycles5                    ((uint8_t)0x01)\r
214 #define ADC_SampleTime_13Cycles5                   ((uint8_t)0x02)\r
215 #define ADC_SampleTime_28Cycles5                   ((uint8_t)0x03)\r
216 #define ADC_SampleTime_41Cycles5                   ((uint8_t)0x04)\r
217 #define ADC_SampleTime_55Cycles5                   ((uint8_t)0x05)\r
218 #define ADC_SampleTime_71Cycles5                   ((uint8_t)0x06)\r
219 #define ADC_SampleTime_239Cycles5                  ((uint8_t)0x07)\r
220 #define IS_ADC_SAMPLE_TIME(TIME) (((TIME) == ADC_SampleTime_1Cycles5) || \\r
221                                   ((TIME) == ADC_SampleTime_7Cycles5) || \\r
222                                   ((TIME) == ADC_SampleTime_13Cycles5) || \\r
223                                   ((TIME) == ADC_SampleTime_28Cycles5) || \\r
224                                   ((TIME) == ADC_SampleTime_41Cycles5) || \\r
225                                   ((TIME) == ADC_SampleTime_55Cycles5) || \\r
226                                   ((TIME) == ADC_SampleTime_71Cycles5) || \\r
227                                   ((TIME) == ADC_SampleTime_239Cycles5))\r
228 /**\r
229   * @}\r
230   */\r
231 \r
232 /** @defgroup ADC_external_trigger_sources_for_injected_channels_conversion \r
233   * @{\r
234   */\r
235 \r
236 #define ADC_ExternalTrigInjecConv_T2_TRGO           ((uint32_t)0x00002000) /*!< For ADC1 and ADC2 */\r
237 #define ADC_ExternalTrigInjecConv_T2_CC1            ((uint32_t)0x00003000) /*!< For ADC1 and ADC2 */\r
238 #define ADC_ExternalTrigInjecConv_T3_CC4            ((uint32_t)0x00004000) /*!< For ADC1 and ADC2 */\r
239 #define ADC_ExternalTrigInjecConv_T4_TRGO           ((uint32_t)0x00005000) /*!< For ADC1 and ADC2 */\r
240 #define ADC_ExternalTrigInjecConv_Ext_IT15_TIM8_CC4 ((uint32_t)0x00006000) /*!< For ADC1 and ADC2 */\r
241 \r
242 #define ADC_ExternalTrigInjecConv_T1_TRGO           ((uint32_t)0x00000000) /*!< For ADC1, ADC2 and ADC3 */\r
243 #define ADC_ExternalTrigInjecConv_T1_CC4            ((uint32_t)0x00001000) /*!< For ADC1, ADC2 and ADC3 */\r
244 #define ADC_ExternalTrigInjecConv_None              ((uint32_t)0x00007000) /*!< For ADC1, ADC2 and ADC3 */\r
245 \r
246 #define ADC_ExternalTrigInjecConv_T4_CC3            ((uint32_t)0x00002000) /*!< For ADC3 only */\r
247 #define ADC_ExternalTrigInjecConv_T8_CC2            ((uint32_t)0x00003000) /*!< For ADC3 only */\r
248 #define ADC_ExternalTrigInjecConv_T8_CC4            ((uint32_t)0x00004000) /*!< For ADC3 only */\r
249 #define ADC_ExternalTrigInjecConv_T5_TRGO           ((uint32_t)0x00005000) /*!< For ADC3 only */\r
250 #define ADC_ExternalTrigInjecConv_T5_CC4            ((uint32_t)0x00006000) /*!< For ADC3 only */\r
251 \r
252 #define IS_ADC_EXT_INJEC_TRIG(INJTRIG) (((INJTRIG) == ADC_ExternalTrigInjecConv_T1_TRGO) || \\r
253                                         ((INJTRIG) == ADC_ExternalTrigInjecConv_T1_CC4) || \\r
254                                         ((INJTRIG) == ADC_ExternalTrigInjecConv_T2_TRGO) || \\r
255                                         ((INJTRIG) == ADC_ExternalTrigInjecConv_T2_CC1) || \\r
256                                         ((INJTRIG) == ADC_ExternalTrigInjecConv_T3_CC4) || \\r
257                                         ((INJTRIG) == ADC_ExternalTrigInjecConv_T4_TRGO) || \\r
258                                         ((INJTRIG) == ADC_ExternalTrigInjecConv_Ext_IT15_TIM8_CC4) || \\r
259                                         ((INJTRIG) == ADC_ExternalTrigInjecConv_None) || \\r
260                                         ((INJTRIG) == ADC_ExternalTrigInjecConv_T4_CC3) || \\r
261                                         ((INJTRIG) == ADC_ExternalTrigInjecConv_T8_CC2) || \\r
262                                         ((INJTRIG) == ADC_ExternalTrigInjecConv_T8_CC4) || \\r
263                                         ((INJTRIG) == ADC_ExternalTrigInjecConv_T5_TRGO) || \\r
264                                         ((INJTRIG) == ADC_ExternalTrigInjecConv_T5_CC4))\r
265 /**\r
266   * @}\r
267   */\r
268 \r
269 /** @defgroup ADC_injected_channel_selection \r
270   * @{\r
271   */\r
272 \r
273 #define ADC_InjectedChannel_1                       ((uint8_t)0x14)\r
274 #define ADC_InjectedChannel_2                       ((uint8_t)0x18)\r
275 #define ADC_InjectedChannel_3                       ((uint8_t)0x1C)\r
276 #define ADC_InjectedChannel_4                       ((uint8_t)0x20)\r
277 #define IS_ADC_INJECTED_CHANNEL(CHANNEL) (((CHANNEL) == ADC_InjectedChannel_1) || \\r
278                                           ((CHANNEL) == ADC_InjectedChannel_2) || \\r
279                                           ((CHANNEL) == ADC_InjectedChannel_3) || \\r
280                                           ((CHANNEL) == ADC_InjectedChannel_4))\r
281 /**\r
282   * @}\r
283   */\r
284 \r
285 /** @defgroup ADC_analog_watchdog_selection \r
286   * @{\r
287   */\r
288 \r
289 #define ADC_AnalogWatchdog_SingleRegEnable         ((uint32_t)0x00800200)\r
290 #define ADC_AnalogWatchdog_SingleInjecEnable       ((uint32_t)0x00400200)\r
291 #define ADC_AnalogWatchdog_SingleRegOrInjecEnable  ((uint32_t)0x00C00200)\r
292 #define ADC_AnalogWatchdog_AllRegEnable            ((uint32_t)0x00800000)\r
293 #define ADC_AnalogWatchdog_AllInjecEnable          ((uint32_t)0x00400000)\r
294 #define ADC_AnalogWatchdog_AllRegAllInjecEnable    ((uint32_t)0x00C00000)\r
295 #define ADC_AnalogWatchdog_None                    ((uint32_t)0x00000000)\r
296 \r
297 #define IS_ADC_ANALOG_WATCHDOG(WATCHDOG) (((WATCHDOG) == ADC_AnalogWatchdog_SingleRegEnable) || \\r
298                                           ((WATCHDOG) == ADC_AnalogWatchdog_SingleInjecEnable) || \\r
299                                           ((WATCHDOG) == ADC_AnalogWatchdog_SingleRegOrInjecEnable) || \\r
300                                           ((WATCHDOG) == ADC_AnalogWatchdog_AllRegEnable) || \\r
301                                           ((WATCHDOG) == ADC_AnalogWatchdog_AllInjecEnable) || \\r
302                                           ((WATCHDOG) == ADC_AnalogWatchdog_AllRegAllInjecEnable) || \\r
303                                           ((WATCHDOG) == ADC_AnalogWatchdog_None))\r
304 /**\r
305   * @}\r
306   */\r
307 \r
308 /** @defgroup ADC_interrupts_definition \r
309   * @{\r
310   */\r
311 \r
312 #define ADC_IT_EOC                                 ((uint16_t)0x0220)\r
313 #define ADC_IT_AWD                                 ((uint16_t)0x0140)\r
314 #define ADC_IT_JEOC                                ((uint16_t)0x0480)\r
315 \r
316 #define IS_ADC_IT(IT) ((((IT) & (uint16_t)0xF81F) == 0x00) && ((IT) != 0x00))\r
317 \r
318 #define IS_ADC_GET_IT(IT) (((IT) == ADC_IT_EOC) || ((IT) == ADC_IT_AWD) || \\r
319                            ((IT) == ADC_IT_JEOC))\r
320 /**\r
321   * @}\r
322   */\r
323 \r
324 /** @defgroup ADC_flags_definition \r
325   * @{\r
326   */\r
327 \r
328 #define ADC_FLAG_AWD                               ((uint8_t)0x01)\r
329 #define ADC_FLAG_EOC                               ((uint8_t)0x02)\r
330 #define ADC_FLAG_JEOC                              ((uint8_t)0x04)\r
331 #define ADC_FLAG_JSTRT                             ((uint8_t)0x08)\r
332 #define ADC_FLAG_STRT                              ((uint8_t)0x10)\r
333 #define IS_ADC_CLEAR_FLAG(FLAG) ((((FLAG) & (uint8_t)0xE0) == 0x00) && ((FLAG) != 0x00))\r
334 #define IS_ADC_GET_FLAG(FLAG) (((FLAG) == ADC_FLAG_AWD) || ((FLAG) == ADC_FLAG_EOC) || \\r
335                                ((FLAG) == ADC_FLAG_JEOC) || ((FLAG)== ADC_FLAG_JSTRT) || \\r
336                                ((FLAG) == ADC_FLAG_STRT))\r
337 /**\r
338   * @}\r
339   */\r
340 \r
341 /** @defgroup ADC_thresholds \r
342   * @{\r
343   */\r
344 \r
345 #define IS_ADC_THRESHOLD(THRESHOLD) ((THRESHOLD) <= 0xFFF)\r
346 \r
347 /**\r
348   * @}\r
349   */\r
350 \r
351 /** @defgroup ADC_injected_offset \r
352   * @{\r
353   */\r
354 \r
355 #define IS_ADC_OFFSET(OFFSET) ((OFFSET) <= 0xFFF)\r
356 \r
357 /**\r
358   * @}\r
359   */\r
360 \r
361 /** @defgroup ADC_injected_length \r
362   * @{\r
363   */\r
364 \r
365 #define IS_ADC_INJECTED_LENGTH(LENGTH) (((LENGTH) >= 0x1) && ((LENGTH) <= 0x4))\r
366 \r
367 /**\r
368   * @}\r
369   */\r
370 \r
371 /** @defgroup ADC_injected_rank \r
372   * @{\r
373   */\r
374 \r
375 #define IS_ADC_INJECTED_RANK(RANK) (((RANK) >= 0x1) && ((RANK) <= 0x4))\r
376 \r
377 /**\r
378   * @}\r
379   */ \r
380 \r
381 \r
382 /** @defgroup ADC_regular_length \r
383   * @{\r
384   */\r
385 \r
386 #define IS_ADC_REGULAR_LENGTH(LENGTH) (((LENGTH) >= 0x1) && ((LENGTH) <= 0x10))\r
387 /**\r
388   * @}\r
389   */\r
390 \r
391 /** @defgroup ADC_regular_rank \r
392   * @{\r
393   */\r
394 \r
395 #define IS_ADC_REGULAR_RANK(RANK) (((RANK) >= 0x1) && ((RANK) <= 0x10))\r
396 \r
397 /**\r
398   * @}\r
399   */\r
400 \r
401 /** @defgroup ADC_regular_discontinuous_mode_number \r
402   * @{\r
403   */\r
404 \r
405 #define IS_ADC_REGULAR_DISC_NUMBER(NUMBER) (((NUMBER) >= 0x1) && ((NUMBER) <= 0x8))\r
406 \r
407 /**\r
408   * @}\r
409   */\r
410 \r
411 /**\r
412   * @}\r
413   */\r
414 \r
415 /** @defgroup ADC_Exported_Macros\r
416   * @{\r
417   */\r
418 \r
419 /**\r
420   * @}\r
421   */\r
422 \r
423 /** @defgroup ADC_Exported_Functions\r
424   * @{\r
425   */\r
426 \r
427 void ADC_DeInit(ADC_TypeDef* ADCx);\r
428 void ADC_Init(ADC_TypeDef* ADCx, ADC_InitTypeDef* ADC_InitStruct);\r
429 void ADC_StructInit(ADC_InitTypeDef* ADC_InitStruct);\r
430 void ADC_Cmd(ADC_TypeDef* ADCx, FunctionalState NewState);\r
431 void ADC_DMACmd(ADC_TypeDef* ADCx, FunctionalState NewState);\r
432 void ADC_ITConfig(ADC_TypeDef* ADCx, uint16_t ADC_IT, FunctionalState NewState);\r
433 void ADC_ResetCalibration(ADC_TypeDef* ADCx);\r
434 FlagStatus ADC_GetResetCalibrationStatus(ADC_TypeDef* ADCx);\r
435 void ADC_StartCalibration(ADC_TypeDef* ADCx);\r
436 FlagStatus ADC_GetCalibrationStatus(ADC_TypeDef* ADCx);\r
437 void ADC_SoftwareStartConvCmd(ADC_TypeDef* ADCx, FunctionalState NewState);\r
438 FlagStatus ADC_GetSoftwareStartConvStatus(ADC_TypeDef* ADCx);\r
439 void ADC_DiscModeChannelCountConfig(ADC_TypeDef* ADCx, uint8_t Number);\r
440 void ADC_DiscModeCmd(ADC_TypeDef* ADCx, FunctionalState NewState);\r
441 void ADC_RegularChannelConfig(ADC_TypeDef* ADCx, uint8_t ADC_Channel, uint8_t Rank, uint8_t ADC_SampleTime);\r
442 void ADC_ExternalTrigConvCmd(ADC_TypeDef* ADCx, FunctionalState NewState);\r
443 uint16_t ADC_GetConversionValue(ADC_TypeDef* ADCx);\r
444 uint32_t ADC_GetDualModeConversionValue(void);\r
445 void ADC_AutoInjectedConvCmd(ADC_TypeDef* ADCx, FunctionalState NewState);\r
446 void ADC_InjectedDiscModeCmd(ADC_TypeDef* ADCx, FunctionalState NewState);\r
447 void ADC_ExternalTrigInjectedConvConfig(ADC_TypeDef* ADCx, uint32_t ADC_ExternalTrigInjecConv);\r
448 void ADC_ExternalTrigInjectedConvCmd(ADC_TypeDef* ADCx, FunctionalState NewState);\r
449 void ADC_SoftwareStartInjectedConvCmd(ADC_TypeDef* ADCx, FunctionalState NewState);\r
450 FlagStatus ADC_GetSoftwareStartInjectedConvCmdStatus(ADC_TypeDef* ADCx);\r
451 void ADC_InjectedChannelConfig(ADC_TypeDef* ADCx, uint8_t ADC_Channel, uint8_t Rank, uint8_t ADC_SampleTime);\r
452 void ADC_InjectedSequencerLengthConfig(ADC_TypeDef* ADCx, uint8_t Length);\r
453 void ADC_SetInjectedOffset(ADC_TypeDef* ADCx, uint8_t ADC_InjectedChannel, uint16_t Offset);\r
454 uint16_t ADC_GetInjectedConversionValue(ADC_TypeDef* ADCx, uint8_t ADC_InjectedChannel);\r
455 void ADC_AnalogWatchdogCmd(ADC_TypeDef* ADCx, uint32_t ADC_AnalogWatchdog);\r
456 void ADC_AnalogWatchdogThresholdsConfig(ADC_TypeDef* ADCx, uint16_t HighThreshold, uint16_t LowThreshold);\r
457 void ADC_AnalogWatchdogSingleChannelConfig(ADC_TypeDef* ADCx, uint8_t ADC_Channel);\r
458 void ADC_TempSensorVrefintCmd(FunctionalState NewState);\r
459 FlagStatus ADC_GetFlagStatus(ADC_TypeDef* ADCx, uint8_t ADC_FLAG);\r
460 void ADC_ClearFlag(ADC_TypeDef* ADCx, uint8_t ADC_FLAG);\r
461 ITStatus ADC_GetITStatus(ADC_TypeDef* ADCx, uint16_t ADC_IT);\r
462 void ADC_ClearITPendingBit(ADC_TypeDef* ADCx, uint16_t ADC_IT);\r
463 \r
464 #ifdef __cplusplus\r
465 }\r
466 #endif\r
467 \r
468 #endif /*__STM32F10x_ADC_H */\r
469 \r
470 /**\r
471   * @}\r
472   */\r
473 \r
474 /**\r
475   * @}\r
476   */\r
477 \r
478 /**\r
479   * @}\r
480   */\r
481 \r
482 /******************* (C) COPYRIGHT 2010 STMicroelectronics *****END OF FILE****/\r