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   * @attention
9   *
10   * <h2><center>&copy; Copyright (c) 2020 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 
99     __HAL_RCC_GPIOB_CLK_ENABLE();
100     /**ADC1 GPIO Configuration
101     PB1     ------> ADC1_IN9
102     */
103     GPIO_InitStruct.Pin = GPIO_PIN_1;
104     GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
105     GPIO_InitStruct.Pull = GPIO_NOPULL;
106     HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
107 
108   /* USER CODE BEGIN ADC1_MspInit 1 */
109 
110   /* USER CODE END ADC1_MspInit 1 */
111   }
112 
113 }
114 
115 /**
116 * @brief ADC MSP De-Initialization
117 * This function freeze the hardware resources used in this example
118 * @param hadc: ADC handle pointer
119 * @retval None
120 */
HAL_ADC_MspDeInit(ADC_HandleTypeDef * hadc)121 void HAL_ADC_MspDeInit(ADC_HandleTypeDef* hadc)
122 {
123   if(hadc->Instance==ADC1)
124   {
125   /* USER CODE BEGIN ADC1_MspDeInit 0 */
126 
127   /* USER CODE END ADC1_MspDeInit 0 */
128     /* Peripheral clock disable */
129     __HAL_RCC_ADC1_CLK_DISABLE();
130 
131     /**ADC1 GPIO Configuration
132     PB1     ------> ADC1_IN9
133     */
134     HAL_GPIO_DeInit(GPIOB, GPIO_PIN_1);
135 
136   /* USER CODE BEGIN ADC1_MspDeInit 1 */
137 
138   /* USER CODE END ADC1_MspDeInit 1 */
139   }
140 
141 }
142 
143 /**
144 * @brief I2S MSP Initialization
145 * This function configures the hardware resources used in this example
146 * @param hi2s: I2S handle pointer
147 * @retval None
148 */
HAL_I2S_MspInit(I2S_HandleTypeDef * hi2s)149 void HAL_I2S_MspInit(I2S_HandleTypeDef* hi2s)
150 {
151   GPIO_InitTypeDef GPIO_InitStruct = {0};
152   if(hi2s->Instance==SPI2)
153   {
154   /* USER CODE BEGIN SPI2_MspInit 0 */
155 
156   /* USER CODE END SPI2_MspInit 0 */
157     /* Peripheral clock enable */
158     __HAL_RCC_SPI2_CLK_ENABLE();
159 
160     __HAL_RCC_GPIOB_CLK_ENABLE();
161     __HAL_RCC_GPIOC_CLK_ENABLE();
162     __HAL_RCC_GPIOI_CLK_ENABLE();
163     /**I2S2 GPIO Configuration
164     PB12     ------> I2S2_WS
165     PB13     ------> I2S2_CK
166     PB15     ------> I2S2_SD
167     PC6     ------> I2S2_MCK
168     PI2     ------> I2S2_ext_SD
169     */
170     GPIO_InitStruct.Pin = GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_15;
171     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
172     GPIO_InitStruct.Pull = GPIO_NOPULL;
173     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
174     GPIO_InitStruct.Alternate = GPIO_AF5_SPI2;
175     HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
176 
177     GPIO_InitStruct.Pin = GPIO_PIN_6;
178     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
179     GPIO_InitStruct.Pull = GPIO_NOPULL;
180     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
181     GPIO_InitStruct.Alternate = GPIO_AF5_SPI2;
182     HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
183 
184     GPIO_InitStruct.Pin = GPIO_PIN_2;
185     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
186     GPIO_InitStruct.Pull = GPIO_NOPULL;
187     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
188     GPIO_InitStruct.Alternate = GPIO_AF6_I2S2ext;
189     HAL_GPIO_Init(GPIOI, &GPIO_InitStruct);
190 
191   /* USER CODE BEGIN SPI2_MspInit 1 */
192 
193   /* USER CODE END SPI2_MspInit 1 */
194   }
195 
196 }
197 
198 /**
199 * @brief I2S MSP De-Initialization
200 * This function freeze the hardware resources used in this example
201 * @param hi2s: I2S handle pointer
202 * @retval None
203 */
HAL_I2S_MspDeInit(I2S_HandleTypeDef * hi2s)204 void HAL_I2S_MspDeInit(I2S_HandleTypeDef* hi2s)
205 {
206   if(hi2s->Instance==SPI2)
207   {
208   /* USER CODE BEGIN SPI2_MspDeInit 0 */
209 
210   /* USER CODE END SPI2_MspDeInit 0 */
211     /* Peripheral clock disable */
212     __HAL_RCC_SPI2_CLK_DISABLE();
213 
214     /**I2S2 GPIO Configuration
215     PB12     ------> I2S2_WS
216     PB13     ------> I2S2_CK
217     PB15     ------> I2S2_SD
218     PC6     ------> I2S2_MCK
219     PI2     ------> I2S2_ext_SD
220     */
221     HAL_GPIO_DeInit(GPIOB, GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_15);
222 
223     HAL_GPIO_DeInit(GPIOC, GPIO_PIN_6);
224 
225     HAL_GPIO_DeInit(GPIOI, GPIO_PIN_2);
226 
227   /* USER CODE BEGIN SPI2_MspDeInit 1 */
228 
229   /* USER CODE END SPI2_MspDeInit 1 */
230   }
231 
232 }
233 
234 /**
235 * @brief RNG MSP Initialization
236 * This function configures the hardware resources used in this example
237 * @param hrng: RNG handle pointer
238 * @retval None
239 */
HAL_RNG_MspInit(RNG_HandleTypeDef * hrng)240 void HAL_RNG_MspInit(RNG_HandleTypeDef* hrng)
241 {
242   if(hrng->Instance==RNG)
243   {
244   /* USER CODE BEGIN RNG_MspInit 0 */
245 
246   /* USER CODE END RNG_MspInit 0 */
247     /* Peripheral clock enable */
248     __HAL_RCC_RNG_CLK_ENABLE();
249   /* USER CODE BEGIN RNG_MspInit 1 */
250 
251   /* USER CODE END RNG_MspInit 1 */
252   }
253 
254 }
255 
256 /**
257 * @brief RNG MSP De-Initialization
258 * This function freeze the hardware resources used in this example
259 * @param hrng: RNG handle pointer
260 * @retval None
261 */
HAL_RNG_MspDeInit(RNG_HandleTypeDef * hrng)262 void HAL_RNG_MspDeInit(RNG_HandleTypeDef* hrng)
263 {
264   if(hrng->Instance==RNG)
265   {
266   /* USER CODE BEGIN RNG_MspDeInit 0 */
267 
268   /* USER CODE END RNG_MspDeInit 0 */
269     /* Peripheral clock disable */
270     __HAL_RCC_RNG_CLK_DISABLE();
271   /* USER CODE BEGIN RNG_MspDeInit 1 */
272 
273   /* USER CODE END RNG_MspDeInit 1 */
274   }
275 
276 }
277 
278 /**
279 * @brief RTC MSP Initialization
280 * This function configures the hardware resources used in this example
281 * @param hrtc: RTC handle pointer
282 * @retval None
283 */
HAL_RTC_MspInit(RTC_HandleTypeDef * hrtc)284 void HAL_RTC_MspInit(RTC_HandleTypeDef* hrtc)
285 {
286   if(hrtc->Instance==RTC)
287   {
288   /* USER CODE BEGIN RTC_MspInit 0 */
289 
290   /* USER CODE END RTC_MspInit 0 */
291     /* Peripheral clock enable */
292     __HAL_RCC_RTC_ENABLE();
293   /* USER CODE BEGIN RTC_MspInit 1 */
294 
295   /* USER CODE END RTC_MspInit 1 */
296   }
297 
298 }
299 
300 /**
301 * @brief RTC MSP De-Initialization
302 * This function freeze the hardware resources used in this example
303 * @param hrtc: RTC handle pointer
304 * @retval None
305 */
HAL_RTC_MspDeInit(RTC_HandleTypeDef * hrtc)306 void HAL_RTC_MspDeInit(RTC_HandleTypeDef* hrtc)
307 {
308   if(hrtc->Instance==RTC)
309   {
310   /* USER CODE BEGIN RTC_MspDeInit 0 */
311 
312   /* USER CODE END RTC_MspDeInit 0 */
313     /* Peripheral clock disable */
314     __HAL_RCC_RTC_DISABLE();
315   /* USER CODE BEGIN RTC_MspDeInit 1 */
316 
317   /* USER CODE END RTC_MspDeInit 1 */
318   }
319 
320 }
321 
322 /**
323 * @brief SD MSP Initialization
324 * This function configures the hardware resources used in this example
325 * @param hsd: SD handle pointer
326 * @retval None
327 */
HAL_SD_MspInit(SD_HandleTypeDef * hsd)328 void HAL_SD_MspInit(SD_HandleTypeDef* hsd)
329 {
330   GPIO_InitTypeDef GPIO_InitStruct = {0};
331   if(hsd->Instance==SDIO)
332   {
333   /* USER CODE BEGIN SDIO_MspInit 0 */
334 
335   /* USER CODE END SDIO_MspInit 0 */
336     /* Peripheral clock enable */
337     __HAL_RCC_SDIO_CLK_ENABLE();
338 
339     __HAL_RCC_GPIOC_CLK_ENABLE();
340     __HAL_RCC_GPIOD_CLK_ENABLE();
341     /**SDIO GPIO Configuration
342     PC8     ------> SDIO_D0
343     PC9     ------> SDIO_D1
344     PC10     ------> SDIO_D2
345     PC11     ------> SDIO_D3
346     PC12     ------> SDIO_CK
347     PD2     ------> SDIO_CMD
348     */
349     GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11
350                           |GPIO_PIN_12;
351     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
352     GPIO_InitStruct.Pull = GPIO_NOPULL;
353     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
354     GPIO_InitStruct.Alternate = GPIO_AF12_SDIO;
355     HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
356 
357     GPIO_InitStruct.Pin = GPIO_PIN_2;
358     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
359     GPIO_InitStruct.Pull = GPIO_NOPULL;
360     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
361     GPIO_InitStruct.Alternate = GPIO_AF12_SDIO;
362     HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
363 
364   /* USER CODE BEGIN SDIO_MspInit 1 */
365 
366   /* USER CODE END SDIO_MspInit 1 */
367   }
368 
369 }
370 
371 /**
372 * @brief SD MSP De-Initialization
373 * This function freeze the hardware resources used in this example
374 * @param hsd: SD handle pointer
375 * @retval None
376 */
HAL_SD_MspDeInit(SD_HandleTypeDef * hsd)377 void HAL_SD_MspDeInit(SD_HandleTypeDef* hsd)
378 {
379   if(hsd->Instance==SDIO)
380   {
381   /* USER CODE BEGIN SDIO_MspDeInit 0 */
382 
383   /* USER CODE END SDIO_MspDeInit 0 */
384     /* Peripheral clock disable */
385     __HAL_RCC_SDIO_CLK_DISABLE();
386 
387     /**SDIO GPIO Configuration
388     PC8     ------> SDIO_D0
389     PC9     ------> SDIO_D1
390     PC10     ------> SDIO_D2
391     PC11     ------> SDIO_D3
392     PC12     ------> SDIO_CK
393     PD2     ------> SDIO_CMD
394     */
395     HAL_GPIO_DeInit(GPIOC, GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11
396                           |GPIO_PIN_12);
397 
398     HAL_GPIO_DeInit(GPIOD, GPIO_PIN_2);
399 
400   /* USER CODE BEGIN SDIO_MspDeInit 1 */
401 
402   /* USER CODE END SDIO_MspDeInit 1 */
403   }
404 
405 }
406 
407 /**
408 * @brief SPI MSP Initialization
409 * This function configures the hardware resources used in this example
410 * @param hspi: SPI handle pointer
411 * @retval None
412 */
HAL_SPI_MspInit(SPI_HandleTypeDef * hspi)413 void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi)
414 {
415   GPIO_InitTypeDef GPIO_InitStruct = {0};
416   if(hspi->Instance==SPI3)
417   {
418   /* USER CODE BEGIN SPI3_MspInit 0 */
419 
420   /* USER CODE END SPI3_MspInit 0 */
421     /* Peripheral clock enable */
422     __HAL_RCC_SPI3_CLK_ENABLE();
423 
424     __HAL_RCC_GPIOB_CLK_ENABLE();
425     /**SPI3 GPIO Configuration
426     PB3     ------> SPI3_SCK
427     PB4     ------> SPI3_MISO
428     PB5     ------> SPI3_MOSI
429     */
430     GPIO_InitStruct.Pin = GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5;
431     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
432     GPIO_InitStruct.Pull = GPIO_NOPULL;
433     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
434     GPIO_InitStruct.Alternate = GPIO_AF6_SPI3;
435     HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
436 
437   /* USER CODE BEGIN SPI3_MspInit 1 */
438 
439   /* USER CODE END SPI3_MspInit 1 */
440   }
441 
442 }
443 
444 /**
445 * @brief SPI MSP De-Initialization
446 * This function freeze the hardware resources used in this example
447 * @param hspi: SPI handle pointer
448 * @retval None
449 */
HAL_SPI_MspDeInit(SPI_HandleTypeDef * hspi)450 void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi)
451 {
452   if(hspi->Instance==SPI3)
453   {
454   /* USER CODE BEGIN SPI3_MspDeInit 0 */
455 
456   /* USER CODE END SPI3_MspDeInit 0 */
457     /* Peripheral clock disable */
458     __HAL_RCC_SPI3_CLK_DISABLE();
459 
460     /**SPI3 GPIO Configuration
461     PB3     ------> SPI3_SCK
462     PB4     ------> SPI3_MISO
463     PB5     ------> SPI3_MOSI
464     */
465     HAL_GPIO_DeInit(GPIOB, GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5);
466 
467   /* USER CODE BEGIN SPI3_MspDeInit 1 */
468 
469   /* USER CODE END SPI3_MspDeInit 1 */
470   }
471 
472 }
473 
474 /**
475 * @brief TIM_Base MSP Initialization
476 * This function configures the hardware resources used in this example
477 * @param htim_base: TIM_Base handle pointer
478 * @retval None
479 */
HAL_TIM_Base_MspInit(TIM_HandleTypeDef * htim_base)480 void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
481 {
482   if(htim_base->Instance==TIM10)
483   {
484   /* USER CODE BEGIN TIM10_MspInit 0 */
485 
486   /* USER CODE END TIM10_MspInit 0 */
487     /* Peripheral clock enable */
488     __HAL_RCC_TIM10_CLK_ENABLE();
489   /* USER CODE BEGIN TIM10_MspInit 1 */
490 
491   /* USER CODE END TIM10_MspInit 1 */
492   }
493   else if(htim_base->Instance==TIM11)
494   {
495   /* USER CODE BEGIN TIM11_MspInit 0 */
496 
497   /* USER CODE END TIM11_MspInit 0 */
498     /* Peripheral clock enable */
499     __HAL_RCC_TIM11_CLK_ENABLE();
500   /* USER CODE BEGIN TIM11_MspInit 1 */
501 
502   /* USER CODE END TIM11_MspInit 1 */
503   }
504   else if(htim_base->Instance==TIM13)
505   {
506   /* USER CODE BEGIN TIM13_MspInit 0 */
507 
508   /* USER CODE END TIM13_MspInit 0 */
509     /* Peripheral clock enable */
510     __HAL_RCC_TIM13_CLK_ENABLE();
511   /* USER CODE BEGIN TIM13_MspInit 1 */
512 
513   /* USER CODE END TIM13_MspInit 1 */
514   }
515   else if(htim_base->Instance==TIM14)
516   {
517   /* USER CODE BEGIN TIM14_MspInit 0 */
518 
519   /* USER CODE END TIM14_MspInit 0 */
520     /* Peripheral clock enable */
521     __HAL_RCC_TIM14_CLK_ENABLE();
522   /* USER CODE BEGIN TIM14_MspInit 1 */
523 
524   /* USER CODE END TIM14_MspInit 1 */
525   }
526 
527 }
528 
HAL_TIM_MspPostInit(TIM_HandleTypeDef * htim)529 void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim)
530 {
531   GPIO_InitTypeDef GPIO_InitStruct = {0};
532   if(htim->Instance==TIM10)
533   {
534   /* USER CODE BEGIN TIM10_MspPostInit 0 */
535 
536   /* USER CODE END TIM10_MspPostInit 0 */
537 
538     __HAL_RCC_GPIOF_CLK_ENABLE();
539     /**TIM10 GPIO Configuration
540     PF6     ------> TIM10_CH1
541     */
542     GPIO_InitStruct.Pin = GPIO_PIN_6;
543     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
544     GPIO_InitStruct.Pull = GPIO_NOPULL;
545     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
546     GPIO_InitStruct.Alternate = GPIO_AF3_TIM10;
547     HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
548 
549   /* USER CODE BEGIN TIM10_MspPostInit 1 */
550 
551   /* USER CODE END TIM10_MspPostInit 1 */
552   }
553 
554 }
555 /**
556 * @brief TIM_Base MSP De-Initialization
557 * This function freeze the hardware resources used in this example
558 * @param htim_base: TIM_Base handle pointer
559 * @retval None
560 */
HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef * htim_base)561 void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base)
562 {
563   if(htim_base->Instance==TIM10)
564   {
565   /* USER CODE BEGIN TIM10_MspDeInit 0 */
566 
567   /* USER CODE END TIM10_MspDeInit 0 */
568     /* Peripheral clock disable */
569     __HAL_RCC_TIM10_CLK_DISABLE();
570   /* USER CODE BEGIN TIM10_MspDeInit 1 */
571 
572   /* USER CODE END TIM10_MspDeInit 1 */
573   }
574   else if(htim_base->Instance==TIM11)
575   {
576   /* USER CODE BEGIN TIM11_MspDeInit 0 */
577 
578   /* USER CODE END TIM11_MspDeInit 0 */
579     /* Peripheral clock disable */
580     __HAL_RCC_TIM11_CLK_DISABLE();
581   /* USER CODE BEGIN TIM11_MspDeInit 1 */
582 
583   /* USER CODE END TIM11_MspDeInit 1 */
584   }
585   else if(htim_base->Instance==TIM13)
586   {
587   /* USER CODE BEGIN TIM13_MspDeInit 0 */
588 
589   /* USER CODE END TIM13_MspDeInit 0 */
590     /* Peripheral clock disable */
591     __HAL_RCC_TIM13_CLK_DISABLE();
592   /* USER CODE BEGIN TIM13_MspDeInit 1 */
593 
594   /* USER CODE END TIM13_MspDeInit 1 */
595   }
596   else if(htim_base->Instance==TIM14)
597   {
598   /* USER CODE BEGIN TIM14_MspDeInit 0 */
599 
600   /* USER CODE END TIM14_MspDeInit 0 */
601     /* Peripheral clock disable */
602     __HAL_RCC_TIM14_CLK_DISABLE();
603   /* USER CODE BEGIN TIM14_MspDeInit 1 */
604 
605   /* USER CODE END TIM14_MspDeInit 1 */
606   }
607 
608 }
609 
610 /**
611 * @brief UART MSP Initialization
612 * This function configures the hardware resources used in this example
613 * @param huart: UART handle pointer
614 * @retval None
615 */
HAL_UART_MspInit(UART_HandleTypeDef * huart)616 void HAL_UART_MspInit(UART_HandleTypeDef* huart)
617 {
618   GPIO_InitTypeDef GPIO_InitStruct = {0};
619   if(huart->Instance==USART1)
620   {
621   /* USER CODE BEGIN USART1_MspInit 0 */
622 
623   /* USER CODE END USART1_MspInit 0 */
624     /* Peripheral clock enable */
625     __HAL_RCC_USART1_CLK_ENABLE();
626 
627     __HAL_RCC_GPIOA_CLK_ENABLE();
628     /**USART1 GPIO Configuration
629     PA9     ------> USART1_TX
630     PA10     ------> USART1_RX
631     */
632     GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_10;
633     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
634     GPIO_InitStruct.Pull = GPIO_PULLUP;
635     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
636     GPIO_InitStruct.Alternate = GPIO_AF7_USART1;
637     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
638 
639   /* USER CODE BEGIN USART1_MspInit 1 */
640 
641   /* USER CODE END USART1_MspInit 1 */
642   }
643   else if(huart->Instance==USART2)
644   {
645   /* USER CODE BEGIN USART2_MspInit 0 */
646 
647   /* USER CODE END USART2_MspInit 0 */
648     /* Peripheral clock enable */
649     __HAL_RCC_USART2_CLK_ENABLE();
650 
651     __HAL_RCC_GPIOA_CLK_ENABLE();
652     /**USART2 GPIO Configuration
653     PA2     ------> USART2_TX
654     PA3     ------> USART2_RX
655     */
656     GPIO_InitStruct.Pin = GPIO_PIN_2|GPIO_PIN_3;
657     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
658     GPIO_InitStruct.Pull = GPIO_PULLUP;
659     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
660     GPIO_InitStruct.Alternate = GPIO_AF7_USART2;
661     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
662 
663   /* USER CODE BEGIN USART2_MspInit 1 */
664 
665   /* USER CODE END USART2_MspInit 1 */
666   }
667 
668 }
669 
670 /**
671 * @brief UART MSP De-Initialization
672 * This function freeze the hardware resources used in this example
673 * @param huart: UART handle pointer
674 * @retval None
675 */
HAL_UART_MspDeInit(UART_HandleTypeDef * huart)676 void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
677 {
678   if(huart->Instance==USART1)
679   {
680   /* USER CODE BEGIN USART1_MspDeInit 0 */
681 
682   /* USER CODE END USART1_MspDeInit 0 */
683     /* Peripheral clock disable */
684     __HAL_RCC_USART1_CLK_DISABLE();
685 
686     /**USART1 GPIO Configuration
687     PA9     ------> USART1_TX
688     PA10     ------> USART1_RX
689     */
690     HAL_GPIO_DeInit(GPIOA, GPIO_PIN_9|GPIO_PIN_10);
691 
692   /* USER CODE BEGIN USART1_MspDeInit 1 */
693 
694   /* USER CODE END USART1_MspDeInit 1 */
695   }
696   else if(huart->Instance==USART2)
697   {
698   /* USER CODE BEGIN USART2_MspDeInit 0 */
699 
700   /* USER CODE END USART2_MspDeInit 0 */
701     /* Peripheral clock disable */
702     __HAL_RCC_USART2_CLK_DISABLE();
703 
704     /**USART2 GPIO Configuration
705     PA2     ------> USART2_TX
706     PA3     ------> USART2_RX
707     */
708     HAL_GPIO_DeInit(GPIOA, GPIO_PIN_2|GPIO_PIN_3);
709 
710   /* USER CODE BEGIN USART2_MspDeInit 1 */
711 
712   /* USER CODE END USART2_MspDeInit 1 */
713   }
714 
715 }
716 
717 /* USER CODE BEGIN 1 */
718 
719 /* USER CODE END 1 */
720 
721 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
722