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