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  * 2018-12-06     zylx         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_DIV4,      \
26         .Init.Resolution               = ADC_RESOLUTION_16B,            \
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_DIV4,      \
49         .Init.Resolution               = ADC_RESOLUTION_16B,            \
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_DIV4,      \
72         .Init.Resolution               = ADC_RESOLUTION_16B,            \
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