1 /* USER CODE BEGIN Header */
2 /**
3 ******************************************************************************
4 * File Name : stm32l4xx_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 RCC_PeriphCLKInitTypeDef PeriphClkInit = {0};
112 if(hadc->Instance==ADC1)
113 {
114 /* USER CODE BEGIN ADC1_MspInit 0 */
115
116 /* USER CODE END ADC1_MspInit 0 */
117
118 /** Initializes the peripherals clock
119 */
120 PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_ADC;
121 PeriphClkInit.AdcClockSelection = RCC_ADCCLKSOURCE_PLLSAI1;
122 PeriphClkInit.PLLSAI1.PLLSAI1Source = RCC_PLLSOURCE_HSI;
123 PeriphClkInit.PLLSAI1.PLLSAI1M = 1;
124 PeriphClkInit.PLLSAI1.PLLSAI1N = 8;
125 PeriphClkInit.PLLSAI1.PLLSAI1P = RCC_PLLP_DIV7;
126 PeriphClkInit.PLLSAI1.PLLSAI1Q = RCC_PLLQ_DIV2;
127 PeriphClkInit.PLLSAI1.PLLSAI1R = RCC_PLLR_DIV2;
128 PeriphClkInit.PLLSAI1.PLLSAI1ClockOut = RCC_PLLSAI1_ADC1CLK;
129 if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
130 {
131 Error_Handler();
132 }
133
134 /* Peripheral clock enable */
135 __HAL_RCC_ADC_CLK_ENABLE();
136
137 __HAL_RCC_GPIOC_CLK_ENABLE();
138 __HAL_RCC_GPIOA_CLK_ENABLE();
139 __HAL_RCC_GPIOB_CLK_ENABLE();
140 /**ADC1 GPIO Configuration
141 PC0 ------> ADC1_IN1
142 PC1 ------> ADC1_IN2
143 PA0 ------> ADC1_IN5
144 PA1 ------> ADC1_IN6
145 PA4 ------> ADC1_IN9
146 PB0 ------> ADC1_IN15
147 */
148 GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1;
149 GPIO_InitStruct.Mode = GPIO_MODE_ANALOG_ADC_CONTROL;
150 GPIO_InitStruct.Pull = GPIO_NOPULL;
151 HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
152
153 GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_4;
154 GPIO_InitStruct.Mode = GPIO_MODE_ANALOG_ADC_CONTROL;
155 GPIO_InitStruct.Pull = GPIO_NOPULL;
156 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
157
158 GPIO_InitStruct.Pin = GPIO_PIN_0;
159 GPIO_InitStruct.Mode = GPIO_MODE_ANALOG_ADC_CONTROL;
160 GPIO_InitStruct.Pull = GPIO_NOPULL;
161 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
162
163 /* USER CODE BEGIN ADC1_MspInit 1 */
164
165 /* USER CODE END ADC1_MspInit 1 */
166 }
167
168 }
169
170 /**
171 * @brief ADC MSP De-Initialization
172 * This function freeze the hardware resources used in this example
173 * @param hadc: ADC handle pointer
174 * @retval None
175 */
HAL_ADC_MspDeInit(ADC_HandleTypeDef * hadc)176 void HAL_ADC_MspDeInit(ADC_HandleTypeDef* hadc)
177 {
178 if(hadc->Instance==ADC1)
179 {
180 /* USER CODE BEGIN ADC1_MspDeInit 0 */
181
182 /* USER CODE END ADC1_MspDeInit 0 */
183 /* Peripheral clock disable */
184 __HAL_RCC_ADC_CLK_DISABLE();
185
186 /**ADC1 GPIO Configuration
187 PC0 ------> ADC1_IN1
188 PC1 ------> ADC1_IN2
189 PA0 ------> ADC1_IN5
190 PA1 ------> ADC1_IN6
191 PA4 ------> ADC1_IN9
192 PB0 ------> ADC1_IN15
193 */
194 HAL_GPIO_DeInit(GPIOC, GPIO_PIN_0|GPIO_PIN_1);
195
196 HAL_GPIO_DeInit(GPIOA, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_4);
197
198 HAL_GPIO_DeInit(GPIOB, GPIO_PIN_0);
199
200 /* USER CODE BEGIN ADC1_MspDeInit 1 */
201
202 /* USER CODE END ADC1_MspDeInit 1 */
203 }
204
205 }
206
207 /**
208 * @brief LPTIM MSP Initialization
209 * This function configures the hardware resources used in this example
210 * @param hlptim: LPTIM handle pointer
211 * @retval None
212 */
HAL_LPTIM_MspInit(LPTIM_HandleTypeDef * hlptim)213 void HAL_LPTIM_MspInit(LPTIM_HandleTypeDef* hlptim)
214 {
215 RCC_PeriphCLKInitTypeDef PeriphClkInit = {0};
216 if(hlptim->Instance==LPTIM1)
217 {
218 /* USER CODE BEGIN LPTIM1_MspInit 0 */
219
220 /* USER CODE END LPTIM1_MspInit 0 */
221
222 /** Initializes the peripherals clock
223 */
224 PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_LPTIM1;
225 PeriphClkInit.Lptim1ClockSelection = RCC_LPTIM1CLKSOURCE_PCLK;
226 if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
227 {
228 Error_Handler();
229 }
230
231 /* Peripheral clock enable */
232 __HAL_RCC_LPTIM1_CLK_ENABLE();
233 /* USER CODE BEGIN LPTIM1_MspInit 1 */
234
235 /* USER CODE END LPTIM1_MspInit 1 */
236 }
237
238 }
239
240 /**
241 * @brief LPTIM MSP De-Initialization
242 * This function freeze the hardware resources used in this example
243 * @param hlptim: LPTIM handle pointer
244 * @retval None
245 */
HAL_LPTIM_MspDeInit(LPTIM_HandleTypeDef * hlptim)246 void HAL_LPTIM_MspDeInit(LPTIM_HandleTypeDef* hlptim)
247 {
248 if(hlptim->Instance==LPTIM1)
249 {
250 /* USER CODE BEGIN LPTIM1_MspDeInit 0 */
251
252 /* USER CODE END LPTIM1_MspDeInit 0 */
253 /* Peripheral clock disable */
254 __HAL_RCC_LPTIM1_CLK_DISABLE();
255 /* USER CODE BEGIN LPTIM1_MspDeInit 1 */
256
257 /* USER CODE END LPTIM1_MspDeInit 1 */
258 }
259
260 }
261
262 /**
263 * @brief RTC MSP Initialization
264 * This function configures the hardware resources used in this example
265 * @param hrtc: RTC handle pointer
266 * @retval None
267 */
HAL_RTC_MspInit(RTC_HandleTypeDef * hrtc)268 void HAL_RTC_MspInit(RTC_HandleTypeDef* hrtc)
269 {
270 RCC_PeriphCLKInitTypeDef PeriphClkInit = {0};
271 if(hrtc->Instance==RTC)
272 {
273 /* USER CODE BEGIN RTC_MspInit 0 */
274
275 /* USER CODE END RTC_MspInit 0 */
276
277 /** Initializes the peripherals clock
278 */
279 PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_RTC;
280 PeriphClkInit.RTCClockSelection = RCC_RTCCLKSOURCE_LSE;
281 if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
282 {
283 Error_Handler();
284 }
285
286 /* Peripheral clock enable */
287 __HAL_RCC_RTC_ENABLE();
288 /* USER CODE BEGIN RTC_MspInit 1 */
289
290 /* USER CODE END RTC_MspInit 1 */
291 }
292
293 }
294
295 /**
296 * @brief RTC MSP De-Initialization
297 * This function freeze the hardware resources used in this example
298 * @param hrtc: RTC handle pointer
299 * @retval None
300 */
HAL_RTC_MspDeInit(RTC_HandleTypeDef * hrtc)301 void HAL_RTC_MspDeInit(RTC_HandleTypeDef* hrtc)
302 {
303 if(hrtc->Instance==RTC)
304 {
305 /* USER CODE BEGIN RTC_MspDeInit 0 */
306
307 /* USER CODE END RTC_MspDeInit 0 */
308 /* Peripheral clock disable */
309 __HAL_RCC_RTC_DISABLE();
310 /* USER CODE BEGIN RTC_MspDeInit 1 */
311
312 /* USER CODE END RTC_MspDeInit 1 */
313 }
314
315 }
316
317 /**
318 * @brief SPI MSP Initialization
319 * This function configures the hardware resources used in this example
320 * @param hspi: SPI handle pointer
321 * @retval None
322 */
HAL_SPI_MspInit(SPI_HandleTypeDef * hspi)323 void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi)
324 {
325 GPIO_InitTypeDef GPIO_InitStruct = {0};
326 if(hspi->Instance==SPI3)
327 {
328 /* USER CODE BEGIN SPI3_MspInit 0 */
329
330 /* USER CODE END SPI3_MspInit 0 */
331 /* Peripheral clock enable */
332 __HAL_RCC_SPI3_CLK_ENABLE();
333
334 __HAL_RCC_GPIOC_CLK_ENABLE();
335 /**SPI3 GPIO Configuration
336 PC10 ------> SPI3_SCK
337 PC11 ------> SPI3_MISO
338 PC12 ------> SPI3_MOSI
339 */
340 GPIO_InitStruct.Pin = GPIO_PIN_10|GPIO_PIN_11|GPIO_PIN_12;
341 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
342 GPIO_InitStruct.Pull = GPIO_NOPULL;
343 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
344 GPIO_InitStruct.Alternate = GPIO_AF6_SPI3;
345 HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
346
347 /* USER CODE BEGIN SPI3_MspInit 1 */
348
349 /* USER CODE END SPI3_MspInit 1 */
350 }
351
352 }
353
354 /**
355 * @brief SPI MSP De-Initialization
356 * This function freeze the hardware resources used in this example
357 * @param hspi: SPI handle pointer
358 * @retval None
359 */
HAL_SPI_MspDeInit(SPI_HandleTypeDef * hspi)360 void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi)
361 {
362 if(hspi->Instance==SPI3)
363 {
364 /* USER CODE BEGIN SPI3_MspDeInit 0 */
365
366 /* USER CODE END SPI3_MspDeInit 0 */
367 /* Peripheral clock disable */
368 __HAL_RCC_SPI3_CLK_DISABLE();
369
370 /**SPI3 GPIO Configuration
371 PC10 ------> SPI3_SCK
372 PC11 ------> SPI3_MISO
373 PC12 ------> SPI3_MOSI
374 */
375 HAL_GPIO_DeInit(GPIOC, GPIO_PIN_10|GPIO_PIN_11|GPIO_PIN_12);
376
377 /* USER CODE BEGIN SPI3_MspDeInit 1 */
378
379 /* USER CODE END SPI3_MspDeInit 1 */
380 }
381
382 }
383
384 /**
385 * @brief TIM_PWM MSP Initialization
386 * This function configures the hardware resources used in this example
387 * @param htim_pwm: TIM_PWM handle pointer
388 * @retval None
389 */
HAL_TIM_PWM_MspInit(TIM_HandleTypeDef * htim_pwm)390 void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef* htim_pwm)
391 {
392 if(htim_pwm->Instance==TIM2)
393 {
394 /* USER CODE BEGIN TIM2_MspInit 0 */
395
396 /* USER CODE END TIM2_MspInit 0 */
397 /* Peripheral clock enable */
398 __HAL_RCC_TIM2_CLK_ENABLE();
399 /* USER CODE BEGIN TIM2_MspInit 1 */
400
401 /* USER CODE END TIM2_MspInit 1 */
402 }
403 else if(htim_pwm->Instance==TIM3)
404 {
405 /* USER CODE BEGIN TIM3_MspInit 0 */
406
407 /* USER CODE END TIM3_MspInit 0 */
408 /* Peripheral clock enable */
409 __HAL_RCC_TIM3_CLK_ENABLE();
410 /* USER CODE BEGIN TIM3_MspInit 1 */
411
412 /* USER CODE END TIM3_MspInit 1 */
413 }
414 else if(htim_pwm->Instance==TIM4)
415 {
416 /* USER CODE BEGIN TIM4_MspInit 0 */
417
418 /* USER CODE END TIM4_MspInit 0 */
419 /* Peripheral clock enable */
420 __HAL_RCC_TIM4_CLK_ENABLE();
421 /* USER CODE BEGIN TIM4_MspInit 1 */
422
423 /* USER CODE END TIM4_MspInit 1 */
424 }
425
426 }
427
428 /**
429 * @brief TIM_Base MSP Initialization
430 * This function configures the hardware resources used in this example
431 * @param htim_base: TIM_Base handle pointer
432 * @retval None
433 */
HAL_TIM_Base_MspInit(TIM_HandleTypeDef * htim_base)434 void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
435 {
436 if(htim_base->Instance==TIM7)
437 {
438 /* USER CODE BEGIN TIM7_MspInit 0 */
439
440 /* USER CODE END TIM7_MspInit 0 */
441 /* Peripheral clock enable */
442 __HAL_RCC_TIM7_CLK_ENABLE();
443 /* USER CODE BEGIN TIM7_MspInit 1 */
444
445 /* USER CODE END TIM7_MspInit 1 */
446 }
447 else if(htim_base->Instance==TIM15)
448 {
449 /* USER CODE BEGIN TIM15_MspInit 0 */
450
451 /* USER CODE END TIM15_MspInit 0 */
452 /* Peripheral clock enable */
453 __HAL_RCC_TIM15_CLK_ENABLE();
454 /* USER CODE BEGIN TIM15_MspInit 1 */
455
456 /* USER CODE END TIM15_MspInit 1 */
457 }
458 else if(htim_base->Instance==TIM16)
459 {
460 /* USER CODE BEGIN TIM16_MspInit 0 */
461
462 /* USER CODE END TIM16_MspInit 0 */
463 /* Peripheral clock enable */
464 __HAL_RCC_TIM16_CLK_ENABLE();
465 /* USER CODE BEGIN TIM16_MspInit 1 */
466
467 /* USER CODE END TIM16_MspInit 1 */
468 }
469 else if(htim_base->Instance==TIM17)
470 {
471 /* USER CODE BEGIN TIM17_MspInit 0 */
472
473 /* USER CODE END TIM17_MspInit 0 */
474 /* Peripheral clock enable */
475 __HAL_RCC_TIM17_CLK_ENABLE();
476 /* USER CODE BEGIN TIM17_MspInit 1 */
477
478 /* USER CODE END TIM17_MspInit 1 */
479 }
480
481 }
482
HAL_TIM_MspPostInit(TIM_HandleTypeDef * htim)483 void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim)
484 {
485 GPIO_InitTypeDef GPIO_InitStruct = {0};
486 if(htim->Instance==TIM2)
487 {
488 /* USER CODE BEGIN TIM2_MspPostInit 0 */
489
490 /* USER CODE END TIM2_MspPostInit 0 */
491 __HAL_RCC_GPIOB_CLK_ENABLE();
492 /**TIM2 GPIO Configuration
493 PB10 ------> TIM2_CH3
494 PB3 (JTDO-TRACESWO) ------> TIM2_CH2
495 */
496 GPIO_InitStruct.Pin = GPIO_PIN_10|GPIO_PIN_3;
497 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
498 GPIO_InitStruct.Pull = GPIO_NOPULL;
499 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
500 GPIO_InitStruct.Alternate = GPIO_AF1_TIM2;
501 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
502
503 /* USER CODE BEGIN TIM2_MspPostInit 1 */
504
505 /* USER CODE END TIM2_MspPostInit 1 */
506 }
507 else if(htim->Instance==TIM3)
508 {
509 /* USER CODE BEGIN TIM3_MspPostInit 0 */
510
511 /* USER CODE END TIM3_MspPostInit 0 */
512
513 __HAL_RCC_GPIOC_CLK_ENABLE();
514 __HAL_RCC_GPIOB_CLK_ENABLE();
515 /**TIM3 GPIO Configuration
516 PC7 ------> TIM3_CH2
517 PB4 (NJTRST) ------> TIM3_CH1
518 */
519 GPIO_InitStruct.Pin = GPIO_PIN_7;
520 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
521 GPIO_InitStruct.Pull = GPIO_NOPULL;
522 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
523 GPIO_InitStruct.Alternate = GPIO_AF2_TIM3;
524 HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
525
526 GPIO_InitStruct.Pin = GPIO_PIN_4;
527 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
528 GPIO_InitStruct.Pull = GPIO_NOPULL;
529 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
530 GPIO_InitStruct.Alternate = GPIO_AF2_TIM3;
531 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
532
533 /* USER CODE BEGIN TIM3_MspPostInit 1 */
534
535 /* USER CODE END TIM3_MspPostInit 1 */
536 }
537 else if(htim->Instance==TIM4)
538 {
539 /* USER CODE BEGIN TIM4_MspPostInit 0 */
540
541 /* USER CODE END TIM4_MspPostInit 0 */
542
543 __HAL_RCC_GPIOB_CLK_ENABLE();
544 /**TIM4 GPIO Configuration
545 PB6 ------> TIM4_CH1
546 */
547 GPIO_InitStruct.Pin = GPIO_PIN_6;
548 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
549 GPIO_InitStruct.Pull = GPIO_NOPULL;
550 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
551 GPIO_InitStruct.Alternate = GPIO_AF2_TIM4;
552 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
553
554 /* USER CODE BEGIN TIM4_MspPostInit 1 */
555
556 /* USER CODE END TIM4_MspPostInit 1 */
557 }
558 else if(htim->Instance==TIM17)
559 {
560 /* USER CODE BEGIN TIM17_MspPostInit 0 */
561
562 /* USER CODE END TIM17_MspPostInit 0 */
563
564 __HAL_RCC_GPIOA_CLK_ENABLE();
565 /**TIM17 GPIO Configuration
566 PA7 ------> TIM17_CH1
567 */
568 GPIO_InitStruct.Pin = GPIO_PIN_7;
569 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
570 GPIO_InitStruct.Pull = GPIO_NOPULL;
571 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
572 GPIO_InitStruct.Alternate = GPIO_AF14_TIM17;
573 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
574
575 /* USER CODE BEGIN TIM17_MspPostInit 1 */
576
577 /* USER CODE END TIM17_MspPostInit 1 */
578 }
579
580 }
581 /**
582 * @brief TIM_PWM MSP De-Initialization
583 * This function freeze the hardware resources used in this example
584 * @param htim_pwm: TIM_PWM handle pointer
585 * @retval None
586 */
HAL_TIM_PWM_MspDeInit(TIM_HandleTypeDef * htim_pwm)587 void HAL_TIM_PWM_MspDeInit(TIM_HandleTypeDef* htim_pwm)
588 {
589 if(htim_pwm->Instance==TIM2)
590 {
591 /* USER CODE BEGIN TIM2_MspDeInit 0 */
592
593 /* USER CODE END TIM2_MspDeInit 0 */
594 /* Peripheral clock disable */
595 __HAL_RCC_TIM2_CLK_DISABLE();
596 /* USER CODE BEGIN TIM2_MspDeInit 1 */
597
598 /* USER CODE END TIM2_MspDeInit 1 */
599 }
600 else if(htim_pwm->Instance==TIM3)
601 {
602 /* USER CODE BEGIN TIM3_MspDeInit 0 */
603
604 /* USER CODE END TIM3_MspDeInit 0 */
605 /* Peripheral clock disable */
606 __HAL_RCC_TIM3_CLK_DISABLE();
607 /* USER CODE BEGIN TIM3_MspDeInit 1 */
608
609 /* USER CODE END TIM3_MspDeInit 1 */
610 }
611 else if(htim_pwm->Instance==TIM4)
612 {
613 /* USER CODE BEGIN TIM4_MspDeInit 0 */
614
615 /* USER CODE END TIM4_MspDeInit 0 */
616 /* Peripheral clock disable */
617 __HAL_RCC_TIM4_CLK_DISABLE();
618 /* USER CODE BEGIN TIM4_MspDeInit 1 */
619
620 /* USER CODE END TIM4_MspDeInit 1 */
621 }
622
623 }
624
625 /**
626 * @brief TIM_Base MSP De-Initialization
627 * This function freeze the hardware resources used in this example
628 * @param htim_base: TIM_Base handle pointer
629 * @retval None
630 */
HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef * htim_base)631 void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base)
632 {
633 if(htim_base->Instance==TIM7)
634 {
635 /* USER CODE BEGIN TIM7_MspDeInit 0 */
636
637 /* USER CODE END TIM7_MspDeInit 0 */
638 /* Peripheral clock disable */
639 __HAL_RCC_TIM7_CLK_DISABLE();
640 /* USER CODE BEGIN TIM7_MspDeInit 1 */
641
642 /* USER CODE END TIM7_MspDeInit 1 */
643 }
644 else if(htim_base->Instance==TIM15)
645 {
646 /* USER CODE BEGIN TIM15_MspDeInit 0 */
647
648 /* USER CODE END TIM15_MspDeInit 0 */
649 /* Peripheral clock disable */
650 __HAL_RCC_TIM15_CLK_DISABLE();
651 /* USER CODE BEGIN TIM15_MspDeInit 1 */
652
653 /* USER CODE END TIM15_MspDeInit 1 */
654 }
655 else if(htim_base->Instance==TIM16)
656 {
657 /* USER CODE BEGIN TIM16_MspDeInit 0 */
658
659 /* USER CODE END TIM16_MspDeInit 0 */
660 /* Peripheral clock disable */
661 __HAL_RCC_TIM16_CLK_DISABLE();
662 /* USER CODE BEGIN TIM16_MspDeInit 1 */
663
664 /* USER CODE END TIM16_MspDeInit 1 */
665 }
666 else if(htim_base->Instance==TIM17)
667 {
668 /* USER CODE BEGIN TIM17_MspDeInit 0 */
669
670 /* USER CODE END TIM17_MspDeInit 0 */
671 /* Peripheral clock disable */
672 __HAL_RCC_TIM17_CLK_DISABLE();
673 /* USER CODE BEGIN TIM17_MspDeInit 1 */
674
675 /* USER CODE END TIM17_MspDeInit 1 */
676 }
677
678 }
679
680 /**
681 * @brief UART MSP Initialization
682 * This function configures the hardware resources used in this example
683 * @param huart: UART handle pointer
684 * @retval None
685 */
HAL_UART_MspInit(UART_HandleTypeDef * huart)686 void HAL_UART_MspInit(UART_HandleTypeDef* huart)
687 {
688 GPIO_InitTypeDef GPIO_InitStruct = {0};
689 RCC_PeriphCLKInitTypeDef PeriphClkInit = {0};
690 if(huart->Instance==USART2)
691 {
692 /* USER CODE BEGIN USART2_MspInit 0 */
693
694 /* USER CODE END USART2_MspInit 0 */
695
696 /** Initializes the peripherals clock
697 */
698 PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_USART2;
699 PeriphClkInit.Usart2ClockSelection = RCC_USART2CLKSOURCE_PCLK1;
700 if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
701 {
702 Error_Handler();
703 }
704
705 /* Peripheral clock enable */
706 __HAL_RCC_USART2_CLK_ENABLE();
707
708 __HAL_RCC_GPIOA_CLK_ENABLE();
709 /**USART2 GPIO Configuration
710 PA2 ------> USART2_TX
711 PA3 ------> USART2_RX
712 */
713 GPIO_InitStruct.Pin = GPIO_PIN_2|GPIO_PIN_3;
714 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
715 GPIO_InitStruct.Pull = GPIO_PULLUP;
716 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
717 GPIO_InitStruct.Alternate = GPIO_AF7_USART2;
718 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
719
720 /* USER CODE BEGIN USART2_MspInit 1 */
721
722 /* USER CODE END USART2_MspInit 1 */
723 }
724
725 }
726
727 /**
728 * @brief UART MSP De-Initialization
729 * This function freeze the hardware resources used in this example
730 * @param huart: UART handle pointer
731 * @retval None
732 */
HAL_UART_MspDeInit(UART_HandleTypeDef * huart)733 void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
734 {
735 if(huart->Instance==USART2)
736 {
737 /* USER CODE BEGIN USART2_MspDeInit 0 */
738
739 /* USER CODE END USART2_MspDeInit 0 */
740 /* Peripheral clock disable */
741 __HAL_RCC_USART2_CLK_DISABLE();
742
743 /**USART2 GPIO Configuration
744 PA2 ------> USART2_TX
745 PA3 ------> USART2_RX
746 */
747 HAL_GPIO_DeInit(GPIOA, GPIO_PIN_2|GPIO_PIN_3);
748
749 /* USER CODE BEGIN USART2_MspDeInit 1 */
750
751 /* USER CODE END USART2_MspDeInit 1 */
752 }
753
754 }
755
756 /* USER CODE BEGIN 1 */
757
758 /* USER CODE END 1 */
759