1 /* USER CODE BEGIN Header */
2 /**
3   ******************************************************************************
4   * @file         stm32u5xx_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) 2023 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_PWR_CLK_ENABLE();
73 
74   HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_3);
75 
76   /* System interrupt init*/
77 
78   /* USER CODE BEGIN MspInit 1 */
79 
80   /* USER CODE END MspInit 1 */
81 }
82 
83 /**
84 * @brief ADC MSP Initialization
85 * This function configures the hardware resources used in this example
86 * @param hadc: ADC handle pointer
87 * @retval None
88 */
HAL_ADC_MspInit(ADC_HandleTypeDef * hadc)89 void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc)
90 {
91   GPIO_InitTypeDef GPIO_InitStruct = {0};
92   RCC_PeriphCLKInitTypeDef PeriphClkInit = {0};
93   if(hadc->Instance==ADC1)
94   {
95   /* USER CODE BEGIN ADC1_MspInit 0 */
96 
97   /* USER CODE END ADC1_MspInit 0 */
98   /** Initializes the peripherals clock
99   */
100     PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_ADCDAC;
101     PeriphClkInit.AdcDacClockSelection = RCC_ADCDACCLKSOURCE_HSI;
102     if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
103     {
104       Error_Handler();
105     }
106 
107     /* Peripheral clock enable */
108     __HAL_RCC_ADC1_CLK_ENABLE();
109 
110     __HAL_RCC_GPIOC_CLK_ENABLE();
111     __HAL_RCC_GPIOB_CLK_ENABLE();
112     /**ADC1 GPIO Configuration
113     PC0     ------> ADC1_IN1
114     PC1     ------> ADC1_IN2
115     PC2     ------> ADC1_IN3
116     PC3     ------> ADC1_IN4
117     PB0     ------> ADC1_IN15
118     */
119     GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|VBUS_SENSE_Pin|GPIO_PIN_3;
120     GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
121     GPIO_InitStruct.Pull = GPIO_NOPULL;
122     HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
123 
124     GPIO_InitStruct.Pin = GPIO_PIN_0;
125     GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
126     GPIO_InitStruct.Pull = GPIO_NOPULL;
127     HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
128 
129   /* USER CODE BEGIN ADC1_MspInit 1 */
130 
131   /* USER CODE END ADC1_MspInit 1 */
132   }
133 
134 }
135 
136 /**
137 * @brief ADC MSP De-Initialization
138 * This function freeze the hardware resources used in this example
139 * @param hadc: ADC handle pointer
140 * @retval None
141 */
HAL_ADC_MspDeInit(ADC_HandleTypeDef * hadc)142 void HAL_ADC_MspDeInit(ADC_HandleTypeDef* hadc)
143 {
144   if(hadc->Instance==ADC1)
145   {
146   /* USER CODE BEGIN ADC1_MspDeInit 0 */
147 
148   /* USER CODE END ADC1_MspDeInit 0 */
149     /* Peripheral clock disable */
150     __HAL_RCC_ADC1_CLK_DISABLE();
151 
152     /**ADC1 GPIO Configuration
153     PC0     ------> ADC1_IN1
154     PC1     ------> ADC1_IN2
155     PC2     ------> ADC1_IN3
156     PC3     ------> ADC1_IN4
157     PB0     ------> ADC1_IN15
158     */
159     HAL_GPIO_DeInit(GPIOC, GPIO_PIN_0|GPIO_PIN_1|VBUS_SENSE_Pin|GPIO_PIN_3);
160 
161     HAL_GPIO_DeInit(GPIOB, GPIO_PIN_0);
162 
163   /* USER CODE BEGIN ADC1_MspDeInit 1 */
164 
165   /* USER CODE END ADC1_MspDeInit 1 */
166   }
167 
168 }
169 
170 /**
171 * @brief UART MSP Initialization
172 * This function configures the hardware resources used in this example
173 * @param huart: UART handle pointer
174 * @retval None
175 */
HAL_UART_MspInit(UART_HandleTypeDef * huart)176 void HAL_UART_MspInit(UART_HandleTypeDef* huart)
177 {
178   GPIO_InitTypeDef GPIO_InitStruct = {0};
179   RCC_PeriphCLKInitTypeDef PeriphClkInit = {0};
180   if(huart->Instance==LPUART1)
181   {
182   /* USER CODE BEGIN LPUART1_MspInit 0 */
183 
184   /* USER CODE END LPUART1_MspInit 0 */
185   /** Initializes the peripherals clock
186   */
187     PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_LPUART1;
188     PeriphClkInit.Lpuart1ClockSelection = RCC_LPUART1CLKSOURCE_PCLK3;
189     if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
190     {
191       Error_Handler();
192     }
193 
194     /* Peripheral clock enable */
195     __HAL_RCC_LPUART1_CLK_ENABLE();
196 
197     __HAL_RCC_GPIOG_CLK_ENABLE();
198     /**LPUART1 GPIO Configuration
199     PG7     ------> LPUART1_TX
200     PG8     ------> LPUART1_RX
201     */
202     GPIO_InitStruct.Pin = GPIO_PIN_7|GPIO_PIN_8;
203     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
204     GPIO_InitStruct.Pull = GPIO_NOPULL;
205     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
206     GPIO_InitStruct.Alternate = GPIO_AF8_LPUART1;
207     HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
208 
209   /* USER CODE BEGIN LPUART1_MspInit 1 */
210 
211   /* USER CODE END LPUART1_MspInit 1 */
212   }
213   else if(huart->Instance==USART1)
214   {
215   /* USER CODE BEGIN USART1_MspInit 0 */
216 
217   /* USER CODE END USART1_MspInit 0 */
218 
219   /** Initializes the peripherals clock
220   */
221     PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_USART1;
222     PeriphClkInit.Usart1ClockSelection = RCC_USART1CLKSOURCE_PCLK2;
223     if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
224     {
225       Error_Handler();
226     }
227 
228     /* Peripheral clock enable */
229     __HAL_RCC_USART1_CLK_ENABLE();
230 
231     __HAL_RCC_GPIOA_CLK_ENABLE();
232     /**USART1 GPIO Configuration
233     PA9     ------> USART1_TX
234     PA10     ------> USART1_RX
235     */
236     GPIO_InitStruct.Pin = USART1_TX_Pin|USART1_RX_Pin;
237     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
238     GPIO_InitStruct.Pull = GPIO_PULLDOWN;
239     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
240     GPIO_InitStruct.Alternate = GPIO_AF7_USART1;
241     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
242 
243   /* USER CODE BEGIN USART1_MspInit 1 */
244 
245   /* USER CODE END USART1_MspInit 1 */
246   }
247   else if(huart->Instance==USART2)
248   {
249   /* USER CODE BEGIN USART2_MspInit 0 */
250 
251   /* USER CODE END USART2_MspInit 0 */
252 
253   /** Initializes the peripherals clock
254   */
255     PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_USART2;
256     PeriphClkInit.Usart2ClockSelection = RCC_USART2CLKSOURCE_PCLK1;
257     if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
258     {
259       Error_Handler();
260     }
261 
262     /* Peripheral clock enable */
263     __HAL_RCC_USART2_CLK_ENABLE();
264 
265     __HAL_RCC_GPIOA_CLK_ENABLE();
266     /**USART2 GPIO Configuration
267     PA2     ------> USART2_TX
268     PA3     ------> USART2_RX
269     */
270     GPIO_InitStruct.Pin = GPIO_PIN_2|GPIO_PIN_3;
271     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
272     GPIO_InitStruct.Pull = GPIO_NOPULL;
273     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
274     GPIO_InitStruct.Alternate = GPIO_AF7_USART2;
275     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
276 
277   /* USER CODE BEGIN USART2_MspInit 1 */
278 
279   /* USER CODE END USART2_MspInit 1 */
280   }
281 
282 }
283 
284 /**
285 * @brief UART MSP De-Initialization
286 * This function freeze the hardware resources used in this example
287 * @param huart: UART handle pointer
288 * @retval None
289 */
HAL_UART_MspDeInit(UART_HandleTypeDef * huart)290 void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
291 {
292   if(huart->Instance==LPUART1)
293   {
294   /* USER CODE BEGIN LPUART1_MspDeInit 0 */
295 
296   /* USER CODE END LPUART1_MspDeInit 0 */
297     /* Peripheral clock disable */
298     __HAL_RCC_LPUART1_CLK_DISABLE();
299 
300     /**LPUART1 GPIO Configuration
301     PG7     ------> LPUART1_TX
302     PG8     ------> LPUART1_RX
303     */
304     HAL_GPIO_DeInit(GPIOG, GPIO_PIN_7|GPIO_PIN_8);
305 
306   /* USER CODE BEGIN LPUART1_MspDeInit 1 */
307 
308   /* USER CODE END LPUART1_MspDeInit 1 */
309   }
310   else if(huart->Instance==USART1)
311   {
312   /* USER CODE BEGIN USART1_MspDeInit 0 */
313 
314   /* USER CODE END USART1_MspDeInit 0 */
315     /* Peripheral clock disable */
316     __HAL_RCC_USART1_CLK_DISABLE();
317 
318     /**USART1 GPIO Configuration
319     PA9     ------> USART1_TX
320     PA10     ------> USART1_RX
321     */
322     HAL_GPIO_DeInit(GPIOA, USART1_TX_Pin|USART1_RX_Pin);
323 
324   /* USER CODE BEGIN USART1_MspDeInit 1 */
325 
326   /* USER CODE END USART1_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 
347 }
348 
349 /**
350 * @brief SPI MSP Initialization
351 * This function configures the hardware resources used in this example
352 * @param hspi: SPI handle pointer
353 * @retval None
354 */
HAL_SPI_MspInit(SPI_HandleTypeDef * hspi)355 void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi)
356 {
357   GPIO_InitTypeDef GPIO_InitStruct = {0};
358   RCC_PeriphCLKInitTypeDef PeriphClkInit = {0};
359   if(hspi->Instance==SPI1)
360   {
361   /* USER CODE BEGIN SPI1_MspInit 0 */
362 
363   /* USER CODE END SPI1_MspInit 0 */
364   /** Initializes the peripherals clock
365   */
366     PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_SPI1;
367     PeriphClkInit.Spi1ClockSelection = RCC_SPI1CLKSOURCE_SYSCLK;
368     if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
369     {
370       Error_Handler();
371     }
372 
373     /* Peripheral clock enable */
374     __HAL_RCC_SPI1_CLK_ENABLE();
375 
376     __HAL_RCC_GPIOA_CLK_ENABLE();
377     /**SPI1 GPIO Configuration
378     PA5     ------> SPI1_SCK
379     PA6     ------> SPI1_MISO
380     PA7     ------> SPI1_MOSI
381     */
382     GPIO_InitStruct.Pin = GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7;
383     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
384     GPIO_InitStruct.Pull = GPIO_NOPULL;
385     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
386     GPIO_InitStruct.Alternate = GPIO_AF5_SPI1;
387     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
388 
389   /* USER CODE BEGIN SPI1_MspInit 1 */
390 
391   /* USER CODE END SPI1_MspInit 1 */
392   }
393 
394 }
395 
396 /**
397 * @brief SPI MSP De-Initialization
398 * This function freeze the hardware resources used in this example
399 * @param hspi: SPI handle pointer
400 * @retval None
401 */
HAL_SPI_MspDeInit(SPI_HandleTypeDef * hspi)402 void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi)
403 {
404   if(hspi->Instance==SPI1)
405   {
406   /* USER CODE BEGIN SPI1_MspDeInit 0 */
407 
408   /* USER CODE END SPI1_MspDeInit 0 */
409     /* Peripheral clock disable */
410     __HAL_RCC_SPI1_CLK_DISABLE();
411 
412     /**SPI1 GPIO Configuration
413     PA5     ------> SPI1_SCK
414     PA6     ------> SPI1_MISO
415     PA7     ------> SPI1_MOSI
416     */
417     HAL_GPIO_DeInit(GPIOA, GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7);
418 
419   /* USER CODE BEGIN SPI1_MspDeInit 1 */
420 
421   /* USER CODE END SPI1_MspDeInit 1 */
422   }
423 
424 }
425 
426 /**
427 * @brief TIM_Base MSP Initialization
428 * This function configures the hardware resources used in this example
429 * @param htim_base: TIM_Base handle pointer
430 * @retval None
431 */
HAL_TIM_Base_MspInit(TIM_HandleTypeDef * htim_base)432 void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
433 {
434   if(htim_base->Instance==TIM1)
435   {
436   /* USER CODE BEGIN TIM1_MspInit 0 */
437 
438   /* USER CODE END TIM1_MspInit 0 */
439     /* Peripheral clock enable */
440     __HAL_RCC_TIM1_CLK_ENABLE();
441   /* USER CODE BEGIN TIM1_MspInit 1 */
442 
443   /* USER CODE END TIM1_MspInit 1 */
444   }
445   else if(htim_base->Instance==TIM4)
446   {
447   /* USER CODE BEGIN TIM4_MspInit 0 */
448 
449   /* USER CODE END TIM4_MspInit 0 */
450     /* Peripheral clock enable */
451     __HAL_RCC_TIM4_CLK_ENABLE();
452   /* USER CODE BEGIN TIM4_MspInit 1 */
453 
454   /* USER CODE END TIM4_MspInit 1 */
455   }
456 
457 }
458 
HAL_TIM_MspPostInit(TIM_HandleTypeDef * htim)459 void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim)
460 {
461   GPIO_InitTypeDef GPIO_InitStruct = {0};
462   if(htim->Instance==TIM1)
463   {
464   /* USER CODE BEGIN TIM1_MspPostInit 0 */
465 
466   /* USER CODE END TIM1_MspPostInit 0 */
467     __HAL_RCC_GPIOE_CLK_ENABLE();
468     /**TIM1 GPIO Configuration
469     PE9     ------> TIM1_CH1
470     PE11     ------> TIM1_CH2
471     PE13     ------> TIM1_CH3
472     */
473     GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_11|GPIO_PIN_13;
474     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
475     GPIO_InitStruct.Pull = GPIO_NOPULL;
476     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
477     GPIO_InitStruct.Alternate = GPIO_AF1_TIM1;
478     HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
479 
480   /* USER CODE BEGIN TIM1_MspPostInit 1 */
481 
482   /* USER CODE END TIM1_MspPostInit 1 */
483   }
484   else if(htim->Instance==TIM4)
485   {
486   /* USER CODE BEGIN TIM4_MspPostInit 0 */
487 
488   /* USER CODE END TIM4_MspPostInit 0 */
489 
490     __HAL_RCC_GPIOD_CLK_ENABLE();
491     /**TIM4 GPIO Configuration
492     PD15     ------> TIM4_CH4
493     */
494     GPIO_InitStruct.Pin = GPIO_PIN_15;
495     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
496     GPIO_InitStruct.Pull = GPIO_NOPULL;
497     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
498     GPIO_InitStruct.Alternate = GPIO_AF2_TIM4;
499     HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
500 
501   /* USER CODE BEGIN TIM4_MspPostInit 1 */
502 
503   /* USER CODE END TIM4_MspPostInit 1 */
504   }
505 
506 }
507 /**
508 * @brief TIM_Base MSP De-Initialization
509 * This function freeze the hardware resources used in this example
510 * @param htim_base: TIM_Base handle pointer
511 * @retval None
512 */
HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef * htim_base)513 void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base)
514 {
515   if(htim_base->Instance==TIM1)
516   {
517   /* USER CODE BEGIN TIM1_MspDeInit 0 */
518 
519   /* USER CODE END TIM1_MspDeInit 0 */
520     /* Peripheral clock disable */
521     __HAL_RCC_TIM1_CLK_DISABLE();
522   /* USER CODE BEGIN TIM1_MspDeInit 1 */
523 
524   /* USER CODE END TIM1_MspDeInit 1 */
525   }
526   else if(htim_base->Instance==TIM4)
527   {
528   /* USER CODE BEGIN TIM4_MspDeInit 0 */
529 
530   /* USER CODE END TIM4_MspDeInit 0 */
531     /* Peripheral clock disable */
532     __HAL_RCC_TIM4_CLK_DISABLE();
533   /* USER CODE BEGIN TIM4_MspDeInit 1 */
534 
535   /* USER CODE END TIM4_MspDeInit 1 */
536   }
537 
538 }
539 
540 /**
541 * @brief PCD MSP Initialization
542 * This function configures the hardware resources used in this example
543 * @param hpcd: PCD handle pointer
544 * @retval None
545 */
HAL_PCD_MspInit(PCD_HandleTypeDef * hpcd)546 void HAL_PCD_MspInit(PCD_HandleTypeDef* hpcd)
547 {
548   GPIO_InitTypeDef GPIO_InitStruct = {0};
549   RCC_PeriphCLKInitTypeDef PeriphClkInit = {0};
550   if(hpcd->Instance==USB_OTG_FS)
551   {
552   /* USER CODE BEGIN USB_OTG_FS_MspInit 0 */
553 
554   /* USER CODE END USB_OTG_FS_MspInit 0 */
555   /** Initializes the peripherals clock
556   */
557     PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_CLK48;
558     PeriphClkInit.IclkClockSelection = RCC_CLK48CLKSOURCE_HSI48;
559     if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
560     {
561       Error_Handler();
562     }
563 
564     __HAL_RCC_GPIOA_CLK_ENABLE();
565     /**USB_OTG_FS GPIO Configuration
566     PA11     ------> USB_OTG_FS_DM
567     PA12     ------> USB_OTG_FS_DP
568     */
569     GPIO_InitStruct.Pin = USB_OTG_FS_DM_Pin|USB_OTG_FS_DP_Pin;
570     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
571     GPIO_InitStruct.Pull = GPIO_NOPULL;
572     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
573     GPIO_InitStruct.Alternate = GPIO_AF10_USB;
574     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
575 
576     /* Peripheral clock enable */
577     __HAL_RCC_USB_CLK_ENABLE();
578 
579     /* Enable VDDUSB */
580     if(__HAL_RCC_PWR_IS_CLK_DISABLED())
581     {
582       __HAL_RCC_PWR_CLK_ENABLE();
583       HAL_PWREx_EnableVddUSB();
584       __HAL_RCC_PWR_CLK_DISABLE();
585     }
586     else
587     {
588       HAL_PWREx_EnableVddUSB();
589     }
590     /* USB_OTG_FS interrupt Init */
591     HAL_NVIC_SetPriority(OTG_FS_IRQn, 0, 0);
592     HAL_NVIC_EnableIRQ(OTG_FS_IRQn);
593   /* USER CODE BEGIN USB_OTG_FS_MspInit 1 */
594 
595   /* USER CODE END USB_OTG_FS_MspInit 1 */
596   }
597 
598 }
599 
600 /**
601 * @brief PCD MSP De-Initialization
602 * This function freeze the hardware resources used in this example
603 * @param hpcd: PCD handle pointer
604 * @retval None
605 */
HAL_PCD_MspDeInit(PCD_HandleTypeDef * hpcd)606 void HAL_PCD_MspDeInit(PCD_HandleTypeDef* hpcd)
607 {
608   if(hpcd->Instance==USB_OTG_FS)
609   {
610   /* USER CODE BEGIN USB_OTG_FS_MspDeInit 0 */
611 
612   /* USER CODE END USB_OTG_FS_MspDeInit 0 */
613     /* Peripheral clock disable */
614     __HAL_RCC_USB_CLK_DISABLE();
615 
616     /**USB_OTG_FS GPIO Configuration
617     PA11     ------> USB_OTG_FS_DM
618     PA12     ------> USB_OTG_FS_DP
619     */
620     HAL_GPIO_DeInit(GPIOA, USB_OTG_FS_DM_Pin|USB_OTG_FS_DP_Pin);
621 
622     /* USB_OTG_FS interrupt DeInit */
623     HAL_NVIC_DisableIRQ(OTG_FS_IRQn);
624   /* USER CODE BEGIN USB_OTG_FS_MspDeInit 1 */
625 
626   /* USER CODE END USB_OTG_FS_MspDeInit 1 */
627   }
628 
629 }
630 
631 /* USER CODE BEGIN 1 */
632 
633 /* USER CODE END 1 */
634 
635 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
636