1 /* USER CODE BEGIN Header */
2 /**
3   ******************************************************************************
4   * @file         stm32f4xx_hal_msp.c
5   * @brief        This file provides code for the MSP Initialization
6   *               and de-Initialization codes.
7   ******************************************************************************
8   * @attention
9   *
10   * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
11   * All rights reserved.</center></h2>
12   *
13   * This software component is licensed by ST under BSD 3-Clause license,
14   * the "License"; You may not use this file except in compliance with the
15   * License. You may obtain a copy of the License at:
16   *                        opensource.org/licenses/BSD-3-Clause
17   *
18   ******************************************************************************
19   */
20 /* USER CODE END Header */
21 
22 /* Includes ------------------------------------------------------------------*/
23 #include "main.h"
24 /* USER CODE BEGIN Includes */
25 #include <drv_common.h>
26 /* USER CODE END Includes */
27 
28 /* Private typedef -----------------------------------------------------------*/
29 /* USER CODE BEGIN TD */
30 
31 /* USER CODE END TD */
32 
33 /* Private define ------------------------------------------------------------*/
34 /* USER CODE BEGIN Define */
35 
36 /* USER CODE END Define */
37 
38 /* Private macro -------------------------------------------------------------*/
39 /* USER CODE BEGIN Macro */
40 
41 /* USER CODE END Macro */
42 
43 /* Private variables ---------------------------------------------------------*/
44 /* USER CODE BEGIN PV */
45 
46 /* USER CODE END PV */
47 
48 /* Private function prototypes -----------------------------------------------*/
49 /* USER CODE BEGIN PFP */
50 
51 /* USER CODE END PFP */
52 
53 /* External functions --------------------------------------------------------*/
54 /* USER CODE BEGIN ExternalFunctions */
55 
56 /* USER CODE END ExternalFunctions */
57 
58 /* USER CODE BEGIN 0 */
59 
60 /* USER CODE END 0 */
61 
62 void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim);
63                                                                                 /**
64   * Initializes the Global MSP.
65   */
HAL_MspInit(void)66 void HAL_MspInit(void)
67 {
68   /* USER CODE BEGIN MspInit 0 */
69 
70   /* USER CODE END MspInit 0 */
71 
72   __HAL_RCC_SYSCFG_CLK_ENABLE();
73   __HAL_RCC_PWR_CLK_ENABLE();
74 
75   /* System interrupt init*/
76 
77   /* USER CODE BEGIN MspInit 1 */
78 
79   /* USER CODE END MspInit 1 */
80 }
81 
82 /**
83 * @brief ADC MSP Initialization
84 * This function configures the hardware resources used in this example
85 * @param hadc: ADC handle pointer
86 * @retval None
87 */
HAL_ADC_MspInit(ADC_HandleTypeDef * hadc)88 void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc)
89 {
90   GPIO_InitTypeDef GPIO_InitStruct = {0};
91   if(hadc->Instance==ADC1)
92   {
93   /* USER CODE BEGIN ADC1_MspInit 0 */
94 
95   /* USER CODE END ADC1_MspInit 0 */
96     /* Peripheral clock enable */
97     __HAL_RCC_ADC1_CLK_ENABLE();
98   /* USER CODE BEGIN ADC1_MspInit 1 */
99 
100   /* USER CODE END ADC1_MspInit 1 */
101   }
102   else if(hadc->Instance==ADC3)
103   {
104   /* USER CODE BEGIN ADC3_MspInit 0 */
105 
106   /* USER CODE END ADC3_MspInit 0 */
107     /* Peripheral clock enable */
108     __HAL_RCC_ADC3_CLK_ENABLE();
109 
110     __HAL_RCC_GPIOF_CLK_ENABLE();
111     /**ADC3 GPIO Configuration
112     PF10     ------> ADC3_IN8
113     */
114     GPIO_InitStruct.Pin = GPIO_PIN_10;
115     GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
116     GPIO_InitStruct.Pull = GPIO_NOPULL;
117     HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
118 
119   /* USER CODE BEGIN ADC3_MspInit 1 */
120 
121   /* USER CODE END ADC3_MspInit 1 */
122   }
123 
124 }
125 
126 /**
127 * @brief ADC MSP De-Initialization
128 * This function freeze the hardware resources used in this example
129 * @param hadc: ADC handle pointer
130 * @retval None
131 */
HAL_ADC_MspDeInit(ADC_HandleTypeDef * hadc)132 void HAL_ADC_MspDeInit(ADC_HandleTypeDef* hadc)
133 {
134   if(hadc->Instance==ADC1)
135   {
136   /* USER CODE BEGIN ADC1_MspDeInit 0 */
137 
138   /* USER CODE END ADC1_MspDeInit 0 */
139     /* Peripheral clock disable */
140     __HAL_RCC_ADC1_CLK_DISABLE();
141   /* USER CODE BEGIN ADC1_MspDeInit 1 */
142 
143   /* USER CODE END ADC1_MspDeInit 1 */
144   }
145   else if(hadc->Instance==ADC3)
146   {
147   /* USER CODE BEGIN ADC3_MspDeInit 0 */
148 
149   /* USER CODE END ADC3_MspDeInit 0 */
150     /* Peripheral clock disable */
151     __HAL_RCC_ADC3_CLK_DISABLE();
152 
153     /**ADC3 GPIO Configuration
154     PF10     ------> ADC3_IN8
155     */
156     HAL_GPIO_DeInit(GPIOF, GPIO_PIN_10);
157 
158   /* USER CODE BEGIN ADC3_MspDeInit 1 */
159 
160   /* USER CODE END ADC3_MspDeInit 1 */
161   }
162 
163 }
164 
165 static uint32_t HAL_RCC_CAN1_CLK_ENABLED=0;
166 
167 /**
168 * @brief CAN MSP Initialization
169 * This function configures the hardware resources used in this example
170 * @param hcan: CAN handle pointer
171 * @retval None
172 */
HAL_CAN_MspInit(CAN_HandleTypeDef * hcan)173 void HAL_CAN_MspInit(CAN_HandleTypeDef* hcan)
174 {
175   GPIO_InitTypeDef GPIO_InitStruct = {0};
176   if(hcan->Instance==CAN1)
177   {
178   /* USER CODE BEGIN CAN1_MspInit 0 */
179 
180   /* USER CODE END CAN1_MspInit 0 */
181     /* Peripheral clock enable */
182     HAL_RCC_CAN1_CLK_ENABLED++;
183     if(HAL_RCC_CAN1_CLK_ENABLED==1){
184       __HAL_RCC_CAN1_CLK_ENABLE();
185     }
186 
187     __HAL_RCC_GPIOD_CLK_ENABLE();
188     /**CAN1 GPIO Configuration
189     PD0     ------> CAN1_RX
190     PD1     ------> CAN1_TX
191     */
192     GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1;
193     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
194     GPIO_InitStruct.Pull = GPIO_NOPULL;
195     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
196     GPIO_InitStruct.Alternate = GPIO_AF9_CAN1;
197     HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
198 
199   /* USER CODE BEGIN CAN1_MspInit 1 */
200 
201   /* USER CODE END CAN1_MspInit 1 */
202   }
203   else if(hcan->Instance==CAN2)
204   {
205   /* USER CODE BEGIN CAN2_MspInit 0 */
206 
207   /* USER CODE END CAN2_MspInit 0 */
208     /* Peripheral clock enable */
209     __HAL_RCC_CAN2_CLK_ENABLE();
210     HAL_RCC_CAN1_CLK_ENABLED++;
211     if(HAL_RCC_CAN1_CLK_ENABLED==1){
212       __HAL_RCC_CAN1_CLK_ENABLE();
213     }
214 
215     __HAL_RCC_GPIOB_CLK_ENABLE();
216     /**CAN2 GPIO Configuration
217     PB5     ------> CAN2_RX
218     PB6     ------> CAN2_TX
219     */
220     GPIO_InitStruct.Pin = GPIO_PIN_5|GPIO_PIN_6;
221     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
222     GPIO_InitStruct.Pull = GPIO_NOPULL;
223     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
224     GPIO_InitStruct.Alternate = GPIO_AF9_CAN2;
225     HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
226 
227   /* USER CODE BEGIN CAN2_MspInit 1 */
228 
229   /* USER CODE END CAN2_MspInit 1 */
230   }
231 
232 }
233 
234 /**
235 * @brief CAN MSP De-Initialization
236 * This function freeze the hardware resources used in this example
237 * @param hcan: CAN handle pointer
238 * @retval None
239 */
HAL_CAN_MspDeInit(CAN_HandleTypeDef * hcan)240 void HAL_CAN_MspDeInit(CAN_HandleTypeDef* hcan)
241 {
242   if(hcan->Instance==CAN1)
243   {
244   /* USER CODE BEGIN CAN1_MspDeInit 0 */
245 
246   /* USER CODE END CAN1_MspDeInit 0 */
247     /* Peripheral clock disable */
248     HAL_RCC_CAN1_CLK_ENABLED--;
249     if(HAL_RCC_CAN1_CLK_ENABLED==0){
250       __HAL_RCC_CAN1_CLK_DISABLE();
251     }
252 
253     /**CAN1 GPIO Configuration
254     PD0     ------> CAN1_RX
255     PD1     ------> CAN1_TX
256     */
257     HAL_GPIO_DeInit(GPIOD, GPIO_PIN_0|GPIO_PIN_1);
258 
259   /* USER CODE BEGIN CAN1_MspDeInit 1 */
260 
261   /* USER CODE END CAN1_MspDeInit 1 */
262   }
263   else if(hcan->Instance==CAN2)
264   {
265   /* USER CODE BEGIN CAN2_MspDeInit 0 */
266 
267   /* USER CODE END CAN2_MspDeInit 0 */
268     /* Peripheral clock disable */
269     __HAL_RCC_CAN2_CLK_DISABLE();
270     HAL_RCC_CAN1_CLK_ENABLED--;
271     if(HAL_RCC_CAN1_CLK_ENABLED==0){
272       __HAL_RCC_CAN1_CLK_DISABLE();
273     }
274 
275     /**CAN2 GPIO Configuration
276     PB5     ------> CAN2_RX
277     PB6     ------> CAN2_TX
278     */
279     HAL_GPIO_DeInit(GPIOB, GPIO_PIN_5|GPIO_PIN_6);
280 
281   /* USER CODE BEGIN CAN2_MspDeInit 1 */
282 
283   /* USER CODE END CAN2_MspDeInit 1 */
284   }
285 
286 }
287 
288 /**
289 * @brief I2C MSP Initialization
290 * This function configures the hardware resources used in this example
291 * @param hi2c: I2C handle pointer
292 * @retval None
293 */
HAL_I2C_MspInit(I2C_HandleTypeDef * hi2c)294 void HAL_I2C_MspInit(I2C_HandleTypeDef* hi2c)
295 {
296   GPIO_InitTypeDef GPIO_InitStruct = {0};
297   if(hi2c->Instance==I2C2)
298   {
299   /* USER CODE BEGIN I2C2_MspInit 0 */
300 
301   /* USER CODE END I2C2_MspInit 0 */
302 
303     __HAL_RCC_GPIOF_CLK_ENABLE();
304     /**I2C2 GPIO Configuration
305     PF0     ------> I2C2_SDA
306     PF1     ------> I2C2_SCL
307     */
308     GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1;
309     GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
310     GPIO_InitStruct.Pull = GPIO_NOPULL;
311     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
312     GPIO_InitStruct.Alternate = GPIO_AF4_I2C2;
313     HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
314 
315     /* Peripheral clock enable */
316     __HAL_RCC_I2C2_CLK_ENABLE();
317   /* USER CODE BEGIN I2C2_MspInit 1 */
318 
319   /* USER CODE END I2C2_MspInit 1 */
320   }
321 
322 }
323 
324 /**
325 * @brief I2C MSP De-Initialization
326 * This function freeze the hardware resources used in this example
327 * @param hi2c: I2C handle pointer
328 * @retval None
329 */
HAL_I2C_MspDeInit(I2C_HandleTypeDef * hi2c)330 void HAL_I2C_MspDeInit(I2C_HandleTypeDef* hi2c)
331 {
332   if(hi2c->Instance==I2C2)
333   {
334   /* USER CODE BEGIN I2C2_MspDeInit 0 */
335 
336   /* USER CODE END I2C2_MspDeInit 0 */
337     /* Peripheral clock disable */
338     __HAL_RCC_I2C2_CLK_DISABLE();
339 
340     /**I2C2 GPIO Configuration
341     PF0     ------> I2C2_SDA
342     PF1     ------> I2C2_SCL
343     */
344     HAL_GPIO_DeInit(GPIOF, GPIO_PIN_0);
345 
346     HAL_GPIO_DeInit(GPIOF, GPIO_PIN_1);
347 
348   /* USER CODE BEGIN I2C2_MspDeInit 1 */
349 
350   /* USER CODE END I2C2_MspDeInit 1 */
351   }
352 
353 }
354 
355 /**
356 * @brief TIM_Base MSP Initialization
357 * This function configures the hardware resources used in this example
358 * @param htim_base: TIM_Base handle pointer
359 * @retval None
360 */
HAL_TIM_Base_MspInit(TIM_HandleTypeDef * htim_base)361 void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
362 {
363   if(htim_base->Instance==TIM1)
364   {
365   /* USER CODE BEGIN TIM1_MspInit 0 */
366 
367   /* USER CODE END TIM1_MspInit 0 */
368     /* Peripheral clock enable */
369     __HAL_RCC_TIM1_CLK_ENABLE();
370   /* USER CODE BEGIN TIM1_MspInit 1 */
371 
372   /* USER CODE END TIM1_MspInit 1 */
373   }
374   else if(htim_base->Instance==TIM4)
375   {
376   /* USER CODE BEGIN TIM4_MspInit 0 */
377 
378   /* USER CODE END TIM4_MspInit 0 */
379     /* Peripheral clock enable */
380     __HAL_RCC_TIM4_CLK_ENABLE();
381   /* USER CODE BEGIN TIM4_MspInit 1 */
382 
383   /* USER CODE END TIM4_MspInit 1 */
384   }
385   else if(htim_base->Instance==TIM5)
386   {
387   /* USER CODE BEGIN TIM5_MspInit 0 */
388 
389   /* USER CODE END TIM5_MspInit 0 */
390     /* Peripheral clock enable */
391     __HAL_RCC_TIM5_CLK_ENABLE();
392   /* USER CODE BEGIN TIM5_MspInit 1 */
393 
394   /* USER CODE END TIM5_MspInit 1 */
395   }
396   else if(htim_base->Instance==TIM8)
397   {
398   /* USER CODE BEGIN TIM8_MspInit 0 */
399 
400   /* USER CODE END TIM8_MspInit 0 */
401     /* Peripheral clock enable */
402     __HAL_RCC_TIM8_CLK_ENABLE();
403   /* USER CODE BEGIN TIM8_MspInit 1 */
404 
405   /* USER CODE END TIM8_MspInit 1 */
406   }
407 
408 }
409 
HAL_TIM_MspPostInit(TIM_HandleTypeDef * htim)410 void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim)
411 {
412   GPIO_InitTypeDef GPIO_InitStruct = {0};
413   if(htim->Instance==TIM1)
414   {
415   /* USER CODE BEGIN TIM1_MspPostInit 0 */
416 
417   /* USER CODE END TIM1_MspPostInit 0 */
418     __HAL_RCC_GPIOE_CLK_ENABLE();
419     /**TIM1 GPIO Configuration
420     PE13     ------> TIM1_CH3
421     PE9     ------> TIM1_CH1
422     PE11     ------> TIM1_CH2
423     PE14     ------> TIM1_CH4
424     */
425     GPIO_InitStruct.Pin = GPIO_PIN_13|GPIO_PIN_9|GPIO_PIN_11|GPIO_PIN_14;
426     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
427     GPIO_InitStruct.Pull = GPIO_NOPULL;
428     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
429     GPIO_InitStruct.Alternate = GPIO_AF1_TIM1;
430     HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
431 
432   /* USER CODE BEGIN TIM1_MspPostInit 1 */
433 
434   /* USER CODE END TIM1_MspPostInit 1 */
435   }
436   else if(htim->Instance==TIM4)
437   {
438   /* USER CODE BEGIN TIM4_MspPostInit 0 */
439 
440   /* USER CODE END TIM4_MspPostInit 0 */
441 
442     __HAL_RCC_GPIOD_CLK_ENABLE();
443     /**TIM4 GPIO Configuration
444     PD14     ------> TIM4_CH3
445     */
446     GPIO_InitStruct.Pin = GPIO_PIN_14;
447     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
448     GPIO_InitStruct.Pull = GPIO_NOPULL;
449     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
450     GPIO_InitStruct.Alternate = GPIO_AF2_TIM4;
451     HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
452 
453   /* USER CODE BEGIN TIM4_MspPostInit 1 */
454 
455   /* USER CODE END TIM4_MspPostInit 1 */
456   }
457   else if(htim->Instance==TIM5)
458   {
459   /* USER CODE BEGIN TIM5_MspPostInit 0 */
460 
461   /* USER CODE END TIM5_MspPostInit 0 */
462 
463     __HAL_RCC_GPIOH_CLK_ENABLE();
464     /**TIM5 GPIO Configuration
465     PH12     ------> TIM5_CH3
466     PH11     ------> TIM5_CH2
467     PH10     ------> TIM5_CH1
468     */
469     GPIO_InitStruct.Pin = GPIO_PIN_12|GPIO_PIN_11|GPIO_PIN_10;
470     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
471     GPIO_InitStruct.Pull = GPIO_NOPULL;
472     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
473     GPIO_InitStruct.Alternate = GPIO_AF2_TIM5;
474     HAL_GPIO_Init(GPIOH, &GPIO_InitStruct);
475 
476   /* USER CODE BEGIN TIM5_MspPostInit 1 */
477 
478   /* USER CODE END TIM5_MspPostInit 1 */
479   }
480   else if(htim->Instance==TIM8)
481   {
482   /* USER CODE BEGIN TIM8_MspPostInit 0 */
483 
484   /* USER CODE END TIM8_MspPostInit 0 */
485 
486     __HAL_RCC_GPIOI_CLK_ENABLE();
487     __HAL_RCC_GPIOC_CLK_ENABLE();
488     /**TIM8 GPIO Configuration
489     PI7     ------> TIM8_CH3
490     PI6     ------> TIM8_CH2
491     PC6     ------> TIM8_CH1
492     */
493     GPIO_InitStruct.Pin = GPIO_PIN_7|GPIO_PIN_6;
494     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
495     GPIO_InitStruct.Pull = GPIO_NOPULL;
496     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
497     GPIO_InitStruct.Alternate = GPIO_AF3_TIM8;
498     HAL_GPIO_Init(GPIOI, &GPIO_InitStruct);
499 
500     GPIO_InitStruct.Pin = GPIO_PIN_6;
501     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
502     GPIO_InitStruct.Pull = GPIO_NOPULL;
503     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
504     GPIO_InitStruct.Alternate = GPIO_AF3_TIM8;
505     HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
506 
507   /* USER CODE BEGIN TIM8_MspPostInit 1 */
508 
509   /* USER CODE END TIM8_MspPostInit 1 */
510   }
511 
512 }
513 /**
514 * @brief TIM_Base MSP De-Initialization
515 * This function freeze the hardware resources used in this example
516 * @param htim_base: TIM_Base handle pointer
517 * @retval None
518 */
HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef * htim_base)519 void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base)
520 {
521   if(htim_base->Instance==TIM1)
522   {
523   /* USER CODE BEGIN TIM1_MspDeInit 0 */
524 
525   /* USER CODE END TIM1_MspDeInit 0 */
526     /* Peripheral clock disable */
527     __HAL_RCC_TIM1_CLK_DISABLE();
528   /* USER CODE BEGIN TIM1_MspDeInit 1 */
529 
530   /* USER CODE END TIM1_MspDeInit 1 */
531   }
532   else if(htim_base->Instance==TIM4)
533   {
534   /* USER CODE BEGIN TIM4_MspDeInit 0 */
535 
536   /* USER CODE END TIM4_MspDeInit 0 */
537     /* Peripheral clock disable */
538     __HAL_RCC_TIM4_CLK_DISABLE();
539   /* USER CODE BEGIN TIM4_MspDeInit 1 */
540 
541   /* USER CODE END TIM4_MspDeInit 1 */
542   }
543   else if(htim_base->Instance==TIM5)
544   {
545   /* USER CODE BEGIN TIM5_MspDeInit 0 */
546 
547   /* USER CODE END TIM5_MspDeInit 0 */
548     /* Peripheral clock disable */
549     __HAL_RCC_TIM5_CLK_DISABLE();
550   /* USER CODE BEGIN TIM5_MspDeInit 1 */
551 
552   /* USER CODE END TIM5_MspDeInit 1 */
553   }
554   else if(htim_base->Instance==TIM8)
555   {
556   /* USER CODE BEGIN TIM8_MspDeInit 0 */
557 
558   /* USER CODE END TIM8_MspDeInit 0 */
559     /* Peripheral clock disable */
560     __HAL_RCC_TIM8_CLK_DISABLE();
561   /* USER CODE BEGIN TIM8_MspDeInit 1 */
562 
563   /* USER CODE END TIM8_MspDeInit 1 */
564   }
565 
566 }
567 
568 /**
569 * @brief UART MSP Initialization
570 * This function configures the hardware resources used in this example
571 * @param huart: UART handle pointer
572 * @retval None
573 */
HAL_UART_MspInit(UART_HandleTypeDef * huart)574 void HAL_UART_MspInit(UART_HandleTypeDef* huart)
575 {
576   GPIO_InitTypeDef GPIO_InitStruct = {0};
577   if(huart->Instance==USART1)
578   {
579   /* USER CODE BEGIN USART1_MspInit 0 */
580 
581   /* USER CODE END USART1_MspInit 0 */
582     /* Peripheral clock enable */
583     __HAL_RCC_USART1_CLK_ENABLE();
584 
585     __HAL_RCC_GPIOB_CLK_ENABLE();
586     __HAL_RCC_GPIOA_CLK_ENABLE();
587     /**USART1 GPIO Configuration
588     PB7     ------> USART1_RX
589     PA9     ------> USART1_TX
590     */
591     GPIO_InitStruct.Pin = GPIO_PIN_7;
592     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
593     GPIO_InitStruct.Pull = GPIO_PULLUP;
594     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
595     GPIO_InitStruct.Alternate = GPIO_AF7_USART1;
596     HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
597 
598     GPIO_InitStruct.Pin = GPIO_PIN_9;
599     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
600     GPIO_InitStruct.Pull = GPIO_PULLUP;
601     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
602     GPIO_InitStruct.Alternate = GPIO_AF7_USART1;
603     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
604 
605   /* USER CODE BEGIN USART1_MspInit 1 */
606 
607   /* USER CODE END USART1_MspInit 1 */
608   }
609   else if(huart->Instance==USART3)
610   {
611   /* USER CODE BEGIN USART3_MspInit 0 */
612 
613   /* USER CODE END USART3_MspInit 0 */
614     /* Peripheral clock enable */
615     __HAL_RCC_USART3_CLK_ENABLE();
616 
617     __HAL_RCC_GPIOC_CLK_ENABLE();
618     /**USART3 GPIO Configuration
619     PC11     ------> USART3_RX
620     PC10     ------> USART3_TX
621     */
622     GPIO_InitStruct.Pin = GPIO_PIN_11|GPIO_PIN_10;
623     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
624     GPIO_InitStruct.Pull = GPIO_NOPULL;
625     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
626     GPIO_InitStruct.Alternate = GPIO_AF7_USART3;
627     HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
628 
629   /* USER CODE BEGIN USART3_MspInit 1 */
630 
631   /* USER CODE END USART3_MspInit 1 */
632   }
633   else if(huart->Instance==USART6)
634   {
635   /* USER CODE BEGIN USART6_MspInit 0 */
636 
637   /* USER CODE END USART6_MspInit 0 */
638     /* Peripheral clock enable */
639     __HAL_RCC_USART6_CLK_ENABLE();
640 
641     __HAL_RCC_GPIOG_CLK_ENABLE();
642     /**USART6 GPIO Configuration
643     PG14     ------> USART6_TX
644     PG9     ------> USART6_RX
645     */
646     GPIO_InitStruct.Pin = GPIO_PIN_14|GPIO_PIN_9;
647     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
648     GPIO_InitStruct.Pull = GPIO_NOPULL;
649     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
650     GPIO_InitStruct.Alternate = GPIO_AF8_USART6;
651     HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
652 
653   /* USER CODE BEGIN USART6_MspInit 1 */
654 
655   /* USER CODE END USART6_MspInit 1 */
656   }
657 
658 }
659 
660 /**
661 * @brief UART MSP De-Initialization
662 * This function freeze the hardware resources used in this example
663 * @param huart: UART handle pointer
664 * @retval None
665 */
HAL_UART_MspDeInit(UART_HandleTypeDef * huart)666 void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
667 {
668   if(huart->Instance==USART1)
669   {
670   /* USER CODE BEGIN USART1_MspDeInit 0 */
671 
672   /* USER CODE END USART1_MspDeInit 0 */
673     /* Peripheral clock disable */
674     __HAL_RCC_USART1_CLK_DISABLE();
675 
676     /**USART1 GPIO Configuration
677     PB7     ------> USART1_RX
678     PA9     ------> USART1_TX
679     */
680     HAL_GPIO_DeInit(GPIOB, GPIO_PIN_7);
681 
682     HAL_GPIO_DeInit(GPIOA, GPIO_PIN_9);
683 
684   /* USER CODE BEGIN USART1_MspDeInit 1 */
685 
686   /* USER CODE END USART1_MspDeInit 1 */
687   }
688   else if(huart->Instance==USART3)
689   {
690   /* USER CODE BEGIN USART3_MspDeInit 0 */
691 
692   /* USER CODE END USART3_MspDeInit 0 */
693     /* Peripheral clock disable */
694     __HAL_RCC_USART3_CLK_DISABLE();
695 
696     /**USART3 GPIO Configuration
697     PC11     ------> USART3_RX
698     PC10     ------> USART3_TX
699     */
700     HAL_GPIO_DeInit(GPIOC, GPIO_PIN_11|GPIO_PIN_10);
701 
702   /* USER CODE BEGIN USART3_MspDeInit 1 */
703 
704   /* USER CODE END USART3_MspDeInit 1 */
705   }
706   else if(huart->Instance==USART6)
707   {
708   /* USER CODE BEGIN USART6_MspDeInit 0 */
709 
710   /* USER CODE END USART6_MspDeInit 0 */
711     /* Peripheral clock disable */
712     __HAL_RCC_USART6_CLK_DISABLE();
713 
714     /**USART6 GPIO Configuration
715     PG14     ------> USART6_TX
716     PG9     ------> USART6_RX
717     */
718     HAL_GPIO_DeInit(GPIOG, GPIO_PIN_14|GPIO_PIN_9);
719 
720   /* USER CODE BEGIN USART6_MspDeInit 1 */
721 
722   /* USER CODE END USART6_MspDeInit 1 */
723   }
724 
725 }
726 
727 /* USER CODE BEGIN 1 */
728 
729 /* USER CODE END 1 */
730