1 /* USER CODE BEGIN Header */
2 /**
3 ******************************************************************************
4 * File Name : stm32f0xx_hal_msp.c
5 * Description : This file provides code for the MSP Initialization
6 * and de-Initialization codes.
7 ******************************************************************************
8 ** This notice applies to any and all portions of this file
9 * that are not between comment pairs USER CODE BEGIN and
10 * USER CODE END. Other portions of this file, whether
11 * inserted by the user or by software development tools
12 * are owned by their respective copyright owners.
13 *
14 * COPYRIGHT(c) 2018 STMicroelectronics
15 *
16 * Redistribution and use in source and binary forms, with or without modification,
17 * are permitted provided that the following conditions are met:
18 * 1. Redistributions of source code must retain the above copyright notice,
19 * this list of conditions and the following disclaimer.
20 * 2. Redistributions in binary form must reproduce the above copyright notice,
21 * this list of conditions and the following disclaimer in the documentation
22 * and/or other materials provided with the distribution.
23 * 3. Neither the name of STMicroelectronics nor the names of its contributors
24 * may be used to endorse or promote products derived from this software
25 * without specific prior written permission.
26 *
27 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
28 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
29 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
30 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
31 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
32 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
33 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
34 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
35 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
36 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37 *
38 ******************************************************************************
39 */
40 /* USER CODE END Header */
41
42 /* Includes ------------------------------------------------------------------*/
43 #include "main.h"
44 /* USER CODE BEGIN Includes */
45 #include <drv_common.h>
46 /* USER CODE END Includes */
47
48 /* Private typedef -----------------------------------------------------------*/
49 /* USER CODE BEGIN TD */
50
51 /* USER CODE END TD */
52
53 /* Private define ------------------------------------------------------------*/
54 /* USER CODE BEGIN Define */
55
56 /* USER CODE END Define */
57
58 /* Private macro -------------------------------------------------------------*/
59 /* USER CODE BEGIN Macro */
60
61 /* USER CODE END Macro */
62
63 /* Private variables ---------------------------------------------------------*/
64 /* USER CODE BEGIN PV */
65
66 /* USER CODE END PV */
67
68 /* Private function prototypes -----------------------------------------------*/
69 /* USER CODE BEGIN PFP */
70
71 /* USER CODE END PFP */
72
73 /* External functions --------------------------------------------------------*/
74 /* USER CODE BEGIN ExternalFunctions */
75
76 /* USER CODE END ExternalFunctions */
77
78 /* USER CODE BEGIN 0 */
79
80 /* USER CODE END 0 */
81
82 void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim);
83 /**
84 * Initializes the Global MSP.
85 */
HAL_MspInit(void)86 void HAL_MspInit(void)
87 {
88 /* USER CODE BEGIN MspInit 0 */
89
90 /* USER CODE END MspInit 0 */
91
92 __HAL_RCC_SYSCFG_CLK_ENABLE();
93 __HAL_RCC_PWR_CLK_ENABLE();
94
95 /* System interrupt init*/
96
97 /* USER CODE BEGIN MspInit 1 */
98
99 /* USER CODE END MspInit 1 */
100 }
101
102 /**
103 * @brief ADC MSP Initialization
104 * This function configures the hardware resources used in this example
105 * @param hadc: ADC handle pointer
106 * @retval None
107 */
HAL_ADC_MspInit(ADC_HandleTypeDef * hadc)108 void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc)
109 {
110 GPIO_InitTypeDef GPIO_InitStruct = {0};
111 if(hadc->Instance==ADC1)
112 {
113 /* USER CODE BEGIN ADC1_MspInit 0 */
114
115 /* USER CODE END ADC1_MspInit 0 */
116 /* Peripheral clock enable */
117 __HAL_RCC_ADC1_CLK_ENABLE();
118
119 __HAL_RCC_GPIOC_CLK_ENABLE();
120 __HAL_RCC_GPIOA_CLK_ENABLE();
121 __HAL_RCC_GPIOB_CLK_ENABLE();
122 /**ADC GPIO Configuration
123 PC0 ------> ADC_IN10
124 PC1 ------> ADC_IN11
125 PA0 ------> ADC_IN0
126 PA1 ------> ADC_IN1
127 PA4 ------> ADC_IN4
128 PB0 ------> ADC_IN8
129 */
130 GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1;
131 GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
132 GPIO_InitStruct.Pull = GPIO_NOPULL;
133 HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
134
135 GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_4;
136 GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
137 GPIO_InitStruct.Pull = GPIO_NOPULL;
138 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
139
140 GPIO_InitStruct.Pin = GPIO_PIN_0;
141 GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
142 GPIO_InitStruct.Pull = GPIO_NOPULL;
143 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
144
145 /* USER CODE BEGIN ADC1_MspInit 1 */
146
147 /* USER CODE END ADC1_MspInit 1 */
148 }
149
150 }
151
152 /**
153 * @brief ADC MSP De-Initialization
154 * This function freeze the hardware resources used in this example
155 * @param hadc: ADC handle pointer
156 * @retval None
157 */
HAL_ADC_MspDeInit(ADC_HandleTypeDef * hadc)158 void HAL_ADC_MspDeInit(ADC_HandleTypeDef* hadc)
159 {
160 if(hadc->Instance==ADC1)
161 {
162 /* USER CODE BEGIN ADC1_MspDeInit 0 */
163
164 /* USER CODE END ADC1_MspDeInit 0 */
165 /* Peripheral clock disable */
166 __HAL_RCC_ADC1_CLK_DISABLE();
167
168 /**ADC GPIO Configuration
169 PC0 ------> ADC_IN10
170 PC1 ------> ADC_IN11
171 PA0 ------> ADC_IN0
172 PA1 ------> ADC_IN1
173 PA4 ------> ADC_IN4
174 PB0 ------> ADC_IN8
175 */
176 HAL_GPIO_DeInit(GPIOC, GPIO_PIN_0|GPIO_PIN_1);
177
178 HAL_GPIO_DeInit(GPIOA, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_4);
179
180 HAL_GPIO_DeInit(GPIOB, GPIO_PIN_0);
181
182 /* USER CODE BEGIN ADC1_MspDeInit 1 */
183
184 /* USER CODE END ADC1_MspDeInit 1 */
185 }
186
187 }
188
189 /**
190 * @brief TIM_Base MSP Initialization
191 * This function configures the hardware resources used in this example
192 * @param htim_base: TIM_Base handle pointer
193 * @retval None
194 */
HAL_TIM_Base_MspInit(TIM_HandleTypeDef * htim_base)195 void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
196 {
197 if(htim_base->Instance==TIM2)
198 {
199 /* USER CODE BEGIN TIM2_MspInit 0 */
200
201 /* USER CODE END TIM2_MspInit 0 */
202 /* Peripheral clock enable */
203 __HAL_RCC_TIM2_CLK_ENABLE();
204 /* USER CODE BEGIN TIM2_MspInit 1 */
205
206 /* USER CODE END TIM2_MspInit 1 */
207 }
208 else if(htim_base->Instance==TIM3)
209 {
210 /* USER CODE BEGIN TIM3_MspInit 0 */
211
212 /* USER CODE END TIM3_MspInit 0 */
213 /* Peripheral clock enable */
214 __HAL_RCC_TIM3_CLK_ENABLE();
215 /* USER CODE BEGIN TIM3_MspInit 1 */
216
217 /* USER CODE END TIM3_MspInit 1 */
218 }
219 else if(htim_base->Instance==TIM7)
220 {
221 /* USER CODE BEGIN TIM7_MspInit 0 */
222
223 /* USER CODE END TIM7_MspInit 0 */
224 /* Peripheral clock enable */
225 __HAL_RCC_TIM7_CLK_ENABLE();
226 /* USER CODE BEGIN TIM7_MspInit 1 */
227
228 /* USER CODE END TIM7_MspInit 1 */
229 }
230 else if(htim_base->Instance==TIM16)
231 {
232 /* USER CODE BEGIN TIM16_MspInit 0 */
233
234 /* USER CODE END TIM16_MspInit 0 */
235 /* Peripheral clock enable */
236 __HAL_RCC_TIM16_CLK_ENABLE();
237 /* USER CODE BEGIN TIM16_MspInit 1 */
238
239 /* USER CODE END TIM16_MspInit 1 */
240 }
241 else if(htim_base->Instance==TIM17)
242 {
243 /* USER CODE BEGIN TIM17_MspInit 0 */
244
245 /* USER CODE END TIM17_MspInit 0 */
246 /* Peripheral clock enable */
247 __HAL_RCC_TIM17_CLK_ENABLE();
248 /* USER CODE BEGIN TIM17_MspInit 1 */
249
250 /* USER CODE END TIM17_MspInit 1 */
251 }
252
253 }
254
HAL_TIM_MspPostInit(TIM_HandleTypeDef * htim)255 void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim)
256 {
257 GPIO_InitTypeDef GPIO_InitStruct = {0};
258 if(htim->Instance==TIM2)
259 {
260 /* USER CODE BEGIN TIM2_MspPostInit 0 */
261
262 /* USER CODE END TIM2_MspPostInit 0 */
263 __HAL_RCC_GPIOB_CLK_ENABLE();
264 /**TIM2 GPIO Configuration
265 PB10 ------> TIM2_CH3
266 PB3 ------> TIM2_CH2
267 */
268 GPIO_InitStruct.Pin = GPIO_PIN_10|GPIO_PIN_3;
269 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
270 GPIO_InitStruct.Pull = GPIO_NOPULL;
271 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
272 GPIO_InitStruct.Alternate = GPIO_AF2_TIM2;
273 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
274
275 /* USER CODE BEGIN TIM2_MspPostInit 1 */
276
277 /* USER CODE END TIM2_MspPostInit 1 */
278 }
279 else if(htim->Instance==TIM3)
280 {
281 /* USER CODE BEGIN TIM3_MspPostInit 0 */
282
283 /* USER CODE END TIM3_MspPostInit 0 */
284
285 __HAL_RCC_GPIOC_CLK_ENABLE();
286 __HAL_RCC_GPIOB_CLK_ENABLE();
287 /**TIM3 GPIO Configuration
288 PC7 ------> TIM3_CH2
289 PB4 ------> TIM3_CH1
290 */
291 GPIO_InitStruct.Pin = GPIO_PIN_7;
292 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
293 GPIO_InitStruct.Pull = GPIO_NOPULL;
294 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
295 GPIO_InitStruct.Alternate = GPIO_AF0_TIM3;
296 HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
297
298 GPIO_InitStruct.Pin = GPIO_PIN_4;
299 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
300 GPIO_InitStruct.Pull = GPIO_NOPULL;
301 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
302 GPIO_InitStruct.Alternate = GPIO_AF1_TIM3;
303 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
304
305 /* USER CODE BEGIN TIM3_MspPostInit 1 */
306
307 /* USER CODE END TIM3_MspPostInit 1 */
308 }
309 else if(htim->Instance==TIM16)
310 {
311 /* USER CODE BEGIN TIM16_MspPostInit 0 */
312
313 /* USER CODE END TIM16_MspPostInit 0 */
314
315 __HAL_RCC_GPIOB_CLK_ENABLE();
316 /**TIM16 GPIO Configuration
317 PB6 ------> TIM16_CH1N
318 */
319 GPIO_InitStruct.Pin = GPIO_PIN_6;
320 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
321 GPIO_InitStruct.Pull = GPIO_NOPULL;
322 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
323 GPIO_InitStruct.Alternate = GPIO_AF2_TIM16;
324 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
325
326 /* USER CODE BEGIN TIM16_MspPostInit 1 */
327
328 /* USER CODE END TIM16_MspPostInit 1 */
329 }
330 else if(htim->Instance==TIM17)
331 {
332 /* USER CODE BEGIN TIM17_MspPostInit 0 */
333
334 /* USER CODE END TIM17_MspPostInit 0 */
335
336 __HAL_RCC_GPIOA_CLK_ENABLE();
337 /**TIM17 GPIO Configuration
338 PA7 ------> TIM17_CH1
339 */
340 GPIO_InitStruct.Pin = GPIO_PIN_7;
341 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
342 GPIO_InitStruct.Pull = GPIO_NOPULL;
343 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
344 GPIO_InitStruct.Alternate = GPIO_AF5_TIM17;
345 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
346
347 /* USER CODE BEGIN TIM17_MspPostInit 1 */
348
349 /* USER CODE END TIM17_MspPostInit 1 */
350 }
351
352 }
353 /**
354 * @brief TIM_Base MSP De-Initialization
355 * This function freeze the hardware resources used in this example
356 * @param htim_base: TIM_Base handle pointer
357 * @retval None
358 */
HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef * htim_base)359 void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base)
360 {
361 if(htim_base->Instance==TIM2)
362 {
363 /* USER CODE BEGIN TIM2_MspDeInit 0 */
364
365 /* USER CODE END TIM2_MspDeInit 0 */
366 /* Peripheral clock disable */
367 __HAL_RCC_TIM2_CLK_DISABLE();
368 /* USER CODE BEGIN TIM2_MspDeInit 1 */
369
370 /* USER CODE END TIM2_MspDeInit 1 */
371 }
372 else if(htim_base->Instance==TIM3)
373 {
374 /* USER CODE BEGIN TIM3_MspDeInit 0 */
375
376 /* USER CODE END TIM3_MspDeInit 0 */
377 /* Peripheral clock disable */
378 __HAL_RCC_TIM3_CLK_DISABLE();
379 /* USER CODE BEGIN TIM3_MspDeInit 1 */
380
381 /* USER CODE END TIM3_MspDeInit 1 */
382 }
383 else if(htim_base->Instance==TIM7)
384 {
385 /* USER CODE BEGIN TIM7_MspDeInit 0 */
386
387 /* USER CODE END TIM7_MspDeInit 0 */
388 /* Peripheral clock disable */
389 __HAL_RCC_TIM7_CLK_DISABLE();
390 /* USER CODE BEGIN TIM7_MspDeInit 1 */
391
392 /* USER CODE END TIM7_MspDeInit 1 */
393 }
394 else if(htim_base->Instance==TIM16)
395 {
396 /* USER CODE BEGIN TIM16_MspDeInit 0 */
397
398 /* USER CODE END TIM16_MspDeInit 0 */
399 /* Peripheral clock disable */
400 __HAL_RCC_TIM16_CLK_DISABLE();
401 /* USER CODE BEGIN TIM16_MspDeInit 1 */
402
403 /* USER CODE END TIM16_MspDeInit 1 */
404 }
405 else if(htim_base->Instance==TIM17)
406 {
407 /* USER CODE BEGIN TIM17_MspDeInit 0 */
408
409 /* USER CODE END TIM17_MspDeInit 0 */
410 /* Peripheral clock disable */
411 __HAL_RCC_TIM17_CLK_DISABLE();
412 /* USER CODE BEGIN TIM17_MspDeInit 1 */
413
414 /* USER CODE END TIM17_MspDeInit 1 */
415 }
416
417 }
418
419 /**
420 * @brief UART MSP Initialization
421 * This function configures the hardware resources used in this example
422 * @param huart: UART handle pointer
423 * @retval None
424 */
HAL_UART_MspInit(UART_HandleTypeDef * huart)425 void HAL_UART_MspInit(UART_HandleTypeDef* huart)
426 {
427 GPIO_InitTypeDef GPIO_InitStruct = {0};
428 if(huart->Instance==USART2)
429 {
430 /* USER CODE BEGIN USART2_MspInit 0 */
431
432 /* USER CODE END USART2_MspInit 0 */
433 /* Peripheral clock enable */
434 __HAL_RCC_USART2_CLK_ENABLE();
435
436 __HAL_RCC_GPIOA_CLK_ENABLE();
437 /**USART2 GPIO Configuration
438 PA2 ------> USART2_TX
439 PA3 ------> USART2_RX
440 */
441 GPIO_InitStruct.Pin = USART_TX_Pin|USART_RX_Pin;
442 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
443 GPIO_InitStruct.Pull = GPIO_PULLUP;
444 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
445 GPIO_InitStruct.Alternate = GPIO_AF1_USART2;
446 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
447
448 /* USER CODE BEGIN USART2_MspInit 1 */
449
450 /* USER CODE END USART2_MspInit 1 */
451 }
452
453 }
454
455 /**
456 * @brief UART MSP De-Initialization
457 * This function freeze the hardware resources used in this example
458 * @param huart: UART handle pointer
459 * @retval None
460 */
HAL_UART_MspDeInit(UART_HandleTypeDef * huart)461 void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
462 {
463 if(huart->Instance==USART2)
464 {
465 /* USER CODE BEGIN USART2_MspDeInit 0 */
466
467 /* USER CODE END USART2_MspDeInit 0 */
468 /* Peripheral clock disable */
469 __HAL_RCC_USART2_CLK_DISABLE();
470
471 /**USART2 GPIO Configuration
472 PA2 ------> USART2_TX
473 PA3 ------> USART2_RX
474 */
475 HAL_GPIO_DeInit(GPIOA, USART_TX_Pin|USART_RX_Pin);
476
477 /* USER CODE BEGIN USART2_MspDeInit 1 */
478
479 /* USER CODE END USART2_MspDeInit 1 */
480 }
481
482 }
483
484 /* USER CODE BEGIN 1 */
485
486 /* USER CODE END 1 */
487