1 /*
2  * Copyright (c) 2006-2023, RT-Thread Development Team
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  *
6  * Change Logs:
7  * Date           Author       Notes
8  * 2020-06-16     thread-liu   first version
9  */
10 
11 #ifndef __ADC_CONFIG_H__
12 #define __ADC_CONFIG_H__
13 
14 #include <rtthread.h>
15 
16 #ifdef __cplusplus
17 extern "C" {
18 #endif
19 
20 #ifdef BSP_USING_ADC1
21 #ifndef ADC1_CONFIG
22 #define ADC1_CONFIG                                                    \
23     {                                                                  \
24        .Instance                      = ADC1,                          \
25        .Init.ClockPrescaler           = ADC_CLOCK_SYNC_PCLK_DIV2,      \
26        .Init.Resolution               = ADC_RESOLUTION_12B,            \
27        .Init.ScanConvMode             = ADC_SCAN_DISABLE,              \
28        .Init.EOCSelection             = ADC_EOC_SINGLE_CONV,           \
29        .Init.LowPowerAutoWait         = DISABLE,                       \
30        .Init.ContinuousConvMode       = DISABLE,                       \
31        .Init.NbrOfConversion          = 1,                             \
32        .Init.DiscontinuousConvMode    = DISABLE,                       \
33        .Init.NbrOfDiscConversion      = 1,                             \
34        .Init.ExternalTrigConv         = ADC_SOFTWARE_START,            \
35        .Init.ExternalTrigConvEdge     = ADC_EXTERNALTRIGCONVEDGE_NONE, \
36        .Init.ConversionDataManagement = ADC_CONVERSIONDATA_DR,         \
37        .Init.Overrun                  = ADC_OVR_DATA_OVERWRITTEN,      \
38        .Init.OversamplingMode         = DISABLE,                       \
39     }
40 #endif /* ADC1_CONFIG */
41 #endif /* BSP_USING_ADC1 */
42 
43 #ifdef BSP_USING_ADC2
44 #ifndef ADC2_CONFIG
45 #define ADC2_CONFIG                                                    \
46     {                                                                  \
47        .Instance                      = ADC2,                          \
48        .Init.ClockPrescaler           = ADC_CLOCK_SYNC_PCLK_DIV2,      \
49        .Init.Resolution               = ADC_RESOLUTION_12B,            \
50        .Init.ScanConvMode             = ADC_SCAN_DISABLE,              \
51        .Init.EOCSelection             = ADC_EOC_SINGLE_CONV,           \
52        .Init.LowPowerAutoWait         = DISABLE,                       \
53        .Init.ContinuousConvMode       = DISABLE,                       \
54        .Init.NbrOfConversion          = 1,                             \
55        .Init.DiscontinuousConvMode    = DISABLE,                       \
56        .Init.NbrOfDiscConversion      = 1,                             \
57        .Init.ExternalTrigConv         = ADC_SOFTWARE_START,            \
58        .Init.ExternalTrigConvEdge     = ADC_EXTERNALTRIGCONVEDGE_NONE, \
59        .Init.ConversionDataManagement = ADC_CONVERSIONDATA_DR,         \
60        .Init.Overrun                  = ADC_OVR_DATA_OVERWRITTEN,      \
61        .Init.OversamplingMode         = DISABLE,                       \
62     }
63 #endif /* ADC2_CONFIG */
64 #endif /* BSP_USING_ADC2 */
65 
66 #ifdef BSP_USING_ADC3
67 #ifndef ADC3_CONFIG
68 #define ADC3_CONFIG                                                    \
69     {                                                                  \
70        .Instance                      = ADC3,                          \
71        .Init.ClockPrescaler           = ADC_CLOCK_SYNC_PCLK_DIV2,      \
72        .Init.Resolution               = ADC_RESOLUTION_12B,            \
73        .Init.ScanConvMode             = ADC_SCAN_DISABLE,              \
74        .Init.EOCSelection             = ADC_EOC_SINGLE_CONV,           \
75        .Init.LowPowerAutoWait         = DISABLE,                       \
76        .Init.ContinuousConvMode       = DISABLE,                       \
77        .Init.NbrOfConversion          = 1,                             \
78        .Init.DiscontinuousConvMode    = DISABLE,                       \
79        .Init.NbrOfDiscConversion      = 1,                             \
80        .Init.ExternalTrigConv         = ADC_SOFTWARE_START,            \
81        .Init.ExternalTrigConvEdge     = ADC_EXTERNALTRIGCONVEDGE_NONE, \
82        .Init.ConversionDataManagement = ADC_CONVERSIONDATA_DR,         \
83        .Init.Overrun                  = ADC_OVR_DATA_OVERWRITTEN,      \
84        .Init.OversamplingMode         = DISABLE,                       \
85     }
86 #endif /* ADC3_CONFIG */
87 #endif /* BSP_USING_ADC3 */
88 
89 #ifdef __cplusplus
90 }
91 #endif
92 
93 #endif /* __ADC_CONFIG_H__ */
94