]> git.piffa.net Git - arduino/blob - sheets/gyro/GY-52 Three-axis gyroscope sending data /Three-axis gyroscope sending data/GY-52 Test program/STM32-CODE/serial port output MPU-3050/serial/Libraries/STM32F10x_StdPeriph_Driver/inc/stm32f10x_adc.h
first commit
[arduino] / sheets / gyro / GY-52 Three-axis gyroscope sending data / Three-axis gyroscope sending data / GY-52 Test program / STM32-CODE / serial port output MPU-3050 / serial / 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.1.2\r
6   * @date    09/28/2009\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 2009 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 IS_ADC_CHANNEL(CHANNEL) (((CHANNEL) == ADC_Channel_0) || ((CHANNEL) == ADC_Channel_1) || \\r
193                                  ((CHANNEL) == ADC_Channel_2) || ((CHANNEL) == ADC_Channel_3) || \\r
194                                  ((CHANNEL) == ADC_Channel_4) || ((CHANNEL) == ADC_Channel_5) || \\r
195                                  ((CHANNEL) == ADC_Channel_6) || ((CHANNEL) == ADC_Channel_7) || \\r
196                                  ((CHANNEL) == ADC_Channel_8) || ((CHANNEL) == ADC_Channel_9) || \\r
197                                  ((CHANNEL) == ADC_Channel_10) || ((CHANNEL) == ADC_Channel_11) || \\r
198                                  ((CHANNEL) == ADC_Channel_12) || ((CHANNEL) == ADC_Channel_13) || \\r
199                                  ((CHANNEL) == ADC_Channel_14) || ((CHANNEL) == ADC_Channel_15) || \\r
200                                  ((CHANNEL) == ADC_Channel_16) || ((CHANNEL) == ADC_Channel_17))\r
201 /**\r
202   * @}\r
203   */\r
204 \r
205 /** @defgroup ADC_sampling_time \r
206   * @{\r
207   */\r
208 \r
209 #define ADC_SampleTime_1Cycles5                    ((uint8_t)0x00)\r
210 #define ADC_SampleTime_7Cycles5                    ((uint8_t)0x01)\r
211 #define ADC_SampleTime_13Cycles5                   ((uint8_t)0x02)\r
212 #define ADC_SampleTime_28Cycles5                   ((uint8_t)0x03)\r
213 #define ADC_SampleTime_41Cycles5                   ((uint8_t)0x04)\r
214 #define ADC_SampleTime_55Cycles5                   ((uint8_t)0x05)\r
215 #define ADC_SampleTime_71Cycles5                   ((uint8_t)0x06)\r
216 #define ADC_SampleTime_239Cycles5                  ((uint8_t)0x07)\r
217 #define IS_ADC_SAMPLE_TIME(TIME) (((TIME) == ADC_SampleTime_1Cycles5) || \\r
218                                   ((TIME) == ADC_SampleTime_7Cycles5) || \\r
219                                   ((TIME) == ADC_SampleTime_13Cycles5) || \\r
220                                   ((TIME) == ADC_SampleTime_28Cycles5) || \\r
221                                   ((TIME) == ADC_SampleTime_41Cycles5) || \\r
222                                   ((TIME) == ADC_SampleTime_55Cycles5) || \\r
223                                   ((TIME) == ADC_SampleTime_71Cycles5) || \\r
224                                   ((TIME) == ADC_SampleTime_239Cycles5))\r
225 /**\r
226   * @}\r
227   */\r
228 \r
229 /** @defgroup ADC_external_trigger_sources_for_injected_channels_conversion \r
230   * @{\r
231   */\r
232 \r
233 #define ADC_ExternalTrigInjecConv_T2_TRGO           ((uint32_t)0x00002000) /*!< For ADC1 and ADC2 */\r
234 #define ADC_ExternalTrigInjecConv_T2_CC1            ((uint32_t)0x00003000) /*!< For ADC1 and ADC2 */\r
235 #define ADC_ExternalTrigInjecConv_T3_CC4            ((uint32_t)0x00004000) /*!< For ADC1 and ADC2 */\r
236 #define ADC_ExternalTrigInjecConv_T4_TRGO           ((uint32_t)0x00005000) /*!< For ADC1 and ADC2 */\r
237 #define ADC_ExternalTrigInjecConv_Ext_IT15_TIM8_CC4 ((uint32_t)0x00006000) /*!< For ADC1 and ADC2 */\r
238 \r
239 #define ADC_ExternalTrigInjecConv_T1_TRGO           ((uint32_t)0x00000000) /*!< For ADC1, ADC2 and ADC3 */\r
240 #define ADC_ExternalTrigInjecConv_T1_CC4            ((uint32_t)0x00001000) /*!< For ADC1, ADC2 and ADC3 */\r
241 #define ADC_ExternalTrigInjecConv_None              ((uint32_t)0x00007000) /*!< For ADC1, ADC2 and ADC3 */\r
242 \r
243 #define ADC_ExternalTrigInjecConv_T4_CC3            ((uint32_t)0x00002000) /*!< For ADC3 only */\r
244 #define ADC_ExternalTrigInjecConv_T8_CC2            ((uint32_t)0x00003000) /*!< For ADC3 only */\r
245 #define ADC_ExternalTrigInjecConv_T8_CC4            ((uint32_t)0x00004000) /*!< For ADC3 only */\r
246 #define ADC_ExternalTrigInjecConv_T5_TRGO           ((uint32_t)0x00005000) /*!< For ADC3 only */\r
247 #define ADC_ExternalTrigInjecConv_T5_CC4            ((uint32_t)0x00006000) /*!< For ADC3 only */\r
248 \r
249 #define IS_ADC_EXT_INJEC_TRIG(INJTRIG) (((INJTRIG) == ADC_ExternalTrigInjecConv_T1_TRGO) || \\r
250                                         ((INJTRIG) == ADC_ExternalTrigInjecConv_T1_CC4) || \\r
251                                         ((INJTRIG) == ADC_ExternalTrigInjecConv_T2_TRGO) || \\r
252                                         ((INJTRIG) == ADC_ExternalTrigInjecConv_T2_CC1) || \\r
253                                         ((INJTRIG) == ADC_ExternalTrigInjecConv_T3_CC4) || \\r
254                                         ((INJTRIG) == ADC_ExternalTrigInjecConv_T4_TRGO) || \\r
255                                         ((INJTRIG) == ADC_ExternalTrigInjecConv_Ext_IT15_TIM8_CC4) || \\r
256                                         ((INJTRIG) == ADC_ExternalTrigInjecConv_None) || \\r
257                                         ((INJTRIG) == ADC_ExternalTrigInjecConv_T4_CC3) || \\r
258                                         ((INJTRIG) == ADC_ExternalTrigInjecConv_T8_CC2) || \\r
259                                         ((INJTRIG) == ADC_ExternalTrigInjecConv_T8_CC4) || \\r
260                                         ((INJTRIG) == ADC_ExternalTrigInjecConv_T5_TRGO) || \\r
261                                         ((INJTRIG) == ADC_ExternalTrigInjecConv_T5_CC4))\r
262 /**\r
263   * @}\r
264   */\r
265 \r
266 /** @defgroup ADC_injected_channel_selection \r
267   * @{\r
268   */\r
269 \r
270 #define ADC_InjectedChannel_1                       ((uint8_t)0x14)\r
271 #define ADC_InjectedChannel_2                       ((uint8_t)0x18)\r
272 #define ADC_InjectedChannel_3                       ((uint8_t)0x1C)\r
273 #define ADC_InjectedChannel_4                       ((uint8_t)0x20)\r
274 #define IS_ADC_INJECTED_CHANNEL(CHANNEL) (((CHANNEL) == ADC_InjectedChannel_1) || \\r
275                                           ((CHANNEL) == ADC_InjectedChannel_2) || \\r
276                                           ((CHANNEL) == ADC_InjectedChannel_3) || \\r
277                                           ((CHANNEL) == ADC_InjectedChannel_4))\r
278 /**\r
279   * @}\r
280   */\r
281 \r
282 /** @defgroup ADC_analog_watchdog_selection \r
283   * @{\r
284   */\r
285 \r
286 #define ADC_AnalogWatchdog_SingleRegEnable         ((uint32_t)0x00800200)\r
287 #define ADC_AnalogWatchdog_SingleInjecEnable       ((uint32_t)0x00400200)\r
288 #define ADC_AnalogWatchdog_SingleRegOrInjecEnable  ((uint32_t)0x00C00200)\r
289 #define ADC_AnalogWatchdog_AllRegEnable            ((uint32_t)0x00800000)\r
290 #define ADC_AnalogWatchdog_AllInjecEnable          ((uint32_t)0x00400000)\r
291 #define ADC_AnalogWatchdog_AllRegAllInjecEnable    ((uint32_t)0x00C00000)\r
292 #define ADC_AnalogWatchdog_None                    ((uint32_t)0x00000000)\r
293 \r
294 #define IS_ADC_ANALOG_WATCHDOG(WATCHDOG) (((WATCHDOG) == ADC_AnalogWatchdog_SingleRegEnable) || \\r
295                                           ((WATCHDOG) == ADC_AnalogWatchdog_SingleInjecEnable) || \\r
296                                           ((WATCHDOG) == ADC_AnalogWatchdog_SingleRegOrInjecEnable) || \\r
297                                           ((WATCHDOG) == ADC_AnalogWatchdog_AllRegEnable) || \\r
298                                           ((WATCHDOG) == ADC_AnalogWatchdog_AllInjecEnable) || \\r
299                                           ((WATCHDOG) == ADC_AnalogWatchdog_AllRegAllInjecEnable) || \\r
300                                           ((WATCHDOG) == ADC_AnalogWatchdog_None))\r
301 /**\r
302   * @}\r
303   */\r
304 \r
305 /** @defgroup ADC_interrupts_definition \r
306   * @{\r
307   */\r
308 \r
309 #define ADC_IT_EOC                                 ((uint16_t)0x0220)\r
310 #define ADC_IT_AWD                                 ((uint16_t)0x0140)\r
311 #define ADC_IT_JEOC                                ((uint16_t)0x0480)\r
312 \r
313 #define IS_ADC_IT(IT) ((((IT) & (uint16_t)0xF81F) == 0x00) && ((IT) != 0x00))\r
314 \r
315 #define IS_ADC_GET_IT(IT) (((IT) == ADC_IT_EOC) || ((IT) == ADC_IT_AWD) || \\r
316                            ((IT) == ADC_IT_JEOC))\r
317 /**\r
318   * @}\r
319   */\r
320 \r
321 /** @defgroup ADC_flags_definition \r
322   * @{\r
323   */\r
324 \r
325 #define ADC_FLAG_AWD                               ((uint8_t)0x01)\r
326 #define ADC_FLAG_EOC                               ((uint8_t)0x02)\r
327 #define ADC_FLAG_JEOC                              ((uint8_t)0x04)\r
328 #define ADC_FLAG_JSTRT                             ((uint8_t)0x08)\r
329 #define ADC_FLAG_STRT                              ((uint8_t)0x10)\r
330 #define IS_ADC_CLEAR_FLAG(FLAG) ((((FLAG) & (uint8_t)0xE0) == 0x00) && ((FLAG) != 0x00))\r
331 #define IS_ADC_GET_FLAG(FLAG) (((FLAG) == ADC_FLAG_AWD) || ((FLAG) == ADC_FLAG_EOC) || \\r
332                                ((FLAG) == ADC_FLAG_JEOC) || ((FLAG)== ADC_FLAG_JSTRT) || \\r
333                                ((FLAG) == ADC_FLAG_STRT))\r
334 /**\r
335   * @}\r
336   */\r
337 \r
338 /** @defgroup ADC_thresholds \r
339   * @{\r
340   */\r
341 \r
342 #define IS_ADC_THRESHOLD(THRESHOLD) ((THRESHOLD) <= 0xFFF)\r
343 \r
344 /**\r
345   * @}\r
346   */\r
347 \r
348 /** @defgroup ADC_injected_offset \r
349   * @{\r
350   */\r
351 \r
352 #define IS_ADC_OFFSET(OFFSET) ((OFFSET) <= 0xFFF)\r
353 \r
354 /**\r
355   * @}\r
356   */\r
357 \r
358 /** @defgroup ADC_injected_length \r
359   * @{\r
360   */\r
361 \r
362 #define IS_ADC_INJECTED_LENGTH(LENGTH) (((LENGTH) >= 0x1) && ((LENGTH) <= 0x4))\r
363 \r
364 /**\r
365   * @}\r
366   */\r
367 \r
368 /** @defgroup ADC_injected_rank \r
369   * @{\r
370   */\r
371 \r
372 #define IS_ADC_INJECTED_RANK(RANK) (((RANK) >= 0x1) && ((RANK) <= 0x4))\r
373 \r
374 /**\r
375   * @}\r
376   */ \r
377 \r
378 \r
379 /** @defgroup ADC_regular_length \r
380   * @{\r
381   */\r
382 \r
383 #define IS_ADC_REGULAR_LENGTH(LENGTH) (((LENGTH) >= 0x1) && ((LENGTH) <= 0x10))\r
384 /**\r
385   * @}\r
386   */\r
387 \r
388 /** @defgroup ADC_regular_rank \r
389   * @{\r
390   */\r
391 \r
392 #define IS_ADC_REGULAR_RANK(RANK) (((RANK) >= 0x1) && ((RANK) <= 0x10))\r
393 \r
394 /**\r
395   * @}\r
396   */\r
397 \r
398 /** @defgroup ADC_regular_discontinuous_mode_number \r
399   * @{\r
400   */\r
401 \r
402 #define IS_ADC_REGULAR_DISC_NUMBER(NUMBER) (((NUMBER) >= 0x1) && ((NUMBER) <= 0x8))\r
403 \r
404 /**\r
405   * @}\r
406   */\r
407 \r
408 /**\r
409   * @}\r
410   */\r
411 \r
412 /** @defgroup ADC_Exported_Macros\r
413   * @{\r
414   */\r
415 \r
416 /**\r
417   * @}\r
418   */\r
419 \r
420 /** @defgroup ADC_Exported_Functions\r
421   * @{\r
422   */\r
423 \r
424 void ADC_DeInit(ADC_TypeDef* ADCx);\r
425 void ADC_Init(ADC_TypeDef* ADCx, ADC_InitTypeDef* ADC_InitStruct);\r
426 void ADC_StructInit(ADC_InitTypeDef* ADC_InitStruct);\r
427 void ADC_Cmd(ADC_TypeDef* ADCx, FunctionalState NewState);\r
428 void ADC_DMACmd(ADC_TypeDef* ADCx, FunctionalState NewState);\r
429 void ADC_ITConfig(ADC_TypeDef* ADCx, uint16_t ADC_IT, FunctionalState NewState);\r
430 void ADC_ResetCalibration(ADC_TypeDef* ADCx);\r
431 FlagStatus ADC_GetResetCalibrationStatus(ADC_TypeDef* ADCx);\r
432 void ADC_StartCalibration(ADC_TypeDef* ADCx);\r
433 FlagStatus ADC_GetCalibrationStatus(ADC_TypeDef* ADCx);\r
434 void ADC_SoftwareStartConvCmd(ADC_TypeDef* ADCx, FunctionalState NewState);\r
435 FlagStatus ADC_GetSoftwareStartConvStatus(ADC_TypeDef* ADCx);\r
436 void ADC_DiscModeChannelCountConfig(ADC_TypeDef* ADCx, uint8_t Number);\r
437 void ADC_DiscModeCmd(ADC_TypeDef* ADCx, FunctionalState NewState);\r
438 void ADC_RegularChannelConfig(ADC_TypeDef* ADCx, uint8_t ADC_Channel, uint8_t Rank, uint8_t ADC_SampleTime);\r
439 void ADC_ExternalTrigConvCmd(ADC_TypeDef* ADCx, FunctionalState NewState);\r
440 uint16_t ADC_GetConversionValue(ADC_TypeDef* ADCx);\r
441 uint32_t ADC_GetDualModeConversionValue(void);\r
442 void ADC_AutoInjectedConvCmd(ADC_TypeDef* ADCx, FunctionalState NewState);\r
443 void ADC_InjectedDiscModeCmd(ADC_TypeDef* ADCx, FunctionalState NewState);\r
444 void ADC_ExternalTrigInjectedConvConfig(ADC_TypeDef* ADCx, uint32_t ADC_ExternalTrigInjecConv);\r
445 void ADC_ExternalTrigInjectedConvCmd(ADC_TypeDef* ADCx, FunctionalState NewState);\r
446 void ADC_SoftwareStartInjectedConvCmd(ADC_TypeDef* ADCx, FunctionalState NewState);\r
447 FlagStatus ADC_GetSoftwareStartInjectedConvCmdStatus(ADC_TypeDef* ADCx);\r
448 void ADC_InjectedChannelConfig(ADC_TypeDef* ADCx, uint8_t ADC_Channel, uint8_t Rank, uint8_t ADC_SampleTime);\r
449 void ADC_InjectedSequencerLengthConfig(ADC_TypeDef* ADCx, uint8_t Length);\r
450 void ADC_SetInjectedOffset(ADC_TypeDef* ADCx, uint8_t ADC_InjectedChannel, uint16_t Offset);\r
451 uint16_t ADC_GetInjectedConversionValue(ADC_TypeDef* ADCx, uint8_t ADC_InjectedChannel);\r
452 void ADC_AnalogWatchdogCmd(ADC_TypeDef* ADCx, uint32_t ADC_AnalogWatchdog);\r
453 void ADC_AnalogWatchdogThresholdsConfig(ADC_TypeDef* ADCx, uint16_t HighThreshold, uint16_t LowThreshold);\r
454 void ADC_AnalogWatchdogSingleChannelConfig(ADC_TypeDef* ADCx, uint8_t ADC_Channel);\r
455 void ADC_TempSensorVrefintCmd(FunctionalState NewState);\r
456 FlagStatus ADC_GetFlagStatus(ADC_TypeDef* ADCx, uint8_t ADC_FLAG);\r
457 void ADC_ClearFlag(ADC_TypeDef* ADCx, uint8_t ADC_FLAG);\r
458 ITStatus ADC_GetITStatus(ADC_TypeDef* ADCx, uint16_t ADC_IT);\r
459 void ADC_ClearITPendingBit(ADC_TypeDef* ADCx, uint16_t ADC_IT);\r
460 \r
461 #ifdef __cplusplus\r
462 }\r
463 #endif\r
464 \r
465 #endif /*__STM32F10x_ADC_H */\r
466 \r
467 /**\r
468   * @}\r
469   */\r
470 \r
471 /**\r
472   * @}\r
473   */\r
474 \r
475 /**\r
476   * @}\r
477   */\r
478 \r
479 /******************* (C) COPYRIGHT 2009 STMicroelectronics *****END OF FILE****/\r