1 /*
2  * Copyright (c) 2006-2024, RT-Thread Development Team
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  *
6  * Change Logs:
7  * Date           Author       Notes
8  * 2024-01-19     ChuShicheng  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_ASYNC_DIV2,          \
26         .Init.Resolution               = ADC_RESOLUTION_12B,            \
27         .Init.DataAlign                = ADC_DATAALIGN_RIGHT,           \
28         .Init.ScanConvMode             = ADC_SCAN_DISABLE,              \
29         .Init.EOCSelection             = ADC_EOC_SINGLE_CONV,           \
30         .Init.LowPowerAutoWait         = DISABLE,                       \
31         .Init.ContinuousConvMode       = DISABLE,                       \
32         .Init.NbrOfConversion          = 1,                             \
33         .Init.DiscontinuousConvMode    = DISABLE,                       \
34         .Init.ExternalTrigConv         = ADC_SOFTWARE_START,            \
35         .Init.ExternalTrigConvEdge     = ADC_EXTERNALTRIGCONVEDGE_NONE, \
36         .Init.DMAContinuousRequests    = DISABLE,                       \
37         .Init.SamplingMode             = ADC_SAMPLING_MODE_NORMAL,      \
38         .Init.Overrun                  = ADC_OVR_DATA_PRESERVED,        \
39         .Init.OversamplingMode         = DISABLE,                       \
40     }
41 #endif /* ADC1_CONFIG */
42 #endif /* BSP_USING_ADC1 */
43 
44 #ifdef BSP_USING_ADC2
45 #ifndef ADC2_CONFIG
46 #define ADC2_CONFIG                                                     \
47     {                                                                   \
48         .Instance                      = ADC2,                          \
49         .Init.ClockPrescaler           = ADC_CLOCK_ASYNC_DIV2,          \
50         .Init.Resolution               = ADC_RESOLUTION_12B,            \
51         .Init.DataAlign                = ADC_DATAALIGN_RIGHT,           \
52         .Init.ScanConvMode             = ADC_SCAN_DISABLE,              \
53         .Init.EOCSelection             = ADC_EOC_SINGLE_CONV,           \
54         .Init.LowPowerAutoWait         = DISABLE,                       \
55         .Init.ContinuousConvMode       = DISABLE,                       \
56         .Init.NbrOfConversion          = 1,                             \
57         .Init.DiscontinuousConvMode    = DISABLE,                       \
58         .Init.ExternalTrigConv         = ADC_SOFTWARE_START,            \
59         .Init.ExternalTrigConvEdge     = ADC_EXTERNALTRIGCONVEDGE_NONE, \
60         .Init.DMAContinuousRequests    = DISABLE,                       \
61         .Init.SamplingMode             = ADC_SAMPLING_MODE_NORMAL,      \
62         .Init.Overrun                  = ADC_OVR_DATA_PRESERVED,        \
63         .Init.OversamplingMode         = DISABLE,                       \
64     }
65 #endif /* ADC2_CONFIG */
66 #endif /* BSP_USING_ADC2 */
67 
68 #ifdef __cplusplus
69 }
70 #endif
71 
72 #endif /* __ADC_CONFIG_H__ */
73