1 | /* Includes
|
2 | ------------------------------------------------------------------*/
|
3 | #include "main.h"
|
4 | #include "stm32l4xx_hal.h"
|
5 |
|
6 | /* USER CODE BEGIN Includes */
|
7 |
|
8 | /* USER CODE END Includes */
|
9 |
|
10 | /* Private variables
|
11 | ---------------------------------------------------------*/
|
12 | ADC_HandleTypeDef hadc1;
|
13 |
|
14 | TIM_HandleTypeDef htim1;
|
15 |
|
16 | /* USER CODE BEGIN PV */
|
17 | /* Private variables
|
18 | ---------------------------------------------------------*/
|
19 | uint16_t adcValue;
|
20 | /* USER CODE END PV */
|
21 |
|
22 | /* Private function prototypes
|
23 | -----------------------------------------------*/
|
24 | void SystemClock_Config(void);
|
25 | static void MX_GPIO_Init(void);
|
26 | static void MX_TIM1_Init(void);
|
27 | static void MX_ADC1_Init(void);
|
28 |
|
29 | void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim);
|
30 |
|
31 |
|
32 | /* USER CODE BEGIN PFP */
|
33 | /* Private function prototypes
|
34 | -----------------------------------------------*/
|
35 |
|
36 | /* USER CODE END PFP */
|
37 |
|
38 | /* USER CODE BEGIN 0 */
|
39 |
|
40 | /* USER CODE END 0 */
|
41 |
|
42 | int main(void)
|
43 | {
|
44 |
|
45 | /* USER CODE BEGIN 1 */
|
46 |
|
47 | /* USER CODE END 1 */
|
48 |
|
49 | /* MCU
|
50 | Configuration----------------------------------------------------------*/
|
51 |
|
52 | /* Reset of all peripherals, Initializes the Flash interface and the
|
53 | Systick. */
|
54 | HAL_Init();
|
55 |
|
56 | /* USER CODE BEGIN Init */
|
57 |
|
58 | /* USER CODE END Init */
|
59 |
|
60 | /* Configure the system clock */
|
61 | SystemClock_Config();
|
62 |
|
63 | /* USER CODE BEGIN SysInit */
|
64 |
|
65 | /* USER CODE END SysInit */
|
66 |
|
67 | /* Initialize all configured peripherals */
|
68 | MX_GPIO_Init();
|
69 | MX_TIM1_Init();
|
70 | MX_ADC1_Init();
|
71 |
|
72 | /* USER CODE BEGIN 2 */
|
73 | HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_1);
|
74 | ADC_Enable(&hadc1);
|
75 | HAL_ADC_Start(&hadc1);
|
76 |
|
77 | /* USER CODE END 2 */
|
78 |
|
79 | /* Infinite loop */
|
80 | /* USER CODE BEGIN WHILE */
|
81 | while (1)
|
82 | {
|
83 | if(HAL_ADC_PollForConversion(&hadc1, 10) == HAL_OK)
|
84 | {
|
85 | adcValue = HAL_ADC_GetValue(&hadc1);
|
86 | TIM1->CCR1 = adcValue;
|
87 | }
|
88 |
|
89 | /* USER CODE END WHILE */
|
90 |
|
91 | /* USER CODE BEGIN 3 */
|
92 |
|
93 | }
|
94 | /* USER CODE END 3 */
|
95 |
|
96 | }
|
97 |
|
98 | Hier der ADC
|
99 |
|
100 |
|
101 | static void MX_ADC1_Init(void)
|
102 | {
|
103 |
|
104 | ADC_MultiModeTypeDef multimode;
|
105 | ADC_ChannelConfTypeDef sConfig;
|
106 |
|
107 | /**Common config
|
108 | */
|
109 | hadc1.Instance = ADC1;
|
110 | hadc1.Init.ClockPrescaler = ADC_CLOCK_ASYNC_DIV1;
|
111 | hadc1.Init.Resolution = ADC_RESOLUTION_12B;
|
112 | hadc1.Init.DataAlign = ADC_DATAALIGN_RIGHT;
|
113 | hadc1.Init.ScanConvMode = ADC_SCAN_DISABLE;
|
114 | hadc1.Init.EOCSelection = ADC_EOC_SINGLE_CONV;
|
115 | hadc1.Init.LowPowerAutoWait = DISABLE;
|
116 | hadc1.Init.ContinuousConvMode = ENABLE;
|
117 | hadc1.Init.NbrOfConversion = 1;
|
118 | hadc1.Init.DiscontinuousConvMode = DISABLE;
|
119 | hadc1.Init.NbrOfDiscConversion = 1;
|
120 | hadc1.Init.ExternalTrigConv = ADC_SOFTWARE_START;
|
121 | hadc1.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE;
|
122 | hadc1.Init.DMAContinuousRequests = DISABLE;
|
123 | hadc1.Init.Overrun = ADC_OVR_DATA_PRESERVED;
|
124 | hadc1.Init.OversamplingMode = DISABLE;
|
125 | if (HAL_ADC_Init(&hadc1) != HAL_OK)
|
126 | {
|
127 | _Error_Handler(__FILE__, __LINE__);
|
128 | }
|
129 |
|
130 | /**Configure the ADC multi-mode
|
131 | */
|
132 | multimode.Mode = ADC_MODE_INDEPENDENT;
|
133 | if (HAL_ADCEx_MultiModeConfigChannel(&hadc1, &multimode) != HAL_OK)
|
134 | {
|
135 | _Error_Handler(__FILE__, __LINE__);
|
136 | }
|
137 |
|
138 | /**Configure Regular Channel
|
139 | */
|
140 | sConfig.Channel = ADC_CHANNEL_1;
|
141 | sConfig.Rank = 1;
|
142 | sConfig.SamplingTime = ADC_SAMPLETIME_2CYCLES_5;
|
143 | sConfig.SingleDiff = ADC_SINGLE_ENDED;
|
144 | sConfig.OffsetNumber = ADC_OFFSET_NONE;
|
145 | sConfig.Offset = 0;
|
146 | if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
|
147 | {
|
148 | _Error_Handler(__FILE__, __LINE__);
|
149 | }
|
150 |
|
151 | }
|