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 
111   GPIO_InitTypeDef GPIO_InitStruct = {0};
112   if(hadc->Instance==ADC1)
113   {
114   /* USER CODE BEGIN ADC1_MspInit 0 */
115 
116   /* USER CODE END ADC1_MspInit 0 */
117     /* Peripheral clock enable */
118     __HAL_RCC_ADC_CLK_ENABLE();
119 
120     __HAL_RCC_GPIOC_CLK_ENABLE();
121     /**ADC1 GPIO Configuration
122     PC2     ------> ADC1_IN3
123     PC3     ------> ADC1_IN4
124     */
125     GPIO_InitStruct.Pin = GPIO_PIN_2|GPIO_PIN_3;
126     GPIO_InitStruct.Mode = GPIO_MODE_ANALOG_ADC_CONTROL;
127     GPIO_InitStruct.Pull = GPIO_NOPULL;
128     HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
129 
130   /* USER CODE BEGIN ADC1_MspInit 1 */
131 
132   /* USER CODE END ADC1_MspInit 1 */
133   }
134 
135 }
136 
137 /**
138 * @brief ADC MSP De-Initialization
139 * This function freeze the hardware resources used in this example
140 * @param hadc: ADC handle pointer
141 * @retval None
142 */
143 
HAL_ADC_MspDeInit(ADC_HandleTypeDef * hadc)144 void HAL_ADC_MspDeInit(ADC_HandleTypeDef* hadc)
145 {
146 
147   if(hadc->Instance==ADC1)
148   {
149   /* USER CODE BEGIN ADC1_MspDeInit 0 */
150 
151   /* USER CODE END ADC1_MspDeInit 0 */
152     /* Peripheral clock disable */
153     __HAL_RCC_ADC_CLK_DISABLE();
154 
155     /**ADC1 GPIO Configuration
156     PC2     ------> ADC1_IN3
157     PC3     ------> ADC1_IN4
158     */
159     HAL_GPIO_DeInit(GPIOC, GPIO_PIN_2|GPIO_PIN_3);
160 
161   /* USER CODE BEGIN ADC1_MspDeInit 1 */
162 
163   /* USER CODE END ADC1_MspDeInit 1 */
164   }
165 
166 }
167 
168 /**
169 * @brief LPTIM MSP Initialization
170 * This function configures the hardware resources used in this example
171 * @param hlptim: LPTIM handle pointer
172 * @retval None
173 */
HAL_LPTIM_MspInit(LPTIM_HandleTypeDef * hlptim)174 void HAL_LPTIM_MspInit(LPTIM_HandleTypeDef* hlptim)
175 {
176 
177   if(hlptim->Instance==LPTIM1)
178   {
179   /* USER CODE BEGIN LPTIM1_MspInit 0 */
180 
181   /* USER CODE END LPTIM1_MspInit 0 */
182     /* Peripheral clock enable */
183     __HAL_RCC_LPTIM1_CLK_ENABLE();
184   /* USER CODE BEGIN LPTIM1_MspInit 1 */
185 
186   /* USER CODE END LPTIM1_MspInit 1 */
187   }
188 
189 }
190 
191 /**
192 * @brief LPTIM MSP De-Initialization
193 * This function freeze the hardware resources used in this example
194 * @param hlptim: LPTIM handle pointer
195 * @retval None
196 */
197 
HAL_LPTIM_MspDeInit(LPTIM_HandleTypeDef * hlptim)198 void HAL_LPTIM_MspDeInit(LPTIM_HandleTypeDef* hlptim)
199 {
200 
201   if(hlptim->Instance==LPTIM1)
202   {
203   /* USER CODE BEGIN LPTIM1_MspDeInit 0 */
204 
205   /* USER CODE END LPTIM1_MspDeInit 0 */
206     /* Peripheral clock disable */
207     __HAL_RCC_LPTIM1_CLK_DISABLE();
208   /* USER CODE BEGIN LPTIM1_MspDeInit 1 */
209 
210   /* USER CODE END LPTIM1_MspDeInit 1 */
211   }
212 
213 }
214 
215 /**
216 * @brief UART MSP Initialization
217 * This function configures the hardware resources used in this example
218 * @param huart: UART handle pointer
219 * @retval None
220 */
HAL_UART_MspInit(UART_HandleTypeDef * huart)221 void HAL_UART_MspInit(UART_HandleTypeDef* huart)
222 {
223 
224   GPIO_InitTypeDef GPIO_InitStruct = {0};
225   if(huart->Instance==LPUART1)
226   {
227   /* USER CODE BEGIN LPUART1_MspInit 0 */
228 
229   /* USER CODE END LPUART1_MspInit 0 */
230     /* Peripheral clock enable */
231     __HAL_RCC_LPUART1_CLK_ENABLE();
232 
233     __HAL_RCC_GPIOB_CLK_ENABLE();
234     /**LPUART1 GPIO Configuration
235     PB10     ------> LPUART1_RX
236     PB11     ------> LPUART1_TX
237     */
238     GPIO_InitStruct.Pin = GPIO_PIN_10|GPIO_PIN_11;
239     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
240     GPIO_InitStruct.Pull = GPIO_PULLUP;
241     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
242     GPIO_InitStruct.Alternate = GPIO_AF8_LPUART1;
243     HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
244 
245   /* USER CODE BEGIN LPUART1_MspInit 1 */
246 
247   /* USER CODE END LPUART1_MspInit 1 */
248   }
249   else if(huart->Instance==USART2)
250   {
251   /* USER CODE BEGIN USART2_MspInit 0 */
252 
253   /* USER CODE END USART2_MspInit 0 */
254     /* Peripheral clock enable */
255     __HAL_RCC_USART2_CLK_ENABLE();
256 
257     __HAL_RCC_GPIOA_CLK_ENABLE();
258     /**USART2 GPIO Configuration
259     PA2     ------> USART2_TX
260     PA3     ------> USART2_RX
261     */
262     GPIO_InitStruct.Pin = GPIO_PIN_2|GPIO_PIN_3;
263     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
264     GPIO_InitStruct.Pull = GPIO_PULLUP;
265     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
266     GPIO_InitStruct.Alternate = GPIO_AF7_USART2;
267     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
268 
269   /* USER CODE BEGIN USART2_MspInit 1 */
270 
271   /* USER CODE END USART2_MspInit 1 */
272   }
273   else if(huart->Instance==USART3)
274   {
275   /* USER CODE BEGIN USART3_MspInit 0 */
276 
277   /* USER CODE END USART3_MspInit 0 */
278     /* Peripheral clock enable */
279     __HAL_RCC_USART3_CLK_ENABLE();
280 
281     __HAL_RCC_GPIOC_CLK_ENABLE();
282     /**USART3 GPIO Configuration
283     PC4     ------> USART3_TX
284     PC5     ------> USART3_RX
285     */
286     GPIO_InitStruct.Pin = GPIO_PIN_4|GPIO_PIN_5;
287     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
288     GPIO_InitStruct.Pull = GPIO_NOPULL;
289     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
290     GPIO_InitStruct.Alternate = GPIO_AF7_USART3;
291     HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
292 
293   /* USER CODE BEGIN USART3_MspInit 1 */
294 
295   /* USER CODE END USART3_MspInit 1 */
296   }
297 
298 }
299 
300 /**
301 * @brief UART MSP De-Initialization
302 * This function freeze the hardware resources used in this example
303 * @param huart: UART handle pointer
304 * @retval None
305 */
306 
HAL_UART_MspDeInit(UART_HandleTypeDef * huart)307 void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
308 {
309 
310   if(huart->Instance==LPUART1)
311   {
312   /* USER CODE BEGIN LPUART1_MspDeInit 0 */
313 
314   /* USER CODE END LPUART1_MspDeInit 0 */
315     /* Peripheral clock disable */
316     __HAL_RCC_LPUART1_CLK_DISABLE();
317 
318     /**LPUART1 GPIO Configuration
319     PB10     ------> LPUART1_RX
320     PB11     ------> LPUART1_TX
321     */
322     HAL_GPIO_DeInit(GPIOB, GPIO_PIN_10|GPIO_PIN_11);
323 
324   /* USER CODE BEGIN LPUART1_MspDeInit 1 */
325 
326   /* USER CODE END LPUART1_MspDeInit 1 */
327   }
328   else if(huart->Instance==USART2)
329   {
330   /* USER CODE BEGIN USART2_MspDeInit 0 */
331 
332   /* USER CODE END USART2_MspDeInit 0 */
333     /* Peripheral clock disable */
334     __HAL_RCC_USART2_CLK_DISABLE();
335 
336     /**USART2 GPIO Configuration
337     PA2     ------> USART2_TX
338     PA3     ------> USART2_RX
339     */
340     HAL_GPIO_DeInit(GPIOA, GPIO_PIN_2|GPIO_PIN_3);
341 
342   /* USER CODE BEGIN USART2_MspDeInit 1 */
343 
344   /* USER CODE END USART2_MspDeInit 1 */
345   }
346   else if(huart->Instance==USART3)
347   {
348   /* USER CODE BEGIN USART3_MspDeInit 0 */
349 
350   /* USER CODE END USART3_MspDeInit 0 */
351     /* Peripheral clock disable */
352     __HAL_RCC_USART3_CLK_DISABLE();
353 
354     /**USART3 GPIO Configuration
355     PC4     ------> USART3_TX
356     PC5     ------> USART3_RX
357     */
358     HAL_GPIO_DeInit(GPIOC, GPIO_PIN_4|GPIO_PIN_5);
359 
360   /* USER CODE BEGIN USART3_MspDeInit 1 */
361 
362   /* USER CODE END USART3_MspDeInit 1 */
363   }
364 
365 }
366 
367 /**
368 * @brief RTC MSP Initialization
369 * This function configures the hardware resources used in this example
370 * @param hrtc: RTC handle pointer
371 * @retval None
372 */
HAL_RTC_MspInit(RTC_HandleTypeDef * hrtc)373 void HAL_RTC_MspInit(RTC_HandleTypeDef* hrtc)
374 {
375 
376   if(hrtc->Instance==RTC)
377   {
378   /* USER CODE BEGIN RTC_MspInit 0 */
379 
380   /* USER CODE END RTC_MspInit 0 */
381     /* Peripheral clock enable */
382     __HAL_RCC_RTC_ENABLE();
383   /* USER CODE BEGIN RTC_MspInit 1 */
384 
385   /* USER CODE END RTC_MspInit 1 */
386   }
387 
388 }
389 
390 /**
391 * @brief RTC MSP De-Initialization
392 * This function freeze the hardware resources used in this example
393 * @param hrtc: RTC handle pointer
394 * @retval None
395 */
396 
HAL_RTC_MspDeInit(RTC_HandleTypeDef * hrtc)397 void HAL_RTC_MspDeInit(RTC_HandleTypeDef* hrtc)
398 {
399 
400   if(hrtc->Instance==RTC)
401   {
402   /* USER CODE BEGIN RTC_MspDeInit 0 */
403 
404   /* USER CODE END RTC_MspDeInit 0 */
405     /* Peripheral clock disable */
406     __HAL_RCC_RTC_DISABLE();
407   /* USER CODE BEGIN RTC_MspDeInit 1 */
408 
409   /* USER CODE END RTC_MspDeInit 1 */
410   }
411 
412 }
413 
414 /**
415 * @brief SD MSP Initialization
416 * This function configures the hardware resources used in this example
417 * @param hsd: SD handle pointer
418 * @retval None
419 */
HAL_SD_MspInit(SD_HandleTypeDef * hsd)420 void HAL_SD_MspInit(SD_HandleTypeDef* hsd)
421 {
422 
423   GPIO_InitTypeDef GPIO_InitStruct = {0};
424   if(hsd->Instance==SDMMC1)
425   {
426   /* USER CODE BEGIN SDMMC1_MspInit 0 */
427 
428   /* USER CODE END SDMMC1_MspInit 0 */
429     /* Peripheral clock enable */
430     __HAL_RCC_SDMMC1_CLK_ENABLE();
431 
432     __HAL_RCC_GPIOC_CLK_ENABLE();
433     __HAL_RCC_GPIOD_CLK_ENABLE();
434     /**SDMMC1 GPIO Configuration
435     PC8     ------> SDMMC1_D0
436     PC9     ------> SDMMC1_D1
437     PC10     ------> SDMMC1_D2
438     PC11     ------> SDMMC1_D3
439     PC12     ------> SDMMC1_CK
440     PD2     ------> SDMMC1_CMD
441     */
442     GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11
443                           |GPIO_PIN_12;
444     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
445     GPIO_InitStruct.Pull = GPIO_NOPULL;
446     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
447     GPIO_InitStruct.Alternate = GPIO_AF12_SDMMC1;
448     HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
449 
450     GPIO_InitStruct.Pin = GPIO_PIN_2;
451     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
452     GPIO_InitStruct.Pull = GPIO_NOPULL;
453     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
454     GPIO_InitStruct.Alternate = GPIO_AF12_SDMMC1;
455     HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
456 
457   /* USER CODE BEGIN SDMMC1_MspInit 1 */
458 
459   /* USER CODE END SDMMC1_MspInit 1 */
460   }
461 
462 }
463 
464 /**
465 * @brief SD MSP De-Initialization
466 * This function freeze the hardware resources used in this example
467 * @param hsd: SD handle pointer
468 * @retval None
469 */
470 
HAL_SD_MspDeInit(SD_HandleTypeDef * hsd)471 void HAL_SD_MspDeInit(SD_HandleTypeDef* hsd)
472 {
473 
474   if(hsd->Instance==SDMMC1)
475   {
476   /* USER CODE BEGIN SDMMC1_MspDeInit 0 */
477 
478   /* USER CODE END SDMMC1_MspDeInit 0 */
479     /* Peripheral clock disable */
480     __HAL_RCC_SDMMC1_CLK_DISABLE();
481 
482     /**SDMMC1 GPIO Configuration
483     PC8     ------> SDMMC1_D0
484     PC9     ------> SDMMC1_D1
485     PC10     ------> SDMMC1_D2
486     PC11     ------> SDMMC1_D3
487     PC12     ------> SDMMC1_CK
488     PD2     ------> SDMMC1_CMD
489     */
490     HAL_GPIO_DeInit(GPIOC, GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11
491                           |GPIO_PIN_12);
492 
493     HAL_GPIO_DeInit(GPIOD, GPIO_PIN_2);
494 
495   /* USER CODE BEGIN SDMMC1_MspDeInit 1 */
496 
497   /* USER CODE END SDMMC1_MspDeInit 1 */
498   }
499 
500 }
501 
502 /**
503 * @brief SPI MSP Initialization
504 * This function configures the hardware resources used in this example
505 * @param hspi: SPI handle pointer
506 * @retval None
507 */
HAL_SPI_MspInit(SPI_HandleTypeDef * hspi)508 void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi)
509 {
510 
511   GPIO_InitTypeDef GPIO_InitStruct = {0};
512   if(hspi->Instance==SPI1)
513   {
514   /* USER CODE BEGIN SPI1_MspInit 0 */
515 
516   /* USER CODE END SPI1_MspInit 0 */
517     /* Peripheral clock enable */
518     __HAL_RCC_SPI1_CLK_ENABLE();
519 
520     __HAL_RCC_GPIOA_CLK_ENABLE();
521     /**SPI1 GPIO Configuration
522     PA5     ------> SPI1_SCK
523     PA6     ------> SPI1_MISO
524     PA7     ------> SPI1_MOSI
525     */
526     GPIO_InitStruct.Pin = GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7;
527     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
528     GPIO_InitStruct.Pull = GPIO_NOPULL;
529     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
530     GPIO_InitStruct.Alternate = GPIO_AF5_SPI1;
531     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
532 
533   /* USER CODE BEGIN SPI1_MspInit 1 */
534 
535   /* USER CODE END SPI1_MspInit 1 */
536   }
537   else if(hspi->Instance==SPI2)
538   {
539   /* USER CODE BEGIN SPI2_MspInit 0 */
540 
541   /* USER CODE END SPI2_MspInit 0 */
542     /* Peripheral clock enable */
543     __HAL_RCC_SPI2_CLK_ENABLE();
544 
545     __HAL_RCC_GPIOC_CLK_ENABLE();
546     __HAL_RCC_GPIOA_CLK_ENABLE();
547     __HAL_RCC_GPIOD_CLK_ENABLE();
548     /**SPI2 GPIO Configuration
549     PC1     ------> SPI2_MOSI
550     PA9     ------> SPI2_SCK
551     PD3     ------> SPI2_MISO
552     */
553     GPIO_InitStruct.Pin = GPIO_PIN_1;
554     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
555     GPIO_InitStruct.Pull = GPIO_NOPULL;
556     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
557     GPIO_InitStruct.Alternate = GPIO_AF3_SPI2;
558     HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
559 
560     GPIO_InitStruct.Pin = GPIO_PIN_9;
561     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
562     GPIO_InitStruct.Pull = GPIO_NOPULL;
563     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
564     GPIO_InitStruct.Alternate = GPIO_AF3_SPI2;
565     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
566 
567     GPIO_InitStruct.Pin = GPIO_PIN_3;
568     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
569     GPIO_InitStruct.Pull = GPIO_NOPULL;
570     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
571     GPIO_InitStruct.Alternate = GPIO_AF5_SPI2;
572     HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
573 
574   /* USER CODE BEGIN SPI2_MspInit 1 */
575 
576   /* USER CODE END SPI2_MspInit 1 */
577   }
578 
579 }
580 
581 /**
582 * @brief SPI MSP De-Initialization
583 * This function freeze the hardware resources used in this example
584 * @param hspi: SPI handle pointer
585 * @retval None
586 */
587 
HAL_SPI_MspDeInit(SPI_HandleTypeDef * hspi)588 void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi)
589 {
590 
591   if(hspi->Instance==SPI1)
592   {
593   /* USER CODE BEGIN SPI1_MspDeInit 0 */
594 
595   /* USER CODE END SPI1_MspDeInit 0 */
596     /* Peripheral clock disable */
597     __HAL_RCC_SPI1_CLK_DISABLE();
598 
599     /**SPI1 GPIO Configuration
600     PA5     ------> SPI1_SCK
601     PA6     ------> SPI1_MISO
602     PA7     ------> SPI1_MOSI
603     */
604     HAL_GPIO_DeInit(GPIOA, GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7);
605 
606   /* USER CODE BEGIN SPI1_MspDeInit 1 */
607 
608   /* USER CODE END SPI1_MspDeInit 1 */
609   }
610   else if(hspi->Instance==SPI2)
611   {
612   /* USER CODE BEGIN SPI2_MspDeInit 0 */
613 
614   /* USER CODE END SPI2_MspDeInit 0 */
615     /* Peripheral clock disable */
616     __HAL_RCC_SPI2_CLK_DISABLE();
617 
618     /**SPI2 GPIO Configuration
619     PC1     ------> SPI2_MOSI
620     PA9     ------> SPI2_SCK
621     PD3     ------> SPI2_MISO
622     */
623     HAL_GPIO_DeInit(GPIOC, GPIO_PIN_1);
624 
625     HAL_GPIO_DeInit(GPIOA, GPIO_PIN_9);
626 
627     HAL_GPIO_DeInit(GPIOD, GPIO_PIN_3);
628 
629   /* USER CODE BEGIN SPI2_MspDeInit 1 */
630 
631   /* USER CODE END SPI2_MspDeInit 1 */
632   }
633 
634 }
635 
636 /**
637 * @brief TIM_PWM MSP Initialization
638 * This function configures the hardware resources used in this example
639 * @param htim_pwm: TIM_PWM handle pointer
640 * @retval None
641 */
HAL_TIM_PWM_MspInit(TIM_HandleTypeDef * htim_pwm)642 void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef* htim_pwm)
643 {
644 
645   if(htim_pwm->Instance==TIM3)
646   {
647   /* USER CODE BEGIN TIM3_MspInit 0 */
648 
649   /* USER CODE END TIM3_MspInit 0 */
650     /* Peripheral clock enable */
651     __HAL_RCC_TIM3_CLK_ENABLE();
652   /* USER CODE BEGIN TIM3_MspInit 1 */
653 
654   /* USER CODE END TIM3_MspInit 1 */
655   }
656 
657 }
658 
659 /**
660 * @brief TIM_Base MSP Initialization
661 * This function configures the hardware resources used in this example
662 * @param htim_base: TIM_Base handle pointer
663 * @retval None
664 */
HAL_TIM_Base_MspInit(TIM_HandleTypeDef * htim_base)665 void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
666 {
667 
668   if(htim_base->Instance==TIM15)
669   {
670   /* USER CODE BEGIN TIM15_MspInit 0 */
671 
672   /* USER CODE END TIM15_MspInit 0 */
673     /* Peripheral clock enable */
674     __HAL_RCC_TIM15_CLK_ENABLE();
675   /* USER CODE BEGIN TIM15_MspInit 1 */
676 
677   /* USER CODE END TIM15_MspInit 1 */
678   }
679   else if(htim_base->Instance==TIM16)
680   {
681   /* USER CODE BEGIN TIM16_MspInit 0 */
682 
683   /* USER CODE END TIM16_MspInit 0 */
684     /* Peripheral clock enable */
685     __HAL_RCC_TIM16_CLK_ENABLE();
686   /* USER CODE BEGIN TIM16_MspInit 1 */
687 
688   /* USER CODE END TIM16_MspInit 1 */
689   }
690   else if(htim_base->Instance==TIM17)
691   {
692   /* USER CODE BEGIN TIM17_MspInit 0 */
693 
694   /* USER CODE END TIM17_MspInit 0 */
695     /* Peripheral clock enable */
696     __HAL_RCC_TIM17_CLK_ENABLE();
697   /* USER CODE BEGIN TIM17_MspInit 1 */
698 
699   /* USER CODE END TIM17_MspInit 1 */
700   }
701 
702 }
703 
HAL_TIM_MspPostInit(TIM_HandleTypeDef * htim)704 void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim)
705 {
706 
707   GPIO_InitTypeDef GPIO_InitStruct = {0};
708   if(htim->Instance==TIM3)
709   {
710   /* USER CODE BEGIN TIM3_MspPostInit 0 */
711 
712   /* USER CODE END TIM3_MspPostInit 0 */
713 
714     __HAL_RCC_GPIOE_CLK_ENABLE();
715     /**TIM3 GPIO Configuration
716     PE4     ------> TIM3_CH2
717     PE5     ------> TIM3_CH3
718     PE6     ------> TIM3_CH4
719     */
720     GPIO_InitStruct.Pin = GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6;
721     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
722     GPIO_InitStruct.Pull = GPIO_NOPULL;
723     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
724     GPIO_InitStruct.Alternate = GPIO_AF2_TIM3;
725     HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
726 
727   /* USER CODE BEGIN TIM3_MspPostInit 1 */
728 
729   /* USER CODE END TIM3_MspPostInit 1 */
730   }
731 
732 }
733 /**
734 * @brief TIM_PWM MSP De-Initialization
735 * This function freeze the hardware resources used in this example
736 * @param htim_pwm: TIM_PWM handle pointer
737 * @retval None
738 */
739 
HAL_TIM_PWM_MspDeInit(TIM_HandleTypeDef * htim_pwm)740 void HAL_TIM_PWM_MspDeInit(TIM_HandleTypeDef* htim_pwm)
741 {
742 
743   if(htim_pwm->Instance==TIM3)
744   {
745   /* USER CODE BEGIN TIM3_MspDeInit 0 */
746 
747   /* USER CODE END TIM3_MspDeInit 0 */
748     /* Peripheral clock disable */
749     __HAL_RCC_TIM3_CLK_DISABLE();
750   /* USER CODE BEGIN TIM3_MspDeInit 1 */
751 
752   /* USER CODE END TIM3_MspDeInit 1 */
753   }
754 
755 }
756 
757 /**
758 * @brief TIM_Base MSP De-Initialization
759 * This function freeze the hardware resources used in this example
760 * @param htim_base: TIM_Base handle pointer
761 * @retval None
762 */
763 
HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef * htim_base)764 void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base)
765 {
766 
767   if(htim_base->Instance==TIM15)
768   {
769   /* USER CODE BEGIN TIM15_MspDeInit 0 */
770 
771   /* USER CODE END TIM15_MspDeInit 0 */
772     /* Peripheral clock disable */
773     __HAL_RCC_TIM15_CLK_DISABLE();
774   /* USER CODE BEGIN TIM15_MspDeInit 1 */
775 
776   /* USER CODE END TIM15_MspDeInit 1 */
777   }
778   else if(htim_base->Instance==TIM16)
779   {
780   /* USER CODE BEGIN TIM16_MspDeInit 0 */
781 
782   /* USER CODE END TIM16_MspDeInit 0 */
783     /* Peripheral clock disable */
784     __HAL_RCC_TIM16_CLK_DISABLE();
785   /* USER CODE BEGIN TIM16_MspDeInit 1 */
786 
787   /* USER CODE END TIM16_MspDeInit 1 */
788   }
789   else if(htim_base->Instance==TIM17)
790   {
791   /* USER CODE BEGIN TIM17_MspDeInit 0 */
792 
793   /* USER CODE END TIM17_MspDeInit 0 */
794     /* Peripheral clock disable */
795     __HAL_RCC_TIM17_CLK_DISABLE();
796   /* USER CODE BEGIN TIM17_MspDeInit 1 */
797 
798   /* USER CODE END TIM17_MspDeInit 1 */
799   }
800 
801 }
802 
803 /* USER CODE BEGIN 1 */
804 
805 /* USER CODE END 1 */
806 
807 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
808