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>© 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