]> git.sur5r.net Git - freertos/blob - FreeRTOS/Demo/CORTEX_MPU_STM32L4_Discovery_Keil_STM32Cube/ST_Code/Core/Src/stm32l4xx_hal_msp.c
Make vSetupTimerInterrupt weak in the RVDS M4 MPU port to give the
[freertos] / FreeRTOS / Demo / CORTEX_MPU_STM32L4_Discovery_Keil_STM32Cube / ST_Code / Core / Src / stm32l4xx_hal_msp.c
1 /* USER CODE BEGIN Header */\r
2 /**\r
3   ******************************************************************************\r
4   * File Name          : stm32l4xx_hal_msp.c\r
5   * Description        : This file provides code for the MSP Initialization \r
6   *                      and de-Initialization codes.\r
7   ******************************************************************************\r
8   * @attention\r
9   *\r
10   * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.\r
11   * All rights reserved.</center></h2>\r
12   *\r
13   * This software component is licensed by ST under BSD 3-Clause license,\r
14   * the "License"; You may not use this file except in compliance with the\r
15   * License. You may obtain a copy of the License at:\r
16   *                        opensource.org/licenses/BSD-3-Clause\r
17   *\r
18   ******************************************************************************\r
19   */\r
20 /* USER CODE END Header */\r
21 \r
22 /* Includes ------------------------------------------------------------------*/\r
23 #include "main.h"\r
24 /* USER CODE BEGIN Includes */\r
25 \r
26 /* USER CODE END Includes */\r
27 \r
28 /* Private typedef -----------------------------------------------------------*/\r
29 /* USER CODE BEGIN TD */\r
30 \r
31 /* USER CODE END TD */\r
32 \r
33 /* Private define ------------------------------------------------------------*/\r
34 /* USER CODE BEGIN Define */\r
35  \r
36 /* USER CODE END Define */\r
37 \r
38 /* Private macro -------------------------------------------------------------*/\r
39 /* USER CODE BEGIN Macro */\r
40 \r
41 /* USER CODE END Macro */\r
42 \r
43 /* Private variables ---------------------------------------------------------*/\r
44 /* USER CODE BEGIN PV */\r
45 \r
46 /* USER CODE END PV */\r
47 \r
48 /* Private function prototypes -----------------------------------------------*/\r
49 /* USER CODE BEGIN PFP */\r
50 \r
51 /* USER CODE END PFP */\r
52 \r
53 /* External functions --------------------------------------------------------*/\r
54 /* USER CODE BEGIN ExternalFunctions */\r
55 \r
56 /* USER CODE END ExternalFunctions */\r
57 \r
58 /* USER CODE BEGIN 0 */\r
59 \r
60 /* USER CODE END 0 */\r
61 /**\r
62   * Initializes the Global MSP.\r
63   */\r
64 void HAL_MspInit(void)\r
65 {\r
66   /* USER CODE BEGIN MspInit 0 */\r
67 \r
68   /* USER CODE END MspInit 0 */\r
69 \r
70   __HAL_RCC_SYSCFG_CLK_ENABLE();\r
71   __HAL_RCC_PWR_CLK_ENABLE();\r
72 \r
73   /* System interrupt init*/\r
74 \r
75   /* USER CODE BEGIN MspInit 1 */\r
76 \r
77   /* USER CODE END MspInit 1 */\r
78 }\r
79 \r
80 static uint32_t DFSDM1_Init = 0;\r
81 /**\r
82 * @brief DFSDM_Channel MSP Initialization\r
83 * This function configures the hardware resources used in this example\r
84 * @param hdfsdm_channel: DFSDM_Channel handle pointer\r
85 * @retval None\r
86 */\r
87 void HAL_DFSDM_ChannelMspInit(DFSDM_Channel_HandleTypeDef* hdfsdm_channel)\r
88 {\r
89   GPIO_InitTypeDef GPIO_InitStruct = {0};\r
90   if(DFSDM1_Init == 0)\r
91   {\r
92   /* USER CODE BEGIN DFSDM1_MspInit 0 */\r
93 \r
94   /* USER CODE END DFSDM1_MspInit 0 */\r
95     /* Peripheral clock enable */\r
96     __HAL_RCC_DFSDM1_CLK_ENABLE();\r
97   \r
98     __HAL_RCC_GPIOE_CLK_ENABLE();\r
99     /**DFSDM1 GPIO Configuration    \r
100     PE7     ------> DFSDM1_DATIN2\r
101     PE9     ------> DFSDM1_CKOUT \r
102     */\r
103     GPIO_InitStruct.Pin = DFSDM1_DATIN2_Pin|DFSDM1_CKOUT_Pin;\r
104     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;\r
105     GPIO_InitStruct.Pull = GPIO_NOPULL;\r
106     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;\r
107     GPIO_InitStruct.Alternate = GPIO_AF6_DFSDM1;\r
108     HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);\r
109 \r
110   /* USER CODE BEGIN DFSDM1_MspInit 1 */\r
111 \r
112   /* USER CODE END DFSDM1_MspInit 1 */\r
113   }\r
114 \r
115 }\r
116 \r
117 /**\r
118 * @brief DFSDM_Channel MSP De-Initialization\r
119 * This function freeze the hardware resources used in this example\r
120 * @param hdfsdm_channel: DFSDM_Channel handle pointer\r
121 * @retval None\r
122 */\r
123 void HAL_DFSDM_ChannelMspDeInit(DFSDM_Channel_HandleTypeDef* hdfsdm_channel)\r
124 {\r
125   DFSDM1_Init-- ;\r
126   if(DFSDM1_Init == 0)\r
127     {\r
128   /* USER CODE BEGIN DFSDM1_MspDeInit 0 */\r
129 \r
130   /* USER CODE END DFSDM1_MspDeInit 0 */\r
131     /* Peripheral clock disable */\r
132     __HAL_RCC_DFSDM1_CLK_DISABLE();\r
133   \r
134     /**DFSDM1 GPIO Configuration    \r
135     PE7     ------> DFSDM1_DATIN2\r
136     PE9     ------> DFSDM1_CKOUT \r
137     */\r
138     HAL_GPIO_DeInit(GPIOE, DFSDM1_DATIN2_Pin|DFSDM1_CKOUT_Pin);\r
139 \r
140   /* USER CODE BEGIN DFSDM1_MspDeInit 1 */\r
141 \r
142   /* USER CODE END DFSDM1_MspDeInit 1 */\r
143   }\r
144 \r
145 }\r
146 \r
147 /**\r
148 * @brief I2C MSP Initialization\r
149 * This function configures the hardware resources used in this example\r
150 * @param hi2c: I2C handle pointer\r
151 * @retval None\r
152 */\r
153 void HAL_I2C_MspInit(I2C_HandleTypeDef* hi2c)\r
154 {\r
155   GPIO_InitTypeDef GPIO_InitStruct = {0};\r
156   if(hi2c->Instance==I2C2)\r
157   {\r
158   /* USER CODE BEGIN I2C2_MspInit 0 */\r
159 \r
160   /* USER CODE END I2C2_MspInit 0 */\r
161   \r
162     __HAL_RCC_GPIOB_CLK_ENABLE();\r
163     /**I2C2 GPIO Configuration    \r
164     PB10     ------> I2C2_SCL\r
165     PB11     ------> I2C2_SDA \r
166     */\r
167     GPIO_InitStruct.Pin = INTERNAL_I2C2_SCL_Pin|INTERNAL_I2C2_SDA_Pin;\r
168     GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;\r
169     GPIO_InitStruct.Pull = GPIO_PULLUP;\r
170     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;\r
171     GPIO_InitStruct.Alternate = GPIO_AF4_I2C2;\r
172     HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);\r
173 \r
174     /* Peripheral clock enable */\r
175     __HAL_RCC_I2C2_CLK_ENABLE();\r
176   /* USER CODE BEGIN I2C2_MspInit 1 */\r
177 \r
178   /* USER CODE END I2C2_MspInit 1 */\r
179   }\r
180 \r
181 }\r
182 \r
183 /**\r
184 * @brief I2C MSP De-Initialization\r
185 * This function freeze the hardware resources used in this example\r
186 * @param hi2c: I2C handle pointer\r
187 * @retval None\r
188 */\r
189 void HAL_I2C_MspDeInit(I2C_HandleTypeDef* hi2c)\r
190 {\r
191   if(hi2c->Instance==I2C2)\r
192   {\r
193   /* USER CODE BEGIN I2C2_MspDeInit 0 */\r
194 \r
195   /* USER CODE END I2C2_MspDeInit 0 */\r
196     /* Peripheral clock disable */\r
197     __HAL_RCC_I2C2_CLK_DISABLE();\r
198   \r
199     /**I2C2 GPIO Configuration    \r
200     PB10     ------> I2C2_SCL\r
201     PB11     ------> I2C2_SDA \r
202     */\r
203     HAL_GPIO_DeInit(GPIOB, INTERNAL_I2C2_SCL_Pin|INTERNAL_I2C2_SDA_Pin);\r
204 \r
205   /* USER CODE BEGIN I2C2_MspDeInit 1 */\r
206 \r
207   /* USER CODE END I2C2_MspDeInit 1 */\r
208   }\r
209 \r
210 }\r
211 \r
212 /**\r
213 * @brief QSPI MSP Initialization\r
214 * This function configures the hardware resources used in this example\r
215 * @param hqspi: QSPI handle pointer\r
216 * @retval None\r
217 */\r
218 void HAL_QSPI_MspInit(QSPI_HandleTypeDef* hqspi)\r
219 {\r
220   GPIO_InitTypeDef GPIO_InitStruct = {0};\r
221   if(hqspi->Instance==QUADSPI)\r
222   {\r
223   /* USER CODE BEGIN QUADSPI_MspInit 0 */\r
224 \r
225   /* USER CODE END QUADSPI_MspInit 0 */\r
226     /* Peripheral clock enable */\r
227     __HAL_RCC_QSPI_CLK_ENABLE();\r
228   \r
229     __HAL_RCC_GPIOE_CLK_ENABLE();\r
230     /**QUADSPI GPIO Configuration    \r
231     PE10     ------> QUADSPI_CLK\r
232     PE11     ------> QUADSPI_NCS\r
233     PE12     ------> QUADSPI_BK1_IO0\r
234     PE13     ------> QUADSPI_BK1_IO1\r
235     PE14     ------> QUADSPI_BK1_IO2\r
236     PE15     ------> QUADSPI_BK1_IO3 \r
237     */\r
238     GPIO_InitStruct.Pin = QUADSPI_CLK_Pin|QUADSPI_NCS_Pin|OQUADSPI_BK1_IO0_Pin|QUADSPI_BK1_IO1_Pin \r
239                           |QUAD_SPI_BK1_IO2_Pin|QUAD_SPI_BK1_IO3_Pin;\r
240     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;\r
241     GPIO_InitStruct.Pull = GPIO_NOPULL;\r
242     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;\r
243     GPIO_InitStruct.Alternate = GPIO_AF10_QUADSPI;\r
244     HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);\r
245 \r
246   /* USER CODE BEGIN QUADSPI_MspInit 1 */\r
247 \r
248   /* USER CODE END QUADSPI_MspInit 1 */\r
249   }\r
250 \r
251 }\r
252 \r
253 /**\r
254 * @brief QSPI MSP De-Initialization\r
255 * This function freeze the hardware resources used in this example\r
256 * @param hqspi: QSPI handle pointer\r
257 * @retval None\r
258 */\r
259 void HAL_QSPI_MspDeInit(QSPI_HandleTypeDef* hqspi)\r
260 {\r
261   if(hqspi->Instance==QUADSPI)\r
262   {\r
263   /* USER CODE BEGIN QUADSPI_MspDeInit 0 */\r
264 \r
265   /* USER CODE END QUADSPI_MspDeInit 0 */\r
266     /* Peripheral clock disable */\r
267     __HAL_RCC_QSPI_CLK_DISABLE();\r
268   \r
269     /**QUADSPI GPIO Configuration    \r
270     PE10     ------> QUADSPI_CLK\r
271     PE11     ------> QUADSPI_NCS\r
272     PE12     ------> QUADSPI_BK1_IO0\r
273     PE13     ------> QUADSPI_BK1_IO1\r
274     PE14     ------> QUADSPI_BK1_IO2\r
275     PE15     ------> QUADSPI_BK1_IO3 \r
276     */\r
277     HAL_GPIO_DeInit(GPIOE, QUADSPI_CLK_Pin|QUADSPI_NCS_Pin|OQUADSPI_BK1_IO0_Pin|QUADSPI_BK1_IO1_Pin \r
278                           |QUAD_SPI_BK1_IO2_Pin|QUAD_SPI_BK1_IO3_Pin);\r
279 \r
280   /* USER CODE BEGIN QUADSPI_MspDeInit 1 */\r
281 \r
282   /* USER CODE END QUADSPI_MspDeInit 1 */\r
283   }\r
284 \r
285 }\r
286 \r
287 /**\r
288 * @brief SPI MSP Initialization\r
289 * This function configures the hardware resources used in this example\r
290 * @param hspi: SPI handle pointer\r
291 * @retval None\r
292 */\r
293 void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi)\r
294 {\r
295   GPIO_InitTypeDef GPIO_InitStruct = {0};\r
296   if(hspi->Instance==SPI3)\r
297   {\r
298   /* USER CODE BEGIN SPI3_MspInit 0 */\r
299 \r
300   /* USER CODE END SPI3_MspInit 0 */\r
301     /* Peripheral clock enable */\r
302     __HAL_RCC_SPI3_CLK_ENABLE();\r
303   \r
304     __HAL_RCC_GPIOC_CLK_ENABLE();\r
305     /**SPI3 GPIO Configuration    \r
306     PC10     ------> SPI3_SCK\r
307     PC11     ------> SPI3_MISO\r
308     PC12     ------> SPI3_MOSI \r
309     */\r
310     GPIO_InitStruct.Pin = INTERNAL_SPI3_SCK_Pin|INTERNAL_SPI3_MISO_Pin|INTERNAL_SPI3_MOSI_Pin;\r
311     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;\r
312     GPIO_InitStruct.Pull = GPIO_NOPULL;\r
313     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;\r
314     GPIO_InitStruct.Alternate = GPIO_AF6_SPI3;\r
315     HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);\r
316 \r
317   /* USER CODE BEGIN SPI3_MspInit 1 */\r
318 \r
319   /* USER CODE END SPI3_MspInit 1 */\r
320   }\r
321 \r
322 }\r
323 \r
324 /**\r
325 * @brief SPI MSP De-Initialization\r
326 * This function freeze the hardware resources used in this example\r
327 * @param hspi: SPI handle pointer\r
328 * @retval None\r
329 */\r
330 void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi)\r
331 {\r
332   if(hspi->Instance==SPI3)\r
333   {\r
334   /* USER CODE BEGIN SPI3_MspDeInit 0 */\r
335 \r
336   /* USER CODE END SPI3_MspDeInit 0 */\r
337     /* Peripheral clock disable */\r
338     __HAL_RCC_SPI3_CLK_DISABLE();\r
339   \r
340     /**SPI3 GPIO Configuration    \r
341     PC10     ------> SPI3_SCK\r
342     PC11     ------> SPI3_MISO\r
343     PC12     ------> SPI3_MOSI \r
344     */\r
345     HAL_GPIO_DeInit(GPIOC, INTERNAL_SPI3_SCK_Pin|INTERNAL_SPI3_MISO_Pin|INTERNAL_SPI3_MOSI_Pin);\r
346 \r
347   /* USER CODE BEGIN SPI3_MspDeInit 1 */\r
348 \r
349   /* USER CODE END SPI3_MspDeInit 1 */\r
350   }\r
351 \r
352 }\r
353 \r
354 /**\r
355 * @brief UART MSP Initialization\r
356 * This function configures the hardware resources used in this example\r
357 * @param huart: UART handle pointer\r
358 * @retval None\r
359 */\r
360 void HAL_UART_MspInit(UART_HandleTypeDef* huart)\r
361 {\r
362   GPIO_InitTypeDef GPIO_InitStruct = {0};\r
363   if(huart->Instance==USART1)\r
364   {\r
365   /* USER CODE BEGIN USART1_MspInit 0 */\r
366 \r
367   /* USER CODE END USART1_MspInit 0 */\r
368     /* Peripheral clock enable */\r
369     __HAL_RCC_USART1_CLK_ENABLE();\r
370   \r
371     __HAL_RCC_GPIOB_CLK_ENABLE();\r
372     /**USART1 GPIO Configuration    \r
373     PB6     ------> USART1_TX\r
374     PB7     ------> USART1_RX \r
375     */\r
376     GPIO_InitStruct.Pin = ST_LINK_UART1_TX_Pin|ST_LINK_UART1_RX_Pin;\r
377     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;\r
378     GPIO_InitStruct.Pull = GPIO_NOPULL;\r
379     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;\r
380     GPIO_InitStruct.Alternate = GPIO_AF7_USART1;\r
381     HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);\r
382 \r
383   /* USER CODE BEGIN USART1_MspInit 1 */\r
384 \r
385   /* USER CODE END USART1_MspInit 1 */\r
386   }\r
387   else if(huart->Instance==USART3)\r
388   {\r
389   /* USER CODE BEGIN USART3_MspInit 0 */\r
390 \r
391   /* USER CODE END USART3_MspInit 0 */\r
392     /* Peripheral clock enable */\r
393     __HAL_RCC_USART3_CLK_ENABLE();\r
394   \r
395     __HAL_RCC_GPIOD_CLK_ENABLE();\r
396     /**USART3 GPIO Configuration    \r
397     PD8     ------> USART3_TX\r
398     PD9     ------> USART3_RX \r
399     */\r
400     GPIO_InitStruct.Pin = INTERNAL_UART3_TX_Pin|INTERNAL_UART3_RX_Pin;\r
401     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;\r
402     GPIO_InitStruct.Pull = GPIO_NOPULL;\r
403     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;\r
404     GPIO_InitStruct.Alternate = GPIO_AF7_USART3;\r
405     HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);\r
406 \r
407   /* USER CODE BEGIN USART3_MspInit 1 */\r
408 \r
409   /* USER CODE END USART3_MspInit 1 */\r
410   }\r
411 \r
412 }\r
413 \r
414 /**\r
415 * @brief UART MSP De-Initialization\r
416 * This function freeze the hardware resources used in this example\r
417 * @param huart: UART handle pointer\r
418 * @retval None\r
419 */\r
420 void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)\r
421 {\r
422   if(huart->Instance==USART1)\r
423   {\r
424   /* USER CODE BEGIN USART1_MspDeInit 0 */\r
425 \r
426   /* USER CODE END USART1_MspDeInit 0 */\r
427     /* Peripheral clock disable */\r
428     __HAL_RCC_USART1_CLK_DISABLE();\r
429   \r
430     /**USART1 GPIO Configuration    \r
431     PB6     ------> USART1_TX\r
432     PB7     ------> USART1_RX \r
433     */\r
434     HAL_GPIO_DeInit(GPIOB, ST_LINK_UART1_TX_Pin|ST_LINK_UART1_RX_Pin);\r
435 \r
436   /* USER CODE BEGIN USART1_MspDeInit 1 */\r
437 \r
438   /* USER CODE END USART1_MspDeInit 1 */\r
439   }\r
440   else if(huart->Instance==USART3)\r
441   {\r
442   /* USER CODE BEGIN USART3_MspDeInit 0 */\r
443 \r
444   /* USER CODE END USART3_MspDeInit 0 */\r
445     /* Peripheral clock disable */\r
446     __HAL_RCC_USART3_CLK_DISABLE();\r
447   \r
448     /**USART3 GPIO Configuration    \r
449     PD8     ------> USART3_TX\r
450     PD9     ------> USART3_RX \r
451     */\r
452     HAL_GPIO_DeInit(GPIOD, INTERNAL_UART3_TX_Pin|INTERNAL_UART3_RX_Pin);\r
453 \r
454   /* USER CODE BEGIN USART3_MspDeInit 1 */\r
455 \r
456   /* USER CODE END USART3_MspDeInit 1 */\r
457   }\r
458 \r
459 }\r
460 \r
461 /**\r
462 * @brief PCD MSP Initialization\r
463 * This function configures the hardware resources used in this example\r
464 * @param hpcd: PCD handle pointer\r
465 * @retval None\r
466 */\r
467 void HAL_PCD_MspInit(PCD_HandleTypeDef* hpcd)\r
468 {\r
469   GPIO_InitTypeDef GPIO_InitStruct = {0};\r
470   if(hpcd->Instance==USB_OTG_FS)\r
471   {\r
472   /* USER CODE BEGIN USB_OTG_FS_MspInit 0 */\r
473 \r
474   /* USER CODE END USB_OTG_FS_MspInit 0 */\r
475   \r
476     __HAL_RCC_GPIOA_CLK_ENABLE();\r
477     /**USB_OTG_FS GPIO Configuration    \r
478     PA9     ------> USB_OTG_FS_VBUS\r
479     PA10     ------> USB_OTG_FS_ID\r
480     PA11     ------> USB_OTG_FS_DM\r
481     PA12     ------> USB_OTG_FS_DP \r
482     */\r
483     GPIO_InitStruct.Pin = USB_OTG_FS_VBUS_Pin;\r
484     GPIO_InitStruct.Mode = GPIO_MODE_INPUT;\r
485     GPIO_InitStruct.Pull = GPIO_NOPULL;\r
486     HAL_GPIO_Init(USB_OTG_FS_VBUS_GPIO_Port, &GPIO_InitStruct);\r
487 \r
488     GPIO_InitStruct.Pin = USB_OTG_FS_ID_Pin|USB_OTG_FS_DM_Pin|USB_OTG_FS_DP_Pin;\r
489     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;\r
490     GPIO_InitStruct.Pull = GPIO_NOPULL;\r
491     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;\r
492     GPIO_InitStruct.Alternate = GPIO_AF10_OTG_FS;\r
493     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);\r
494 \r
495     /* Peripheral clock enable */\r
496     __HAL_RCC_USB_OTG_FS_CLK_ENABLE();\r
497 \r
498     /* Enable VDDUSB */\r
499     if(__HAL_RCC_PWR_IS_CLK_DISABLED())\r
500     {\r
501       __HAL_RCC_PWR_CLK_ENABLE();\r
502       HAL_PWREx_EnableVddUSB();\r
503       __HAL_RCC_PWR_CLK_DISABLE();\r
504     }\r
505     else\r
506     {\r
507       HAL_PWREx_EnableVddUSB();\r
508     }\r
509   /* USER CODE BEGIN USB_OTG_FS_MspInit 1 */\r
510 \r
511   /* USER CODE END USB_OTG_FS_MspInit 1 */\r
512   }\r
513 \r
514 }\r
515 \r
516 /**\r
517 * @brief PCD MSP De-Initialization\r
518 * This function freeze the hardware resources used in this example\r
519 * @param hpcd: PCD handle pointer\r
520 * @retval None\r
521 */\r
522 void HAL_PCD_MspDeInit(PCD_HandleTypeDef* hpcd)\r
523 {\r
524   if(hpcd->Instance==USB_OTG_FS)\r
525   {\r
526   /* USER CODE BEGIN USB_OTG_FS_MspDeInit 0 */\r
527 \r
528   /* USER CODE END USB_OTG_FS_MspDeInit 0 */\r
529     /* Peripheral clock disable */\r
530     __HAL_RCC_USB_OTG_FS_CLK_DISABLE();\r
531   \r
532     /**USB_OTG_FS GPIO Configuration    \r
533     PA9     ------> USB_OTG_FS_VBUS\r
534     PA10     ------> USB_OTG_FS_ID\r
535     PA11     ------> USB_OTG_FS_DM\r
536     PA12     ------> USB_OTG_FS_DP \r
537     */\r
538     HAL_GPIO_DeInit(GPIOA, USB_OTG_FS_VBUS_Pin|USB_OTG_FS_ID_Pin|USB_OTG_FS_DM_Pin|USB_OTG_FS_DP_Pin);\r
539 \r
540     /* Disable VDDUSB */\r
541     if(__HAL_RCC_PWR_IS_CLK_DISABLED())\r
542     {\r
543       __HAL_RCC_PWR_CLK_ENABLE();\r
544       HAL_PWREx_DisableVddUSB();\r
545       __HAL_RCC_PWR_CLK_DISABLE();\r
546     }\r
547     else\r
548     {\r
549       HAL_PWREx_DisableVddUSB();\r
550     }\r
551   /* USER CODE BEGIN USB_OTG_FS_MspDeInit 1 */\r
552 \r
553   /* USER CODE END USB_OTG_FS_MspDeInit 1 */\r
554   }\r
555 \r
556 }\r
557 \r
558 /* USER CODE BEGIN 1 */\r
559 \r
560 /* USER CODE END 1 */\r
561 \r
562 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/\r