1 /* USER CODE BEGIN Header */
2 /**
3   ******************************************************************************
4   * File Name          : stm32f7xx_hal_msp.c
5   * Description        : This file provides code for the MSP Initialization
6   *                      and de-Initialization codes.
7   ******************************************************************************
8   ** This notice applies to any and all portions of this file
9   * that are not between comment pairs USER CODE BEGIN and
10   * USER CODE END. Other portions of this file, whether
11   * inserted by the user or by software development tools
12   * are owned by their respective copyright owners.
13   *
14   * COPYRIGHT(c) 2018 STMicroelectronics
15   *
16   * Redistribution and use in source and binary forms, with or without modification,
17   * are permitted provided that the following conditions are met:
18   *   1. Redistributions of source code must retain the above copyright notice,
19   *      this list of conditions and the following disclaimer.
20   *   2. Redistributions in binary form must reproduce the above copyright notice,
21   *      this list of conditions and the following disclaimer in the documentation
22   *      and/or other materials provided with the distribution.
23   *   3. Neither the name of STMicroelectronics nor the names of its contributors
24   *      may be used to endorse or promote products derived from this software
25   *      without specific prior written permission.
26   *
27   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
28   * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
29   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
30   * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
31   * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
32   * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
33   * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
34   * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
35   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
36   * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37   *
38   ******************************************************************************
39   */
40 /* USER CODE END Header */
41 
42 /* Includes ------------------------------------------------------------------*/
43 #include "main.h"
44 /* USER CODE BEGIN Includes */
45 #include <drv_common.h>
46 /* USER CODE END Includes */
47 
48 /* Private typedef -----------------------------------------------------------*/
49 /* USER CODE BEGIN TD */
50 
51 /* USER CODE END TD */
52 
53 /* Private define ------------------------------------------------------------*/
54 /* USER CODE BEGIN Define */
55 
56 /* USER CODE END Define */
57 
58 /* Private macro -------------------------------------------------------------*/
59 /* USER CODE BEGIN Macro */
60 
61 /* USER CODE END Macro */
62 
63 /* Private variables ---------------------------------------------------------*/
64 /* USER CODE BEGIN PV */
65 
66 /* USER CODE END PV */
67 
68 /* Private function prototypes -----------------------------------------------*/
69 /* USER CODE BEGIN PFP */
70 
71 /* USER CODE END PFP */
72 
73 /* External functions --------------------------------------------------------*/
74 /* USER CODE BEGIN ExternalFunctions */
75 
76 /* USER CODE END ExternalFunctions */
77 
78 /* USER CODE BEGIN 0 */
79 
80 /* USER CODE END 0 */
81 
82 void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim);
83                                         /**
84   * Initializes the Global MSP.
85   */
HAL_MspInit(void)86 void HAL_MspInit(void)
87 {
88   /* USER CODE BEGIN MspInit 0 */
89 
90   /* USER CODE END MspInit 0 */
91 
92   __HAL_RCC_PWR_CLK_ENABLE();
93   __HAL_RCC_SYSCFG_CLK_ENABLE();
94 
95   /* System interrupt init*/
96 
97   /* USER CODE BEGIN MspInit 1 */
98 
99   /* USER CODE END MspInit 1 */
100 }
101 
102 /**
103 * @brief ADC MSP Initialization
104 * This function configures the hardware resources used in this example
105 * @param hadc: ADC handle pointer
106 * @retval None
107 */
HAL_ADC_MspInit(ADC_HandleTypeDef * hadc)108 void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc)
109 {
110   GPIO_InitTypeDef GPIO_InitStruct = {0};
111   if(hadc->Instance==ADC1)
112   {
113   /* USER CODE BEGIN ADC1_MspInit 0 */
114 
115   /* USER CODE END ADC1_MspInit 0 */
116     /* Peripheral clock enable */
117     __HAL_RCC_ADC1_CLK_ENABLE();
118 
119     __HAL_RCC_GPIOA_CLK_ENABLE();
120     /**ADC1 GPIO Configuration
121     PA5     ------> ADC1_IN5
122     */
123     GPIO_InitStruct.Pin = GPIO_PIN_5;
124     GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
125     GPIO_InitStruct.Pull = GPIO_NOPULL;
126     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
127 
128   /* USER CODE BEGIN ADC1_MspInit 1 */
129 
130   /* USER CODE END ADC1_MspInit 1 */
131   }
132 
133 }
134 
135 /**
136 * @brief ADC MSP De-Initialization
137 * This function freeze the hardware resources used in this example
138 * @param hadc: ADC handle pointer
139 * @retval None
140 */
HAL_ADC_MspDeInit(ADC_HandleTypeDef * hadc)141 void HAL_ADC_MspDeInit(ADC_HandleTypeDef* hadc)
142 {
143   if(hadc->Instance==ADC1)
144   {
145   /* USER CODE BEGIN ADC1_MspDeInit 0 */
146 
147   /* USER CODE END ADC1_MspDeInit 0 */
148     /* Peripheral clock disable */
149     __HAL_RCC_ADC1_CLK_DISABLE();
150 
151     /**ADC1 GPIO Configuration
152     PA5     ------> ADC1_IN5
153     */
154     HAL_GPIO_DeInit(GPIOA, GPIO_PIN_5);
155 
156   /* USER CODE BEGIN ADC1_MspDeInit 1 */
157 
158   /* USER CODE END ADC1_MspDeInit 1 */
159   }
160 
161 }
162 
163 /**
164 * @brief ETH MSP Initialization
165 * This function configures the hardware resources used in this example
166 * @param heth: ETH handle pointer
167 * @retval None
168 */
HAL_ETH_MspInit(ETH_HandleTypeDef * heth)169 void HAL_ETH_MspInit(ETH_HandleTypeDef* heth)
170 {
171   GPIO_InitTypeDef GPIO_InitStruct = {0};
172   if(heth->Instance==ETH)
173   {
174   /* USER CODE BEGIN ETH_MspInit 0 */
175 
176   /* USER CODE END ETH_MspInit 0 */
177     /* Peripheral clock enable */
178     __HAL_RCC_ETH_CLK_ENABLE();
179 
180     __HAL_RCC_GPIOC_CLK_ENABLE();
181     __HAL_RCC_GPIOA_CLK_ENABLE();
182     __HAL_RCC_GPIOB_CLK_ENABLE();
183     __HAL_RCC_GPIOG_CLK_ENABLE();
184     /**ETH GPIO Configuration
185     PC1     ------> ETH_MDC
186     PA1     ------> ETH_REF_CLK
187     PA2     ------> ETH_MDIO
188     PA7     ------> ETH_CRS_DV
189     PC4     ------> ETH_RXD0
190     PC5     ------> ETH_RXD1
191     PB11     ------> ETH_TX_EN
192     PG13     ------> ETH_TXD0
193     PG14     ------> ETH_TXD1
194     */
195     GPIO_InitStruct.Pin = GPIO_PIN_1|GPIO_PIN_4|GPIO_PIN_5;
196     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
197     GPIO_InitStruct.Pull = GPIO_NOPULL;
198     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
199     GPIO_InitStruct.Alternate = GPIO_AF11_ETH;
200     HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
201 
202     GPIO_InitStruct.Pin = GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_7;
203     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
204     GPIO_InitStruct.Pull = GPIO_NOPULL;
205     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
206     GPIO_InitStruct.Alternate = GPIO_AF11_ETH;
207     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
208 
209     GPIO_InitStruct.Pin = GPIO_PIN_11;
210     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
211     GPIO_InitStruct.Pull = GPIO_NOPULL;
212     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
213     GPIO_InitStruct.Alternate = GPIO_AF11_ETH;
214     HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
215 
216     GPIO_InitStruct.Pin = GPIO_PIN_13|GPIO_PIN_14;
217     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
218     GPIO_InitStruct.Pull = GPIO_NOPULL;
219     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
220     GPIO_InitStruct.Alternate = GPIO_AF11_ETH;
221     HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
222 
223   /* USER CODE BEGIN ETH_MspInit 1 */
224 
225   /* USER CODE END ETH_MspInit 1 */
226   }
227 
228 }
229 
230 /**
231 * @brief ETH MSP De-Initialization
232 * This function freeze the hardware resources used in this example
233 * @param heth: ETH handle pointer
234 * @retval None
235 */
HAL_ETH_MspDeInit(ETH_HandleTypeDef * heth)236 void HAL_ETH_MspDeInit(ETH_HandleTypeDef* heth)
237 {
238   if(heth->Instance==ETH)
239   {
240   /* USER CODE BEGIN ETH_MspDeInit 0 */
241 
242   /* USER CODE END ETH_MspDeInit 0 */
243     /* Peripheral clock disable */
244     __HAL_RCC_ETH_CLK_DISABLE();
245 
246     /**ETH GPIO Configuration
247     PC1     ------> ETH_MDC
248     PA1     ------> ETH_REF_CLK
249     PA2     ------> ETH_MDIO
250     PA7     ------> ETH_CRS_DV
251     PC4     ------> ETH_RXD0
252     PC5     ------> ETH_RXD1
253     PB11     ------> ETH_TX_EN
254     PG13     ------> ETH_TXD0
255     PG14     ------> ETH_TXD1
256     */
257     HAL_GPIO_DeInit(GPIOC, GPIO_PIN_1|GPIO_PIN_4|GPIO_PIN_5);
258 
259     HAL_GPIO_DeInit(GPIOA, GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_7);
260 
261     HAL_GPIO_DeInit(GPIOB, GPIO_PIN_11);
262 
263     HAL_GPIO_DeInit(GPIOG, GPIO_PIN_13|GPIO_PIN_14);
264 
265   /* USER CODE BEGIN ETH_MspDeInit 1 */
266 
267   /* USER CODE END ETH_MspDeInit 1 */
268   }
269 
270 }
271 
272 /**
273 * @brief LTDC MSP Initialization
274 * This function configures the hardware resources used in this example
275 * @param hltdc: LTDC handle pointer
276 * @retval None
277 */
HAL_LTDC_MspInit(LTDC_HandleTypeDef * hltdc)278 void HAL_LTDC_MspInit(LTDC_HandleTypeDef* hltdc)
279 {
280   GPIO_InitTypeDef GPIO_InitStruct = {0};
281   if(hltdc->Instance==LTDC)
282   {
283   /* USER CODE BEGIN LTDC_MspInit 0 */
284 
285   /* USER CODE END LTDC_MspInit 0 */
286     /* Peripheral clock enable */
287     __HAL_RCC_LTDC_CLK_ENABLE();
288 
289     __HAL_RCC_GPIOI_CLK_ENABLE();
290     __HAL_RCC_GPIOF_CLK_ENABLE();
291     __HAL_RCC_GPIOH_CLK_ENABLE();
292     __HAL_RCC_GPIOA_CLK_ENABLE();
293     __HAL_RCC_GPIOB_CLK_ENABLE();
294     __HAL_RCC_GPIOG_CLK_ENABLE();
295     /**LTDC GPIO Configuration
296     PI9     ------> LTDC_VSYNC
297     PI10     ------> LTDC_HSYNC
298     PI11     ------> LTDC_G6
299     PF10     ------> LTDC_DE
300     PH4     ------> LTDC_G5
301     PA6     ------> LTDC_G2
302     PB1     ------> LTDC_R6
303     PB10     ------> LTDC_G4
304     PH9     ------> LTDC_R3
305     PH10     ------> LTDC_R4
306     PH11     ------> LTDC_R5
307     PG6     ------> LTDC_R7
308     PG7     ------> LTDC_CLK
309     PA8     ------> LTDC_B3
310     PH14     ------> LTDC_G3
311     PI2     ------> LTDC_G7
312     PG12     ------> LTDC_B4
313     PB8     ------> LTDC_B6
314     PB9     ------> LTDC_B7
315     PI5     ------> LTDC_B5
316     */
317     GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_2|GPIO_PIN_5;
318     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
319     GPIO_InitStruct.Pull = GPIO_NOPULL;
320     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
321     GPIO_InitStruct.Alternate = GPIO_AF14_LTDC;
322     HAL_GPIO_Init(GPIOI, &GPIO_InitStruct);
323 
324     GPIO_InitStruct.Pin = GPIO_PIN_11;
325     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
326     GPIO_InitStruct.Pull = GPIO_NOPULL;
327     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
328     GPIO_InitStruct.Alternate = GPIO_AF9_LTDC;
329     HAL_GPIO_Init(GPIOI, &GPIO_InitStruct);
330 
331     GPIO_InitStruct.Pin = GPIO_PIN_10;
332     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
333     GPIO_InitStruct.Pull = GPIO_NOPULL;
334     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
335     GPIO_InitStruct.Alternate = GPIO_AF14_LTDC;
336     HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
337 
338     GPIO_InitStruct.Pin = GPIO_PIN_4;
339     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
340     GPIO_InitStruct.Pull = GPIO_NOPULL;
341     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
342     GPIO_InitStruct.Alternate = GPIO_AF9_LTDC;
343     HAL_GPIO_Init(GPIOH, &GPIO_InitStruct);
344 
345     GPIO_InitStruct.Pin = GPIO_PIN_6;
346     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
347     GPIO_InitStruct.Pull = GPIO_NOPULL;
348     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
349     GPIO_InitStruct.Alternate = GPIO_AF14_LTDC;
350     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
351 
352     GPIO_InitStruct.Pin = GPIO_PIN_1;
353     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
354     GPIO_InitStruct.Pull = GPIO_NOPULL;
355     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
356     GPIO_InitStruct.Alternate = GPIO_AF9_LTDC;
357     HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
358 
359     GPIO_InitStruct.Pin = GPIO_PIN_10|GPIO_PIN_8|GPIO_PIN_9;
360     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
361     GPIO_InitStruct.Pull = GPIO_NOPULL;
362     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
363     GPIO_InitStruct.Alternate = GPIO_AF14_LTDC;
364     HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
365 
366     GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11|GPIO_PIN_14;
367     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
368     GPIO_InitStruct.Pull = GPIO_NOPULL;
369     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
370     GPIO_InitStruct.Alternate = GPIO_AF14_LTDC;
371     HAL_GPIO_Init(GPIOH, &GPIO_InitStruct);
372 
373     GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_7;
374     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
375     GPIO_InitStruct.Pull = GPIO_NOPULL;
376     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
377     GPIO_InitStruct.Alternate = GPIO_AF14_LTDC;
378     HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
379 
380     GPIO_InitStruct.Pin = GPIO_PIN_8;
381     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
382     GPIO_InitStruct.Pull = GPIO_NOPULL;
383     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
384     GPIO_InitStruct.Alternate = GPIO_AF13_LTDC;
385     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
386 
387     GPIO_InitStruct.Pin = GPIO_PIN_12;
388     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
389     GPIO_InitStruct.Pull = GPIO_NOPULL;
390     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
391     GPIO_InitStruct.Alternate = GPIO_AF9_LTDC;
392     HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
393 
394   /* USER CODE BEGIN LTDC_MspInit 1 */
395 
396   /* USER CODE END LTDC_MspInit 1 */
397   }
398 
399 }
400 
401 /**
402 * @brief LTDC MSP De-Initialization
403 * This function freeze the hardware resources used in this example
404 * @param hltdc: LTDC handle pointer
405 * @retval None
406 */
HAL_LTDC_MspDeInit(LTDC_HandleTypeDef * hltdc)407 void HAL_LTDC_MspDeInit(LTDC_HandleTypeDef* hltdc)
408 {
409   if(hltdc->Instance==LTDC)
410   {
411   /* USER CODE BEGIN LTDC_MspDeInit 0 */
412 
413   /* USER CODE END LTDC_MspDeInit 0 */
414     /* Peripheral clock disable */
415     __HAL_RCC_LTDC_CLK_DISABLE();
416 
417     /**LTDC GPIO Configuration
418     PI9     ------> LTDC_VSYNC
419     PI10     ------> LTDC_HSYNC
420     PI11     ------> LTDC_G6
421     PF10     ------> LTDC_DE
422     PH4     ------> LTDC_G5
423     PA6     ------> LTDC_G2
424     PB1     ------> LTDC_R6
425     PB10     ------> LTDC_G4
426     PH9     ------> LTDC_R3
427     PH10     ------> LTDC_R4
428     PH11     ------> LTDC_R5
429     PG6     ------> LTDC_R7
430     PG7     ------> LTDC_CLK
431     PA8     ------> LTDC_B3
432     PH14     ------> LTDC_G3
433     PI2     ------> LTDC_G7
434     PG12     ------> LTDC_B4
435     PB8     ------> LTDC_B6
436     PB9     ------> LTDC_B7
437     PI5     ------> LTDC_B5
438     */
439     HAL_GPIO_DeInit(GPIOI, GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11|GPIO_PIN_2
440                           |GPIO_PIN_5);
441 
442     HAL_GPIO_DeInit(GPIOF, GPIO_PIN_10);
443 
444     HAL_GPIO_DeInit(GPIOH, GPIO_PIN_4|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11
445                           |GPIO_PIN_14);
446 
447     HAL_GPIO_DeInit(GPIOA, GPIO_PIN_6|GPIO_PIN_8);
448 
449     HAL_GPIO_DeInit(GPIOB, GPIO_PIN_1|GPIO_PIN_10|GPIO_PIN_8|GPIO_PIN_9);
450 
451     HAL_GPIO_DeInit(GPIOG, GPIO_PIN_6|GPIO_PIN_7|GPIO_PIN_12);
452 
453   /* USER CODE BEGIN LTDC_MspDeInit 1 */
454 
455   /* USER CODE END LTDC_MspDeInit 1 */
456   }
457 
458 }
459 
460 /**
461 * @brief QSPI MSP Initialization
462 * This function configures the hardware resources used in this example
463 * @param hqspi: QSPI handle pointer
464 * @retval None
465 */
HAL_QSPI_MspInit(QSPI_HandleTypeDef * hqspi)466 void HAL_QSPI_MspInit(QSPI_HandleTypeDef* hqspi)
467 {
468   GPIO_InitTypeDef GPIO_InitStruct = {0};
469   if(hqspi->Instance==QUADSPI)
470   {
471   /* USER CODE BEGIN QUADSPI_MspInit 0 */
472 
473   /* USER CODE END QUADSPI_MspInit 0 */
474     /* Peripheral clock enable */
475     __HAL_RCC_QSPI_CLK_ENABLE();
476 
477     __HAL_RCC_GPIOF_CLK_ENABLE();
478     __HAL_RCC_GPIOB_CLK_ENABLE();
479     /**QUADSPI GPIO Configuration
480     PF6     ------> QUADSPI_BK1_IO3
481     PF7     ------> QUADSPI_BK1_IO2
482     PF8     ------> QUADSPI_BK1_IO0
483     PF9     ------> QUADSPI_BK1_IO1
484     PB2     ------> QUADSPI_CLK
485     PB6     ------> QUADSPI_BK1_NCS
486     */
487     GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_7;
488     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
489     GPIO_InitStruct.Pull = GPIO_NOPULL;
490     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
491     GPIO_InitStruct.Alternate = GPIO_AF9_QUADSPI;
492     HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
493 
494     GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_9;
495     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
496     GPIO_InitStruct.Pull = GPIO_NOPULL;
497     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
498     GPIO_InitStruct.Alternate = GPIO_AF10_QUADSPI;
499     HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
500 
501     GPIO_InitStruct.Pin = GPIO_PIN_2;
502     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
503     GPIO_InitStruct.Pull = GPIO_NOPULL;
504     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
505     GPIO_InitStruct.Alternate = GPIO_AF9_QUADSPI;
506     HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
507 
508     GPIO_InitStruct.Pin = GPIO_PIN_6;
509     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
510     GPIO_InitStruct.Pull = GPIO_NOPULL;
511     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
512     GPIO_InitStruct.Alternate = GPIO_AF10_QUADSPI;
513     HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
514 
515   /* USER CODE BEGIN QUADSPI_MspInit 1 */
516 
517   /* USER CODE END QUADSPI_MspInit 1 */
518   }
519 
520 }
521 
522 /**
523 * @brief QSPI MSP De-Initialization
524 * This function freeze the hardware resources used in this example
525 * @param hqspi: QSPI handle pointer
526 * @retval None
527 */
HAL_QSPI_MspDeInit(QSPI_HandleTypeDef * hqspi)528 void HAL_QSPI_MspDeInit(QSPI_HandleTypeDef* hqspi)
529 {
530   if(hqspi->Instance==QUADSPI)
531   {
532   /* USER CODE BEGIN QUADSPI_MspDeInit 0 */
533 
534   /* USER CODE END QUADSPI_MspDeInit 0 */
535     /* Peripheral clock disable */
536     __HAL_RCC_QSPI_CLK_DISABLE();
537 
538     /**QUADSPI GPIO Configuration
539     PF6     ------> QUADSPI_BK1_IO3
540     PF7     ------> QUADSPI_BK1_IO2
541     PF8     ------> QUADSPI_BK1_IO0
542     PF9     ------> QUADSPI_BK1_IO1
543     PB2     ------> QUADSPI_CLK
544     PB6     ------> QUADSPI_BK1_NCS
545     */
546     HAL_GPIO_DeInit(GPIOF, GPIO_PIN_6|GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9);
547 
548     HAL_GPIO_DeInit(GPIOB, GPIO_PIN_2|GPIO_PIN_6);
549 
550   /* USER CODE BEGIN QUADSPI_MspDeInit 1 */
551 
552   /* USER CODE END QUADSPI_MspDeInit 1 */
553   }
554 
555 }
556 
557 /**
558 * @brief RTC MSP Initialization
559 * This function configures the hardware resources used in this example
560 * @param hrtc: RTC handle pointer
561 * @retval None
562 */
HAL_RTC_MspInit(RTC_HandleTypeDef * hrtc)563 void HAL_RTC_MspInit(RTC_HandleTypeDef* hrtc)
564 {
565   if(hrtc->Instance==RTC)
566   {
567   /* USER CODE BEGIN RTC_MspInit 0 */
568 
569   /* USER CODE END RTC_MspInit 0 */
570     /* Peripheral clock enable */
571     __HAL_RCC_RTC_ENABLE();
572   /* USER CODE BEGIN RTC_MspInit 1 */
573 
574   /* USER CODE END RTC_MspInit 1 */
575   }
576 
577 }
578 
579 /**
580 * @brief RTC MSP De-Initialization
581 * This function freeze the hardware resources used in this example
582 * @param hrtc: RTC handle pointer
583 * @retval None
584 */
HAL_RTC_MspDeInit(RTC_HandleTypeDef * hrtc)585 void HAL_RTC_MspDeInit(RTC_HandleTypeDef* hrtc)
586 {
587   if(hrtc->Instance==RTC)
588   {
589   /* USER CODE BEGIN RTC_MspDeInit 0 */
590 
591   /* USER CODE END RTC_MspDeInit 0 */
592     /* Peripheral clock disable */
593     __HAL_RCC_RTC_DISABLE();
594   /* USER CODE BEGIN RTC_MspDeInit 1 */
595 
596   /* USER CODE END RTC_MspDeInit 1 */
597   }
598 
599 }
600 
601 /**
602 * @brief SD MSP Initialization
603 * This function configures the hardware resources used in this example
604 * @param hsd: SD handle pointer
605 * @retval None
606 */
HAL_SD_MspInit(SD_HandleTypeDef * hsd)607 void HAL_SD_MspInit(SD_HandleTypeDef* hsd)
608 {
609   GPIO_InitTypeDef GPIO_InitStruct = {0};
610   if(hsd->Instance==SDMMC1)
611   {
612   /* USER CODE BEGIN SDMMC1_MspInit 0 */
613 
614   /* USER CODE END SDMMC1_MspInit 0 */
615     /* Peripheral clock enable */
616     __HAL_RCC_SDMMC1_CLK_ENABLE();
617 
618     __HAL_RCC_GPIOC_CLK_ENABLE();
619     __HAL_RCC_GPIOD_CLK_ENABLE();
620     /**SDMMC1 GPIO Configuration
621     PC8     ------> SDMMC1_D0
622     PC9     ------> SDMMC1_D1
623     PC10     ------> SDMMC1_D2
624     PC11     ------> SDMMC1_D3
625     PC12     ------> SDMMC1_CK
626     PD2     ------> SDMMC1_CMD
627     */
628     GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11
629                           |GPIO_PIN_12;
630     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
631     GPIO_InitStruct.Pull = GPIO_NOPULL;
632     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
633     GPIO_InitStruct.Alternate = GPIO_AF12_SDMMC1;
634     HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
635 
636     GPIO_InitStruct.Pin = GPIO_PIN_2;
637     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
638     GPIO_InitStruct.Pull = GPIO_NOPULL;
639     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
640     GPIO_InitStruct.Alternate = GPIO_AF12_SDMMC1;
641     HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
642 
643   /* USER CODE BEGIN SDMMC1_MspInit 1 */
644 
645   /* USER CODE END SDMMC1_MspInit 1 */
646   }
647 
648 }
649 
650 /**
651 * @brief SD MSP De-Initialization
652 * This function freeze the hardware resources used in this example
653 * @param hsd: SD handle pointer
654 * @retval None
655 */
HAL_SD_MspDeInit(SD_HandleTypeDef * hsd)656 void HAL_SD_MspDeInit(SD_HandleTypeDef* hsd)
657 {
658   if(hsd->Instance==SDMMC1)
659   {
660   /* USER CODE BEGIN SDMMC1_MspDeInit 0 */
661 
662   /* USER CODE END SDMMC1_MspDeInit 0 */
663     /* Peripheral clock disable */
664     __HAL_RCC_SDMMC1_CLK_DISABLE();
665 
666     /**SDMMC1 GPIO Configuration
667     PC8     ------> SDMMC1_D0
668     PC9     ------> SDMMC1_D1
669     PC10     ------> SDMMC1_D2
670     PC11     ------> SDMMC1_D3
671     PC12     ------> SDMMC1_CK
672     PD2     ------> SDMMC1_CMD
673     */
674     HAL_GPIO_DeInit(GPIOC, GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11
675                           |GPIO_PIN_12);
676 
677     HAL_GPIO_DeInit(GPIOD, GPIO_PIN_2);
678 
679   /* USER CODE BEGIN SDMMC1_MspDeInit 1 */
680 
681   /* USER CODE END SDMMC1_MspDeInit 1 */
682   }
683 
684 }
685 
686 /**
687 * @brief SPI MSP Initialization
688 * This function configures the hardware resources used in this example
689 * @param hspi: SPI handle pointer
690 * @retval None
691 */
HAL_SPI_MspInit(SPI_HandleTypeDef * hspi)692 void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi)
693 {
694   GPIO_InitTypeDef GPIO_InitStruct = {0};
695   if(hspi->Instance==SPI2)
696   {
697   /* USER CODE BEGIN SPI2_MspInit 0 */
698 
699   /* USER CODE END SPI2_MspInit 0 */
700     /* Peripheral clock enable */
701     __HAL_RCC_SPI2_CLK_ENABLE();
702 
703     __HAL_RCC_GPIOB_CLK_ENABLE();
704     /**SPI2 GPIO Configuration
705     PB13     ------> SPI2_SCK
706     PB14     ------> SPI2_MISO
707     PB15     ------> SPI2_MOSI
708     */
709     GPIO_InitStruct.Pin = GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15;
710     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
711     GPIO_InitStruct.Pull = GPIO_NOPULL;
712     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
713     GPIO_InitStruct.Alternate = GPIO_AF5_SPI2;
714     HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
715 
716   /* USER CODE BEGIN SPI2_MspInit 1 */
717 
718   /* USER CODE END SPI2_MspInit 1 */
719   }
720 
721 }
722 
723 /**
724 * @brief SPI MSP De-Initialization
725 * This function freeze the hardware resources used in this example
726 * @param hspi: SPI handle pointer
727 * @retval None
728 */
HAL_SPI_MspDeInit(SPI_HandleTypeDef * hspi)729 void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi)
730 {
731   if(hspi->Instance==SPI2)
732   {
733   /* USER CODE BEGIN SPI2_MspDeInit 0 */
734 
735   /* USER CODE END SPI2_MspDeInit 0 */
736     /* Peripheral clock disable */
737     __HAL_RCC_SPI2_CLK_DISABLE();
738 
739     /**SPI2 GPIO Configuration
740     PB13     ------> SPI2_SCK
741     PB14     ------> SPI2_MISO
742     PB15     ------> SPI2_MOSI
743     */
744     HAL_GPIO_DeInit(GPIOB, GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15);
745 
746   /* USER CODE BEGIN SPI2_MspDeInit 1 */
747 
748   /* USER CODE END SPI2_MspDeInit 1 */
749   }
750 
751 }
752 
753 /**
754 * @brief TIM_PWM MSP Initialization
755 * This function configures the hardware resources used in this example
756 * @param htim_pwm: TIM_PWM handle pointer
757 * @retval None
758 */
HAL_TIM_PWM_MspInit(TIM_HandleTypeDef * htim_pwm)759 void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef* htim_pwm)
760 {
761   if(htim_pwm->Instance==TIM2)
762   {
763   /* USER CODE BEGIN TIM2_MspInit 0 */
764 
765   /* USER CODE END TIM2_MspInit 0 */
766     /* Peripheral clock enable */
767     __HAL_RCC_TIM2_CLK_ENABLE();
768   /* USER CODE BEGIN TIM2_MspInit 1 */
769 
770   /* USER CODE END TIM2_MspInit 1 */
771   }
772 
773 }
774 
775 /**
776 * @brief TIM_Base MSP Initialization
777 * This function configures the hardware resources used in this example
778 * @param htim_base: TIM_Base handle pointer
779 * @retval None
780 */
HAL_TIM_Base_MspInit(TIM_HandleTypeDef * htim_base)781 void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
782 {
783   if(htim_base->Instance==TIM3)
784   {
785   /* USER CODE BEGIN TIM3_MspInit 0 */
786 
787   /* USER CODE END TIM3_MspInit 0 */
788     /* Peripheral clock enable */
789     __HAL_RCC_TIM3_CLK_ENABLE();
790   /* USER CODE BEGIN TIM3_MspInit 1 */
791 
792   /* USER CODE END TIM3_MspInit 1 */
793   }
794   else if(htim_base->Instance==TIM11)
795   {
796   /* USER CODE BEGIN TIM11_MspInit 0 */
797 
798   /* USER CODE END TIM11_MspInit 0 */
799     /* Peripheral clock enable */
800     __HAL_RCC_TIM11_CLK_ENABLE();
801   /* USER CODE BEGIN TIM11_MspInit 1 */
802 
803   /* USER CODE END TIM11_MspInit 1 */
804   }
805   else if(htim_base->Instance==TIM13)
806   {
807   /* USER CODE BEGIN TIM13_MspInit 0 */
808 
809   /* USER CODE END TIM13_MspInit 0 */
810     /* Peripheral clock enable */
811     __HAL_RCC_TIM13_CLK_ENABLE();
812   /* USER CODE BEGIN TIM13_MspInit 1 */
813 
814   /* USER CODE END TIM13_MspInit 1 */
815   }
816   else if(htim_base->Instance==TIM14)
817   {
818   /* USER CODE BEGIN TIM14_MspInit 0 */
819 
820   /* USER CODE END TIM14_MspInit 0 */
821     /* Peripheral clock enable */
822     __HAL_RCC_TIM14_CLK_ENABLE();
823   /* USER CODE BEGIN TIM14_MspInit 1 */
824 
825   /* USER CODE END TIM14_MspInit 1 */
826   }
827 
828 }
829 
HAL_TIM_MspPostInit(TIM_HandleTypeDef * htim)830 void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim)
831 {
832   GPIO_InitTypeDef GPIO_InitStruct = {0};
833   if(htim->Instance==TIM2)
834   {
835   /* USER CODE BEGIN TIM2_MspPostInit 0 */
836 
837   /* USER CODE END TIM2_MspPostInit 0 */
838     __HAL_RCC_GPIOA_CLK_ENABLE();
839     /**TIM2 GPIO Configuration
840     PA3     ------> TIM2_CH4
841     */
842     GPIO_InitStruct.Pin = GPIO_PIN_3;
843     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
844     GPIO_InitStruct.Pull = GPIO_NOPULL;
845     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
846     GPIO_InitStruct.Alternate = GPIO_AF1_TIM2;
847     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
848 
849   /* USER CODE BEGIN TIM2_MspPostInit 1 */
850 
851   /* USER CODE END TIM2_MspPostInit 1 */
852   }
853   else if(htim->Instance==TIM3)
854   {
855   /* USER CODE BEGIN TIM3_MspPostInit 0 */
856 
857   /* USER CODE END TIM3_MspPostInit 0 */
858 
859     __HAL_RCC_GPIOB_CLK_ENABLE();
860     /**TIM3 GPIO Configuration
861     PB0     ------> TIM3_CH3
862     */
863     GPIO_InitStruct.Pin = GPIO_PIN_0;
864     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
865     GPIO_InitStruct.Pull = GPIO_NOPULL;
866     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
867     GPIO_InitStruct.Alternate = GPIO_AF2_TIM3;
868     HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
869 
870   /* USER CODE BEGIN TIM3_MspPostInit 1 */
871 
872   /* USER CODE END TIM3_MspPostInit 1 */
873   }
874 
875 }
876 /**
877 * @brief TIM_PWM MSP De-Initialization
878 * This function freeze the hardware resources used in this example
879 * @param htim_pwm: TIM_PWM handle pointer
880 * @retval None
881 */
HAL_TIM_PWM_MspDeInit(TIM_HandleTypeDef * htim_pwm)882 void HAL_TIM_PWM_MspDeInit(TIM_HandleTypeDef* htim_pwm)
883 {
884   if(htim_pwm->Instance==TIM2)
885   {
886   /* USER CODE BEGIN TIM2_MspDeInit 0 */
887 
888   /* USER CODE END TIM2_MspDeInit 0 */
889     /* Peripheral clock disable */
890     __HAL_RCC_TIM2_CLK_DISABLE();
891   /* USER CODE BEGIN TIM2_MspDeInit 1 */
892 
893   /* USER CODE END TIM2_MspDeInit 1 */
894   }
895 
896 }
897 
898 /**
899 * @brief TIM_Base MSP De-Initialization
900 * This function freeze the hardware resources used in this example
901 * @param htim_base: TIM_Base handle pointer
902 * @retval None
903 */
HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef * htim_base)904 void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base)
905 {
906   if(htim_base->Instance==TIM3)
907   {
908   /* USER CODE BEGIN TIM3_MspDeInit 0 */
909 
910   /* USER CODE END TIM3_MspDeInit 0 */
911     /* Peripheral clock disable */
912     __HAL_RCC_TIM3_CLK_DISABLE();
913   /* USER CODE BEGIN TIM3_MspDeInit 1 */
914 
915   /* USER CODE END TIM3_MspDeInit 1 */
916   }
917   else if(htim_base->Instance==TIM11)
918   {
919   /* USER CODE BEGIN TIM11_MspDeInit 0 */
920 
921   /* USER CODE END TIM11_MspDeInit 0 */
922     /* Peripheral clock disable */
923     __HAL_RCC_TIM11_CLK_DISABLE();
924   /* USER CODE BEGIN TIM11_MspDeInit 1 */
925 
926   /* USER CODE END TIM11_MspDeInit 1 */
927   }
928   else if(htim_base->Instance==TIM13)
929   {
930   /* USER CODE BEGIN TIM13_MspDeInit 0 */
931 
932   /* USER CODE END TIM13_MspDeInit 0 */
933     /* Peripheral clock disable */
934     __HAL_RCC_TIM13_CLK_DISABLE();
935   /* USER CODE BEGIN TIM13_MspDeInit 1 */
936 
937   /* USER CODE END TIM13_MspDeInit 1 */
938   }
939   else if(htim_base->Instance==TIM14)
940   {
941   /* USER CODE BEGIN TIM14_MspDeInit 0 */
942 
943   /* USER CODE END TIM14_MspDeInit 0 */
944     /* Peripheral clock disable */
945     __HAL_RCC_TIM14_CLK_DISABLE();
946   /* USER CODE BEGIN TIM14_MspDeInit 1 */
947 
948   /* USER CODE END TIM14_MspDeInit 1 */
949   }
950 
951 }
952 
953 /**
954 * @brief UART MSP Initialization
955 * This function configures the hardware resources used in this example
956 * @param huart: UART handle pointer
957 * @retval None
958 */
HAL_UART_MspInit(UART_HandleTypeDef * huart)959 void HAL_UART_MspInit(UART_HandleTypeDef* huart)
960 {
961   GPIO_InitTypeDef GPIO_InitStruct = {0};
962   if(huart->Instance==USART1)
963   {
964   /* USER CODE BEGIN USART1_MspInit 0 */
965 
966   /* USER CODE END USART1_MspInit 0 */
967     /* Peripheral clock enable */
968     __HAL_RCC_USART1_CLK_ENABLE();
969 
970     __HAL_RCC_GPIOA_CLK_ENABLE();
971     /**USART1 GPIO Configuration
972     PA9     ------> USART1_TX
973     PA10     ------> USART1_RX
974     */
975     GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_10;
976     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
977     GPIO_InitStruct.Pull = GPIO_PULLUP;
978     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
979     GPIO_InitStruct.Alternate = GPIO_AF7_USART1;
980     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
981 
982   /* USER CODE BEGIN USART1_MspInit 1 */
983 
984   /* USER CODE END USART1_MspInit 1 */
985   }
986   else if(huart->Instance==USART2)
987   {
988   /* USER CODE BEGIN USART2_MspInit 0 */
989 
990   /* USER CODE END USART2_MspInit 0 */
991     /* Peripheral clock enable */
992     __HAL_RCC_USART2_CLK_ENABLE();
993 
994     __HAL_RCC_GPIOD_CLK_ENABLE();
995     /**USART2 GPIO Configuration
996     PD5     ------> USART2_TX
997     PD6     ------> USART2_RX
998     */
999     GPIO_InitStruct.Pin = GPIO_PIN_5|GPIO_PIN_6;
1000     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
1001     GPIO_InitStruct.Pull = GPIO_PULLUP;
1002     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
1003     GPIO_InitStruct.Alternate = GPIO_AF7_USART2;
1004     HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
1005 
1006   /* USER CODE BEGIN USART2_MspInit 1 */
1007 
1008   /* USER CODE END USART2_MspInit 1 */
1009   }
1010 
1011 }
1012 
1013 /**
1014 * @brief UART MSP De-Initialization
1015 * This function freeze the hardware resources used in this example
1016 * @param huart: UART handle pointer
1017 * @retval None
1018 */
HAL_UART_MspDeInit(UART_HandleTypeDef * huart)1019 void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
1020 {
1021   if(huart->Instance==USART1)
1022   {
1023   /* USER CODE BEGIN USART1_MspDeInit 0 */
1024 
1025   /* USER CODE END USART1_MspDeInit 0 */
1026     /* Peripheral clock disable */
1027     __HAL_RCC_USART1_CLK_DISABLE();
1028 
1029     /**USART1 GPIO Configuration
1030     PA9     ------> USART1_TX
1031     PA10     ------> USART1_RX
1032     */
1033     HAL_GPIO_DeInit(GPIOA, GPIO_PIN_9|GPIO_PIN_10);
1034 
1035   /* USER CODE BEGIN USART1_MspDeInit 1 */
1036 
1037   /* USER CODE END USART1_MspDeInit 1 */
1038   }
1039   else if(huart->Instance==USART2)
1040   {
1041   /* USER CODE BEGIN USART2_MspDeInit 0 */
1042 
1043   /* USER CODE END USART2_MspDeInit 0 */
1044     /* Peripheral clock disable */
1045     __HAL_RCC_USART2_CLK_DISABLE();
1046 
1047     /**USART2 GPIO Configuration
1048     PD5     ------> USART2_TX
1049     PD6     ------> USART2_RX
1050     */
1051     HAL_GPIO_DeInit(GPIOD, GPIO_PIN_5|GPIO_PIN_6);
1052 
1053   /* USER CODE BEGIN USART2_MspDeInit 1 */
1054 
1055   /* USER CODE END USART2_MspDeInit 1 */
1056   }
1057 
1058 }
1059 
1060 /**
1061 * @brief HCD MSP Initialization
1062 * This function configures the hardware resources used in this example
1063 * @param hhcd: HCD handle pointer
1064 * @retval None
1065 */
HAL_HCD_MspInit(HCD_HandleTypeDef * hhcd)1066 void HAL_HCD_MspInit(HCD_HandleTypeDef* hhcd)
1067 {
1068   GPIO_InitTypeDef GPIO_InitStruct = {0};
1069   if(hhcd->Instance==USB_OTG_FS)
1070   {
1071   /* USER CODE BEGIN USB_OTG_FS_MspInit 0 */
1072 
1073   /* USER CODE END USB_OTG_FS_MspInit 0 */
1074 
1075     __HAL_RCC_GPIOA_CLK_ENABLE();
1076     /**USB_OTG_FS GPIO Configuration
1077     PA11     ------> USB_OTG_FS_DM
1078     PA12     ------> USB_OTG_FS_DP
1079     */
1080     GPIO_InitStruct.Pin = GPIO_PIN_11|GPIO_PIN_12;
1081     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
1082     GPIO_InitStruct.Pull = GPIO_NOPULL;
1083     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
1084     GPIO_InitStruct.Alternate = GPIO_AF10_OTG_FS;
1085     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
1086 
1087     /* Peripheral clock enable */
1088     __HAL_RCC_USB_OTG_FS_CLK_ENABLE();
1089     /* USB_OTG_FS interrupt Init */
1090     HAL_NVIC_SetPriority(OTG_FS_IRQn, 0, 0);
1091     HAL_NVIC_EnableIRQ(OTG_FS_IRQn);
1092   /* USER CODE BEGIN USB_OTG_FS_MspInit 1 */
1093 
1094   /* USER CODE END USB_OTG_FS_MspInit 1 */
1095   }
1096 
1097 }
1098 
1099 /**
1100 * @brief HCD MSP De-Initialization
1101 * This function freeze the hardware resources used in this example
1102 * @param hhcd: HCD handle pointer
1103 * @retval None
1104 */
HAL_HCD_MspDeInit(HCD_HandleTypeDef * hhcd)1105 void HAL_HCD_MspDeInit(HCD_HandleTypeDef* hhcd)
1106 {
1107   if(hhcd->Instance==USB_OTG_FS)
1108   {
1109   /* USER CODE BEGIN USB_OTG_FS_MspDeInit 0 */
1110 
1111   /* USER CODE END USB_OTG_FS_MspDeInit 0 */
1112     /* Peripheral clock disable */
1113     __HAL_RCC_USB_OTG_FS_CLK_DISABLE();
1114 
1115     /**USB_OTG_FS GPIO Configuration
1116     PA11     ------> USB_OTG_FS_DM
1117     PA12     ------> USB_OTG_FS_DP
1118     */
1119     HAL_GPIO_DeInit(GPIOA, GPIO_PIN_11|GPIO_PIN_12);
1120 
1121     /* USB_OTG_FS interrupt DeInit */
1122     HAL_NVIC_DisableIRQ(OTG_FS_IRQn);
1123   /* USER CODE BEGIN USB_OTG_FS_MspDeInit 1 */
1124 
1125   /* USER CODE END USB_OTG_FS_MspDeInit 1 */
1126   }
1127 
1128 }
1129 
1130 static uint32_t FMC_Initialized = 0;
1131 
HAL_FMC_MspInit(void)1132 static void HAL_FMC_MspInit(void){
1133   /* USER CODE BEGIN FMC_MspInit 0 */
1134 
1135   /* USER CODE END FMC_MspInit 0 */
1136   GPIO_InitTypeDef GPIO_InitStruct ={0};
1137   if (FMC_Initialized) {
1138     return;
1139   }
1140   FMC_Initialized = 1;
1141   /* Peripheral clock enable */
1142   __HAL_RCC_FMC_CLK_ENABLE();
1143 
1144   /** FMC GPIO Configuration
1145   PF0   ------> FMC_A0
1146   PF1   ------> FMC_A1
1147   PF2   ------> FMC_A2
1148   PF3   ------> FMC_A3
1149   PF4   ------> FMC_A4
1150   PF5   ------> FMC_A5
1151   PC0   ------> FMC_SDNWE
1152   PC2   ------> FMC_SDNE0
1153   PC3   ------> FMC_SDCKE0
1154   PF11   ------> FMC_SDNRAS
1155   PF12   ------> FMC_A6
1156   PF13   ------> FMC_A7
1157   PF14   ------> FMC_A8
1158   PF15   ------> FMC_A9
1159   PG0   ------> FMC_A10
1160   PG1   ------> FMC_A11
1161   PE7   ------> FMC_D4
1162   PE8   ------> FMC_D5
1163   PE9   ------> FMC_D6
1164   PE10   ------> FMC_D7
1165   PE11   ------> FMC_D8
1166   PE12   ------> FMC_D9
1167   PE13   ------> FMC_D10
1168   PE14   ------> FMC_D11
1169   PE15   ------> FMC_D12
1170   PD8   ------> FMC_D13
1171   PD9   ------> FMC_D14
1172   PD10   ------> FMC_D15
1173   PD14   ------> FMC_D0
1174   PD15   ------> FMC_D1
1175   PG2   ------> FMC_A12
1176   PG4   ------> FMC_BA0
1177   PG5   ------> FMC_BA1
1178   PG8   ------> FMC_SDCLK
1179   PD0   ------> FMC_D2
1180   PD1   ------> FMC_D3
1181   PG15   ------> FMC_SDNCAS
1182   */
1183   GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3
1184                           |GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_11|GPIO_PIN_12
1185                           |GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15;
1186   GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
1187   GPIO_InitStruct.Pull = GPIO_NOPULL;
1188   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
1189   GPIO_InitStruct.Alternate = GPIO_AF12_FMC;
1190   HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
1191 
1192   GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_2|GPIO_PIN_3;
1193   GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
1194   GPIO_InitStruct.Pull = GPIO_NOPULL;
1195   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
1196   GPIO_InitStruct.Alternate = GPIO_AF12_FMC;
1197   HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
1198 
1199   GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_4
1200                           |GPIO_PIN_5|GPIO_PIN_8|GPIO_PIN_15;
1201   GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
1202   GPIO_InitStruct.Pull = GPIO_NOPULL;
1203   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
1204   GPIO_InitStruct.Alternate = GPIO_AF12_FMC;
1205   HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
1206 
1207   GPIO_InitStruct.Pin = GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10
1208                           |GPIO_PIN_11|GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14
1209                           |GPIO_PIN_15;
1210   GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
1211   GPIO_InitStruct.Pull = GPIO_NOPULL;
1212   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
1213   GPIO_InitStruct.Alternate = GPIO_AF12_FMC;
1214   HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
1215 
1216   GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_14
1217                           |GPIO_PIN_15|GPIO_PIN_0|GPIO_PIN_1;
1218   GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
1219   GPIO_InitStruct.Pull = GPIO_NOPULL;
1220   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
1221   GPIO_InitStruct.Alternate = GPIO_AF12_FMC;
1222   HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
1223 
1224   /* USER CODE BEGIN FMC_MspInit 1 */
1225 
1226   /* USER CODE END FMC_MspInit 1 */
1227 }
1228 
HAL_SDRAM_MspInit(SDRAM_HandleTypeDef * hsdram)1229 void HAL_SDRAM_MspInit(SDRAM_HandleTypeDef* hsdram){
1230   /* USER CODE BEGIN SDRAM_MspInit 0 */
1231 
1232   /* USER CODE END SDRAM_MspInit 0 */
1233   HAL_FMC_MspInit();
1234   /* USER CODE BEGIN SDRAM_MspInit 1 */
1235 
1236   /* USER CODE END SDRAM_MspInit 1 */
1237 }
1238 
1239 static uint32_t FMC_DeInitialized = 0;
1240 
HAL_FMC_MspDeInit(void)1241 static void HAL_FMC_MspDeInit(void){
1242   /* USER CODE BEGIN FMC_MspDeInit 0 */
1243 
1244   /* USER CODE END FMC_MspDeInit 0 */
1245   if (FMC_DeInitialized) {
1246     return;
1247   }
1248   FMC_DeInitialized = 1;
1249   /* Peripheral clock enable */
1250   __HAL_RCC_FMC_CLK_DISABLE();
1251 
1252   /** FMC GPIO Configuration
1253   PF0   ------> FMC_A0
1254   PF1   ------> FMC_A1
1255   PF2   ------> FMC_A2
1256   PF3   ------> FMC_A3
1257   PF4   ------> FMC_A4
1258   PF5   ------> FMC_A5
1259   PC0   ------> FMC_SDNWE
1260   PC2   ------> FMC_SDNE0
1261   PC3   ------> FMC_SDCKE0
1262   PF11   ------> FMC_SDNRAS
1263   PF12   ------> FMC_A6
1264   PF13   ------> FMC_A7
1265   PF14   ------> FMC_A8
1266   PF15   ------> FMC_A9
1267   PG0   ------> FMC_A10
1268   PG1   ------> FMC_A11
1269   PE7   ------> FMC_D4
1270   PE8   ------> FMC_D5
1271   PE9   ------> FMC_D6
1272   PE10   ------> FMC_D7
1273   PE11   ------> FMC_D8
1274   PE12   ------> FMC_D9
1275   PE13   ------> FMC_D10
1276   PE14   ------> FMC_D11
1277   PE15   ------> FMC_D12
1278   PD8   ------> FMC_D13
1279   PD9   ------> FMC_D14
1280   PD10   ------> FMC_D15
1281   PD14   ------> FMC_D0
1282   PD15   ------> FMC_D1
1283   PG2   ------> FMC_A12
1284   PG4   ------> FMC_BA0
1285   PG5   ------> FMC_BA1
1286   PG8   ------> FMC_SDCLK
1287   PD0   ------> FMC_D2
1288   PD1   ------> FMC_D3
1289   PG15   ------> FMC_SDNCAS
1290   */
1291   HAL_GPIO_DeInit(GPIOF, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3
1292                           |GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_11|GPIO_PIN_12
1293                           |GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15);
1294 
1295   HAL_GPIO_DeInit(GPIOC, GPIO_PIN_0|GPIO_PIN_2|GPIO_PIN_3);
1296 
1297   HAL_GPIO_DeInit(GPIOG, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_4
1298                           |GPIO_PIN_5|GPIO_PIN_8|GPIO_PIN_15);
1299 
1300   HAL_GPIO_DeInit(GPIOE, GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10
1301                           |GPIO_PIN_11|GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14
1302                           |GPIO_PIN_15);
1303 
1304   HAL_GPIO_DeInit(GPIOD, GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_14
1305                           |GPIO_PIN_15|GPIO_PIN_0|GPIO_PIN_1);
1306 
1307   /* USER CODE BEGIN FMC_MspDeInit 1 */
1308 
1309   /* USER CODE END FMC_MspDeInit 1 */
1310 }
1311 
HAL_SDRAM_MspDeInit(SDRAM_HandleTypeDef * hsdram)1312 void HAL_SDRAM_MspDeInit(SDRAM_HandleTypeDef* hsdram){
1313   /* USER CODE BEGIN SDRAM_MspDeInit 0 */
1314 
1315   /* USER CODE END SDRAM_MspDeInit 0 */
1316   HAL_FMC_MspDeInit();
1317   /* USER CODE BEGIN SDRAM_MspDeInit 1 */
1318 
1319   /* USER CODE END SDRAM_MspDeInit 1 */
1320 }
1321 
1322 /* USER CODE BEGIN 1 */
1323 
1324 /* USER CODE END 1 */
1325 
1326 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
1327