1 /* USER CODE BEGIN Header */
2 /**
3   ******************************************************************************
4   * File Name          : stm32f4xx_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   if(hadc->Instance==ADC1)
111   {
112   /* USER CODE BEGIN ADC1_MspInit 0 */
113 
114   /* USER CODE END ADC1_MspInit 0 */
115     /* Peripheral clock enable */
116     __HAL_RCC_ADC1_CLK_ENABLE();
117   /* USER CODE BEGIN ADC1_MspInit 1 */
118 
119   /* USER CODE END ADC1_MspInit 1 */
120   }
121 
122 }
123 
124 /**
125 * @brief ADC MSP De-Initialization
126 * This function freeze the hardware resources used in this example
127 * @param hadc: ADC handle pointer
128 * @retval None
129 */
HAL_ADC_MspDeInit(ADC_HandleTypeDef * hadc)130 void HAL_ADC_MspDeInit(ADC_HandleTypeDef* hadc)
131 {
132   if(hadc->Instance==ADC1)
133   {
134   /* USER CODE BEGIN ADC1_MspDeInit 0 */
135 
136   /* USER CODE END ADC1_MspDeInit 0 */
137     /* Peripheral clock disable */
138     __HAL_RCC_ADC1_CLK_DISABLE();
139   /* USER CODE BEGIN ADC1_MspDeInit 1 */
140 
141   /* USER CODE END ADC1_MspDeInit 1 */
142   }
143 
144 }
145 
146 static uint32_t HAL_RCC_CAN1_CLK_ENABLED=0;
147 
148 /**
149 * @brief CAN MSP Initialization
150 * This function configures the hardware resources used in this example
151 * @param hcan: CAN handle pointer
152 * @retval None
153 */
HAL_CAN_MspInit(CAN_HandleTypeDef * hcan)154 void HAL_CAN_MspInit(CAN_HandleTypeDef* hcan)
155 {
156   GPIO_InitTypeDef GPIO_InitStruct = {0};
157   if(hcan->Instance==CAN1)
158   {
159   /* USER CODE BEGIN CAN1_MspInit 0 */
160 
161   /* USER CODE END CAN1_MspInit 0 */
162     /* Peripheral clock enable */
163     HAL_RCC_CAN1_CLK_ENABLED++;
164     if(HAL_RCC_CAN1_CLK_ENABLED==1){
165       __HAL_RCC_CAN1_CLK_ENABLE();
166     }
167 
168     __HAL_RCC_GPIOD_CLK_ENABLE();
169     /**CAN1 GPIO Configuration
170     PD0     ------> CAN1_RX
171     PD1     ------> CAN1_TX
172     */
173     GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1;
174     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
175     GPIO_InitStruct.Pull = GPIO_NOPULL;
176     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
177     GPIO_InitStruct.Alternate = GPIO_AF9_CAN1;
178     HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
179 
180   /* USER CODE BEGIN CAN1_MspInit 1 */
181 
182   /* USER CODE END CAN1_MspInit 1 */
183   }
184   else if(hcan->Instance==CAN2)
185   {
186   /* USER CODE BEGIN CAN2_MspInit 0 */
187 
188   /* USER CODE END CAN2_MspInit 0 */
189     /* Peripheral clock enable */
190     __HAL_RCC_CAN2_CLK_ENABLE();
191     HAL_RCC_CAN1_CLK_ENABLED++;
192     if(HAL_RCC_CAN1_CLK_ENABLED==1){
193       __HAL_RCC_CAN1_CLK_ENABLE();
194     }
195 
196     __HAL_RCC_GPIOB_CLK_ENABLE();
197     /**CAN2 GPIO Configuration
198     PB12     ------> CAN2_RX
199     PB13     ------> CAN2_TX
200     */
201     GPIO_InitStruct.Pin = GPIO_PIN_12|GPIO_PIN_13;
202     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
203     GPIO_InitStruct.Pull = GPIO_NOPULL;
204     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
205     GPIO_InitStruct.Alternate = GPIO_AF9_CAN2;
206     HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
207 
208   /* USER CODE BEGIN CAN2_MspInit 1 */
209 
210   /* USER CODE END CAN2_MspInit 1 */
211   }
212 
213 }
214 
215 /**
216 * @brief CAN MSP De-Initialization
217 * This function freeze the hardware resources used in this example
218 * @param hcan: CAN handle pointer
219 * @retval None
220 */
HAL_CAN_MspDeInit(CAN_HandleTypeDef * hcan)221 void HAL_CAN_MspDeInit(CAN_HandleTypeDef* hcan)
222 {
223   if(hcan->Instance==CAN1)
224   {
225   /* USER CODE BEGIN CAN1_MspDeInit 0 */
226 
227   /* USER CODE END CAN1_MspDeInit 0 */
228     /* Peripheral clock disable */
229     HAL_RCC_CAN1_CLK_ENABLED--;
230     if(HAL_RCC_CAN1_CLK_ENABLED==0){
231       __HAL_RCC_CAN1_CLK_DISABLE();
232     }
233 
234     /**CAN1 GPIO Configuration
235     PD0     ------> CAN1_RX
236     PD1     ------> CAN1_TX
237     */
238     HAL_GPIO_DeInit(GPIOD, GPIO_PIN_0|GPIO_PIN_1);
239 
240   /* USER CODE BEGIN CAN1_MspDeInit 1 */
241 
242   /* USER CODE END CAN1_MspDeInit 1 */
243   }
244   else if(hcan->Instance==CAN2)
245   {
246   /* USER CODE BEGIN CAN2_MspDeInit 0 */
247 
248   /* USER CODE END CAN2_MspDeInit 0 */
249     /* Peripheral clock disable */
250     __HAL_RCC_CAN2_CLK_DISABLE();
251     HAL_RCC_CAN1_CLK_ENABLED--;
252     if(HAL_RCC_CAN1_CLK_ENABLED==0){
253       __HAL_RCC_CAN1_CLK_DISABLE();
254     }
255 
256     /**CAN2 GPIO Configuration
257     PB12     ------> CAN2_RX
258     PB13     ------> CAN2_TX
259     */
260     HAL_GPIO_DeInit(GPIOB, GPIO_PIN_12|GPIO_PIN_13);
261 
262   /* USER CODE BEGIN CAN2_MspDeInit 1 */
263 
264   /* USER CODE END CAN2_MspDeInit 1 */
265   }
266 
267 }
268 
269 /**
270 * @brief SD MSP Initialization
271 * This function configures the hardware resources used in this example
272 * @param hsd: SD handle pointer
273 * @retval None
274 */
HAL_SD_MspInit(SD_HandleTypeDef * hsd)275 void HAL_SD_MspInit(SD_HandleTypeDef* hsd)
276 {
277   GPIO_InitTypeDef GPIO_InitStruct = {0};
278   if(hsd->Instance==SDIO)
279   {
280   /* USER CODE BEGIN SDIO_MspInit 0 */
281 
282   /* USER CODE END SDIO_MspInit 0 */
283     /* Peripheral clock enable */
284     __HAL_RCC_SDIO_CLK_ENABLE();
285 
286     __HAL_RCC_GPIOC_CLK_ENABLE();
287     __HAL_RCC_GPIOD_CLK_ENABLE();
288     /**SDIO GPIO Configuration
289     PC12     ------> SDIO_CK
290     PC11     ------> SDIO_D3
291     PC10     ------> SDIO_D2
292     PD2     ------> SDIO_CMD
293     PC9     ------> SDIO_D1
294     PC8     ------> SDIO_D0
295     */
296     GPIO_InitStruct.Pin = GPIO_PIN_12|GPIO_PIN_11|GPIO_PIN_10|GPIO_PIN_9
297                           |GPIO_PIN_8;
298     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
299     GPIO_InitStruct.Pull = GPIO_NOPULL;
300     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
301     GPIO_InitStruct.Alternate = GPIO_AF12_SDIO;
302     HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
303 
304     GPIO_InitStruct.Pin = GPIO_PIN_2;
305     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
306     GPIO_InitStruct.Pull = GPIO_NOPULL;
307     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
308     GPIO_InitStruct.Alternate = GPIO_AF12_SDIO;
309     HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
310 
311   /* USER CODE BEGIN SDIO_MspInit 1 */
312 
313   /* USER CODE END SDIO_MspInit 1 */
314   }
315 
316 }
317 
318 /**
319 * @brief SD MSP De-Initialization
320 * This function freeze the hardware resources used in this example
321 * @param hsd: SD handle pointer
322 * @retval None
323 */
HAL_SD_MspDeInit(SD_HandleTypeDef * hsd)324 void HAL_SD_MspDeInit(SD_HandleTypeDef* hsd)
325 {
326   if(hsd->Instance==SDIO)
327   {
328   /* USER CODE BEGIN SDIO_MspDeInit 0 */
329 
330   /* USER CODE END SDIO_MspDeInit 0 */
331     /* Peripheral clock disable */
332     __HAL_RCC_SDIO_CLK_DISABLE();
333 
334     /**SDIO GPIO Configuration
335     PC12     ------> SDIO_CK
336     PC11     ------> SDIO_D3
337     PC10     ------> SDIO_D2
338     PD2     ------> SDIO_CMD
339     PC9     ------> SDIO_D1
340     PC8     ------> SDIO_D0
341     */
342     HAL_GPIO_DeInit(GPIOC, GPIO_PIN_12|GPIO_PIN_11|GPIO_PIN_10|GPIO_PIN_9
343                           |GPIO_PIN_8);
344 
345     HAL_GPIO_DeInit(GPIOD, GPIO_PIN_2);
346 
347   /* USER CODE BEGIN SDIO_MspDeInit 1 */
348 
349   /* USER CODE END SDIO_MspDeInit 1 */
350   }
351 
352 }
353 
354 /**
355 * @brief SPI MSP Initialization
356 * This function configures the hardware resources used in this example
357 * @param hspi: SPI handle pointer
358 * @retval None
359 */
HAL_SPI_MspInit(SPI_HandleTypeDef * hspi)360 void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi)
361 {
362   GPIO_InitTypeDef GPIO_InitStruct = {0};
363   if(hspi->Instance==SPI5)
364   {
365   /* USER CODE BEGIN SPI5_MspInit 0 */
366 
367   /* USER CODE END SPI5_MspInit 0 */
368     /* Peripheral clock enable */
369     __HAL_RCC_SPI5_CLK_ENABLE();
370 
371     __HAL_RCC_GPIOF_CLK_ENABLE();
372     /**SPI5 GPIO Configuration
373     PF7     ------> SPI5_SCK
374     PF9     ------> SPI5_MOSI
375     PF8     ------> SPI5_MISO
376     */
377     GPIO_InitStruct.Pin = GPIO_PIN_7|GPIO_PIN_9|GPIO_PIN_8;
378     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
379     GPIO_InitStruct.Pull = GPIO_NOPULL;
380     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
381     GPIO_InitStruct.Alternate = GPIO_AF5_SPI5;
382     HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
383 
384   /* USER CODE BEGIN SPI5_MspInit 1 */
385 
386   /* USER CODE END SPI5_MspInit 1 */
387   }
388 
389 }
390 
391 /**
392 * @brief SPI MSP De-Initialization
393 * This function freeze the hardware resources used in this example
394 * @param hspi: SPI handle pointer
395 * @retval None
396 */
HAL_SPI_MspDeInit(SPI_HandleTypeDef * hspi)397 void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi)
398 {
399   if(hspi->Instance==SPI5)
400   {
401   /* USER CODE BEGIN SPI5_MspDeInit 0 */
402 
403   /* USER CODE END SPI5_MspDeInit 0 */
404     /* Peripheral clock disable */
405     __HAL_RCC_SPI5_CLK_DISABLE();
406 
407     /**SPI5 GPIO Configuration
408     PF7     ------> SPI5_SCK
409     PF9     ------> SPI5_MOSI
410     PF8     ------> SPI5_MISO
411     */
412     HAL_GPIO_DeInit(GPIOF, GPIO_PIN_7|GPIO_PIN_9|GPIO_PIN_8);
413 
414   /* USER CODE BEGIN SPI5_MspDeInit 1 */
415 
416   /* USER CODE END SPI5_MspDeInit 1 */
417   }
418 
419 }
420 
421 /**
422 * @brief TIM_Base MSP Initialization
423 * This function configures the hardware resources used in this example
424 * @param htim_base: TIM_Base handle pointer
425 * @retval None
426 */
HAL_TIM_Base_MspInit(TIM_HandleTypeDef * htim_base)427 void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
428 {
429   if(htim_base->Instance==TIM2)
430   {
431   /* USER CODE BEGIN TIM2_MspInit 0 */
432 
433   /* USER CODE END TIM2_MspInit 0 */
434     /* Peripheral clock enable */
435     __HAL_RCC_TIM2_CLK_ENABLE();
436   /* USER CODE BEGIN TIM2_MspInit 1 */
437 
438   /* USER CODE END TIM2_MspInit 1 */
439   }
440   else if(htim_base->Instance==TIM4)
441   {
442   /* USER CODE BEGIN TIM4_MspInit 0 */
443 
444   /* USER CODE END TIM4_MspInit 0 */
445     /* Peripheral clock enable */
446     __HAL_RCC_TIM4_CLK_ENABLE();
447   /* USER CODE BEGIN TIM4_MspInit 1 */
448 
449   /* USER CODE END TIM4_MspInit 1 */
450   }
451   else if(htim_base->Instance==TIM5)
452   {
453   /* USER CODE BEGIN TIM5_MspInit 0 */
454 
455   /* USER CODE END TIM5_MspInit 0 */
456     /* Peripheral clock enable */
457     __HAL_RCC_TIM5_CLK_ENABLE();
458   /* USER CODE BEGIN TIM5_MspInit 1 */
459 
460   /* USER CODE END TIM5_MspInit 1 */
461   }
462   else if(htim_base->Instance==TIM8)
463   {
464   /* USER CODE BEGIN TIM8_MspInit 0 */
465 
466   /* USER CODE END TIM8_MspInit 0 */
467     /* Peripheral clock enable */
468     __HAL_RCC_TIM8_CLK_ENABLE();
469   /* USER CODE BEGIN TIM8_MspInit 1 */
470 
471   /* USER CODE END TIM8_MspInit 1 */
472   }
473   else if(htim_base->Instance==TIM12)
474   {
475   /* USER CODE BEGIN TIM12_MspInit 0 */
476 
477   /* USER CODE END TIM12_MspInit 0 */
478     /* Peripheral clock enable */
479     __HAL_RCC_TIM12_CLK_ENABLE();
480   /* USER CODE BEGIN TIM12_MspInit 1 */
481 
482   /* USER CODE END TIM12_MspInit 1 */
483   }
484 
485 }
486 
HAL_TIM_MspPostInit(TIM_HandleTypeDef * htim)487 void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim)
488 {
489   GPIO_InitTypeDef GPIO_InitStruct = {0};
490   if(htim->Instance==TIM2)
491   {
492   /* USER CODE BEGIN TIM2_MspPostInit 0 */
493 
494   /* USER CODE END TIM2_MspPostInit 0 */
495     __HAL_RCC_GPIOA_CLK_ENABLE();
496     /**TIM2 GPIO Configuration
497     PA1     ------> TIM2_CH2
498     PA0/WKUP     ------> TIM2_CH1
499     PA2     ------> TIM2_CH3
500     PA3     ------> TIM2_CH4
501     */
502     GPIO_InitStruct.Pin = GPIO_PIN_1|GPIO_PIN_0|GPIO_PIN_2|GPIO_PIN_3;
503     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
504     GPIO_InitStruct.Pull = GPIO_NOPULL;
505     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
506     GPIO_InitStruct.Alternate = GPIO_AF1_TIM2;
507     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
508 
509   /* USER CODE BEGIN TIM2_MspPostInit 1 */
510 
511   /* USER CODE END TIM2_MspPostInit 1 */
512   }
513   else if(htim->Instance==TIM4)
514   {
515   /* USER CODE BEGIN TIM4_MspPostInit 0 */
516 
517   /* USER CODE END TIM4_MspPostInit 0 */
518 
519     __HAL_RCC_GPIOD_CLK_ENABLE();
520     /**TIM4 GPIO Configuration
521     PD15     ------> TIM4_CH4
522     PD14     ------> TIM4_CH3
523     PD13     ------> TIM4_CH2
524     PD12     ------> TIM4_CH1
525     */
526     GPIO_InitStruct.Pin = GPIO_PIN_15|GPIO_PIN_14|GPIO_PIN_13|GPIO_PIN_12;
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_TIM4;
531     HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
532 
533   /* USER CODE BEGIN TIM4_MspPostInit 1 */
534 
535   /* USER CODE END TIM4_MspPostInit 1 */
536   }
537   else if(htim->Instance==TIM5)
538   {
539   /* USER CODE BEGIN TIM5_MspPostInit 0 */
540 
541   /* USER CODE END TIM5_MspPostInit 0 */
542 
543     __HAL_RCC_GPIOI_CLK_ENABLE();
544     __HAL_RCC_GPIOH_CLK_ENABLE();
545     /**TIM5 GPIO Configuration
546     PI0     ------> TIM5_CH4
547     PH12     ------> TIM5_CH3
548     PH11     ------> TIM5_CH2
549     PH10     ------> TIM5_CH1
550     */
551     GPIO_InitStruct.Pin = GPIO_PIN_0;
552     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
553     GPIO_InitStruct.Pull = GPIO_NOPULL;
554     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
555     GPIO_InitStruct.Alternate = GPIO_AF2_TIM5;
556     HAL_GPIO_Init(GPIOI, &GPIO_InitStruct);
557 
558     GPIO_InitStruct.Pin = GPIO_PIN_12|GPIO_PIN_11|GPIO_PIN_10;
559     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
560     GPIO_InitStruct.Pull = GPIO_NOPULL;
561     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
562     GPIO_InitStruct.Alternate = GPIO_AF2_TIM5;
563     HAL_GPIO_Init(GPIOH, &GPIO_InitStruct);
564 
565   /* USER CODE BEGIN TIM5_MspPostInit 1 */
566 
567   /* USER CODE END TIM5_MspPostInit 1 */
568   }
569   else if(htim->Instance==TIM8)
570   {
571   /* USER CODE BEGIN TIM8_MspPostInit 0 */
572 
573   /* USER CODE END TIM8_MspPostInit 0 */
574 
575     __HAL_RCC_GPIOI_CLK_ENABLE();
576     /**TIM8 GPIO Configuration
577     PI7     ------> TIM8_CH3
578     PI6     ------> TIM8_CH2
579     PI5     ------> TIM8_CH1
580     PI2     ------> TIM8_CH4
581     */
582     GPIO_InitStruct.Pin = GPIO_PIN_7|GPIO_PIN_6|GPIO_PIN_5|GPIO_PIN_2;
583     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
584     GPIO_InitStruct.Pull = GPIO_NOPULL;
585     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
586     GPIO_InitStruct.Alternate = GPIO_AF3_TIM8;
587     HAL_GPIO_Init(GPIOI, &GPIO_InitStruct);
588 
589   /* USER CODE BEGIN TIM8_MspPostInit 1 */
590 
591   /* USER CODE END TIM8_MspPostInit 1 */
592   }
593   else if(htim->Instance==TIM12)
594   {
595   /* USER CODE BEGIN TIM12_MspPostInit 0 */
596 
597   /* USER CODE END TIM12_MspPostInit 0 */
598 
599     __HAL_RCC_GPIOH_CLK_ENABLE();
600     /**TIM12 GPIO Configuration
601     PH6     ------> TIM12_CH1
602     */
603     GPIO_InitStruct.Pin = GPIO_PIN_6;
604     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
605     GPIO_InitStruct.Pull = GPIO_NOPULL;
606     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
607     GPIO_InitStruct.Alternate = GPIO_AF9_TIM12;
608     HAL_GPIO_Init(GPIOH, &GPIO_InitStruct);
609 
610   /* USER CODE BEGIN TIM12_MspPostInit 1 */
611 
612   /* USER CODE END TIM12_MspPostInit 1 */
613   }
614 
615 }
616 /**
617 * @brief TIM_Base MSP De-Initialization
618 * This function freeze the hardware resources used in this example
619 * @param htim_base: TIM_Base handle pointer
620 * @retval None
621 */
HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef * htim_base)622 void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base)
623 {
624   if(htim_base->Instance==TIM2)
625   {
626   /* USER CODE BEGIN TIM2_MspDeInit 0 */
627 
628   /* USER CODE END TIM2_MspDeInit 0 */
629     /* Peripheral clock disable */
630     __HAL_RCC_TIM2_CLK_DISABLE();
631   /* USER CODE BEGIN TIM2_MspDeInit 1 */
632 
633   /* USER CODE END TIM2_MspDeInit 1 */
634   }
635   else if(htim_base->Instance==TIM4)
636   {
637   /* USER CODE BEGIN TIM4_MspDeInit 0 */
638 
639   /* USER CODE END TIM4_MspDeInit 0 */
640     /* Peripheral clock disable */
641     __HAL_RCC_TIM4_CLK_DISABLE();
642   /* USER CODE BEGIN TIM4_MspDeInit 1 */
643 
644   /* USER CODE END TIM4_MspDeInit 1 */
645   }
646   else if(htim_base->Instance==TIM5)
647   {
648   /* USER CODE BEGIN TIM5_MspDeInit 0 */
649 
650   /* USER CODE END TIM5_MspDeInit 0 */
651     /* Peripheral clock disable */
652     __HAL_RCC_TIM5_CLK_DISABLE();
653   /* USER CODE BEGIN TIM5_MspDeInit 1 */
654 
655   /* USER CODE END TIM5_MspDeInit 1 */
656   }
657   else if(htim_base->Instance==TIM8)
658   {
659   /* USER CODE BEGIN TIM8_MspDeInit 0 */
660 
661   /* USER CODE END TIM8_MspDeInit 0 */
662     /* Peripheral clock disable */
663     __HAL_RCC_TIM8_CLK_DISABLE();
664   /* USER CODE BEGIN TIM8_MspDeInit 1 */
665 
666   /* USER CODE END TIM8_MspDeInit 1 */
667   }
668   else if(htim_base->Instance==TIM12)
669   {
670   /* USER CODE BEGIN TIM12_MspDeInit 0 */
671 
672   /* USER CODE END TIM12_MspDeInit 0 */
673     /* Peripheral clock disable */
674     __HAL_RCC_TIM12_CLK_DISABLE();
675   /* USER CODE BEGIN TIM12_MspDeInit 1 */
676 
677   /* USER CODE END TIM12_MspDeInit 1 */
678   }
679 
680 }
681 
682 /**
683 * @brief UART MSP Initialization
684 * This function configures the hardware resources used in this example
685 * @param huart: UART handle pointer
686 * @retval None
687 */
HAL_UART_MspInit(UART_HandleTypeDef * huart)688 void HAL_UART_MspInit(UART_HandleTypeDef* huart)
689 {
690   GPIO_InitTypeDef GPIO_InitStruct = {0};
691   if(huart->Instance==UART7)
692   {
693   /* USER CODE BEGIN UART7_MspInit 0 */
694 
695   /* USER CODE END UART7_MspInit 0 */
696     /* Peripheral clock enable */
697     __HAL_RCC_UART7_CLK_ENABLE();
698 
699     __HAL_RCC_GPIOE_CLK_ENABLE();
700     /**UART7 GPIO Configuration
701     PE8     ------> UART7_TX
702     PE7     ------> UART7_RX
703     */
704     GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_7;
705     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
706     GPIO_InitStruct.Pull = GPIO_PULLUP;
707     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
708     GPIO_InitStruct.Alternate = GPIO_AF8_UART7;
709     HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
710 
711   /* USER CODE BEGIN UART7_MspInit 1 */
712 
713   /* USER CODE END UART7_MspInit 1 */
714   }
715   else if(huart->Instance==UART8)
716   {
717   /* USER CODE BEGIN UART8_MspInit 0 */
718 
719   /* USER CODE END UART8_MspInit 0 */
720     /* Peripheral clock enable */
721     __HAL_RCC_UART8_CLK_ENABLE();
722 
723     __HAL_RCC_GPIOE_CLK_ENABLE();
724     /**UART8 GPIO Configuration
725     PE1     ------> UART8_TX
726     PE0     ------> UART8_RX
727     */
728     GPIO_InitStruct.Pin = GPIO_PIN_1|GPIO_PIN_0;
729     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
730     GPIO_InitStruct.Pull = GPIO_PULLUP;
731     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
732     GPIO_InitStruct.Alternate = GPIO_AF8_UART8;
733     HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
734 
735   /* USER CODE BEGIN UART8_MspInit 1 */
736 
737   /* USER CODE END UART8_MspInit 1 */
738   }
739   else if(huart->Instance==USART1)
740   {
741   /* USER CODE BEGIN USART1_MspInit 0 */
742 
743   /* USER CODE END USART1_MspInit 0 */
744     /* Peripheral clock enable */
745     __HAL_RCC_USART1_CLK_ENABLE();
746 
747     __HAL_RCC_GPIOB_CLK_ENABLE();
748     /**USART1 GPIO Configuration
749     PB7     ------> USART1_RX
750     PB6     ------> USART1_TX
751     */
752     GPIO_InitStruct.Pin = GPIO_PIN_7|GPIO_PIN_6;
753     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
754     GPIO_InitStruct.Pull = GPIO_PULLUP;
755     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
756     GPIO_InitStruct.Alternate = GPIO_AF7_USART1;
757     HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
758 
759   /* USER CODE BEGIN USART1_MspInit 1 */
760 
761   /* USER CODE END USART1_MspInit 1 */
762   }
763   else if(huart->Instance==USART3)
764   {
765   /* USER CODE BEGIN USART3_MspInit 0 */
766 
767   /* USER CODE END USART3_MspInit 0 */
768     /* Peripheral clock enable */
769     __HAL_RCC_USART3_CLK_ENABLE();
770 
771     __HAL_RCC_GPIOD_CLK_ENABLE();
772     /**USART3 GPIO Configuration
773     PD9     ------> USART3_RX
774     PD8     ------> USART3_TX
775     */
776     GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_8;
777     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
778     GPIO_InitStruct.Pull = GPIO_PULLUP;
779     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
780     GPIO_InitStruct.Alternate = GPIO_AF7_USART3;
781     HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
782 
783   /* USER CODE BEGIN USART3_MspInit 1 */
784 
785   /* USER CODE END USART3_MspInit 1 */
786   }
787   else if(huart->Instance==USART6)
788   {
789   /* USER CODE BEGIN USART6_MspInit 0 */
790 
791   /* USER CODE END USART6_MspInit 0 */
792     /* Peripheral clock enable */
793     __HAL_RCC_USART6_CLK_ENABLE();
794 
795     __HAL_RCC_GPIOG_CLK_ENABLE();
796     /**USART6 GPIO Configuration
797     PG14     ------> USART6_TX
798     PG9     ------> USART6_RX
799     */
800     GPIO_InitStruct.Pin = GPIO_PIN_14|GPIO_PIN_9;
801     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
802     GPIO_InitStruct.Pull = GPIO_PULLUP;
803     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
804     GPIO_InitStruct.Alternate = GPIO_AF8_USART6;
805     HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
806 
807     /* USART6 interrupt Init */
808     HAL_NVIC_SetPriority(USART6_IRQn, 0, 0);
809     HAL_NVIC_EnableIRQ(USART6_IRQn);
810   /* USER CODE BEGIN USART6_MspInit 1 */
811 
812   /* USER CODE END USART6_MspInit 1 */
813   }
814 
815 }
816 
817 /**
818 * @brief UART MSP De-Initialization
819 * This function freeze the hardware resources used in this example
820 * @param huart: UART handle pointer
821 * @retval None
822 */
HAL_UART_MspDeInit(UART_HandleTypeDef * huart)823 void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
824 {
825   if(huart->Instance==UART7)
826   {
827   /* USER CODE BEGIN UART7_MspDeInit 0 */
828 
829   /* USER CODE END UART7_MspDeInit 0 */
830     /* Peripheral clock disable */
831     __HAL_RCC_UART7_CLK_DISABLE();
832 
833     /**UART7 GPIO Configuration
834     PE8     ------> UART7_TX
835     PE7     ------> UART7_RX
836     */
837     HAL_GPIO_DeInit(GPIOE, GPIO_PIN_8|GPIO_PIN_7);
838 
839   /* USER CODE BEGIN UART7_MspDeInit 1 */
840 
841   /* USER CODE END UART7_MspDeInit 1 */
842   }
843   else if(huart->Instance==UART8)
844   {
845   /* USER CODE BEGIN UART8_MspDeInit 0 */
846 
847   /* USER CODE END UART8_MspDeInit 0 */
848     /* Peripheral clock disable */
849     __HAL_RCC_UART8_CLK_DISABLE();
850 
851     /**UART8 GPIO Configuration
852     PE1     ------> UART8_TX
853     PE0     ------> UART8_RX
854     */
855     HAL_GPIO_DeInit(GPIOE, GPIO_PIN_1|GPIO_PIN_0);
856 
857   /* USER CODE BEGIN UART8_MspDeInit 1 */
858 
859   /* USER CODE END UART8_MspDeInit 1 */
860   }
861   else if(huart->Instance==USART1)
862   {
863   /* USER CODE BEGIN USART1_MspDeInit 0 */
864 
865   /* USER CODE END USART1_MspDeInit 0 */
866     /* Peripheral clock disable */
867     __HAL_RCC_USART1_CLK_DISABLE();
868 
869     /**USART1 GPIO Configuration
870     PB7     ------> USART1_RX
871     PB6     ------> USART1_TX
872     */
873     HAL_GPIO_DeInit(GPIOB, GPIO_PIN_7|GPIO_PIN_6);
874 
875   /* USER CODE BEGIN USART1_MspDeInit 1 */
876 
877   /* USER CODE END USART1_MspDeInit 1 */
878   }
879   else if(huart->Instance==USART3)
880   {
881   /* USER CODE BEGIN USART3_MspDeInit 0 */
882 
883   /* USER CODE END USART3_MspDeInit 0 */
884     /* Peripheral clock disable */
885     __HAL_RCC_USART3_CLK_DISABLE();
886 
887     /**USART3 GPIO Configuration
888     PD9     ------> USART3_RX
889     PD8     ------> USART3_TX
890     */
891     HAL_GPIO_DeInit(GPIOD, GPIO_PIN_9|GPIO_PIN_8);
892 
893   /* USER CODE BEGIN USART3_MspDeInit 1 */
894 
895   /* USER CODE END USART3_MspDeInit 1 */
896   }
897   else if(huart->Instance==USART6)
898   {
899   /* USER CODE BEGIN USART6_MspDeInit 0 */
900 
901   /* USER CODE END USART6_MspDeInit 0 */
902     /* Peripheral clock disable */
903     __HAL_RCC_USART6_CLK_DISABLE();
904 
905     /**USART6 GPIO Configuration
906     PG14     ------> USART6_TX
907     PG9     ------> USART6_RX
908     */
909     HAL_GPIO_DeInit(GPIOG, GPIO_PIN_14|GPIO_PIN_9);
910 
911     /* USART6 interrupt DeInit */
912     HAL_NVIC_DisableIRQ(USART6_IRQn);
913   /* USER CODE BEGIN USART6_MspDeInit 1 */
914 
915   /* USER CODE END USART6_MspDeInit 1 */
916   }
917 
918 }
919 
920 /* USER CODE BEGIN 1 */
921 
922 /* USER CODE END 1 */
923 
924 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
925