1 /* USER CODE BEGIN Header */
2 /**
3   ******************************************************************************
4   * File Name          : stm32f4xx_hal_msp.c
5   * Description        : This file provides code for the MSP Initialization
6   *                      and de-Initialization codes.
7   ******************************************************************************
8   ** 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_SYSCFG_CLK_ENABLE();
93   __HAL_RCC_PWR_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 
111   GPIO_InitTypeDef GPIO_InitStruct = {0};
112   if(hadc->Instance==ADC1)
113   {
114   /* USER CODE BEGIN ADC1_MspInit 0 */
115 
116   /* USER CODE END ADC1_MspInit 0 */
117     /* Peripheral clock enable */
118     __HAL_RCC_ADC1_CLK_ENABLE();
119 
120     __HAL_RCC_GPIOC_CLK_ENABLE();
121     /**ADC1 GPIO Configuration
122     PC3     ------> ADC1_IN13
123     */
124     GPIO_InitStruct.Pin = GPIO_PIN_3;
125     GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
126     GPIO_InitStruct.Pull = GPIO_NOPULL;
127     HAL_GPIO_Init(GPIOC, &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 */
142 
HAL_ADC_MspDeInit(ADC_HandleTypeDef * hadc)143 void HAL_ADC_MspDeInit(ADC_HandleTypeDef* hadc)
144 {
145 
146   if(hadc->Instance==ADC1)
147   {
148   /* USER CODE BEGIN ADC1_MspDeInit 0 */
149 
150   /* USER CODE END ADC1_MspDeInit 0 */
151     /* Peripheral clock disable */
152     __HAL_RCC_ADC1_CLK_DISABLE();
153 
154     /**ADC1 GPIO Configuration
155     PC3     ------> ADC1_IN13
156     */
157     HAL_GPIO_DeInit(GPIOC, GPIO_PIN_3);
158 
159   /* USER CODE BEGIN ADC1_MspDeInit 1 */
160 
161   /* USER CODE END ADC1_MspDeInit 1 */
162   }
163 
164 }
165 
166 /**
167 * @brief DMA2D MSP Initialization
168 * This function configures the hardware resources used in this example
169 * @param hdma2d: DMA2D handle pointer
170 * @retval None
171 */
HAL_DMA2D_MspInit(DMA2D_HandleTypeDef * hdma2d)172 void HAL_DMA2D_MspInit(DMA2D_HandleTypeDef* hdma2d)
173 {
174 
175   if(hdma2d->Instance==DMA2D)
176   {
177   /* USER CODE BEGIN DMA2D_MspInit 0 */
178 
179   /* USER CODE END DMA2D_MspInit 0 */
180     /* Peripheral clock enable */
181     __HAL_RCC_DMA2D_CLK_ENABLE();
182   /* USER CODE BEGIN DMA2D_MspInit 1 */
183 
184   /* USER CODE END DMA2D_MspInit 1 */
185   }
186 
187 }
188 
189 /**
190 * @brief DMA2D MSP De-Initialization
191 * This function freeze the hardware resources used in this example
192 * @param hdma2d: DMA2D handle pointer
193 * @retval None
194 */
195 
HAL_DMA2D_MspDeInit(DMA2D_HandleTypeDef * hdma2d)196 void HAL_DMA2D_MspDeInit(DMA2D_HandleTypeDef* hdma2d)
197 {
198 
199   if(hdma2d->Instance==DMA2D)
200   {
201   /* USER CODE BEGIN DMA2D_MspDeInit 0 */
202 
203   /* USER CODE END DMA2D_MspDeInit 0 */
204     /* Peripheral clock disable */
205     __HAL_RCC_DMA2D_CLK_DISABLE();
206   /* USER CODE BEGIN DMA2D_MspDeInit 1 */
207 
208   /* USER CODE END DMA2D_MspDeInit 1 */
209   }
210 
211 }
212 
213 /**
214 * @brief ETH MSP Initialization
215 * This function configures the hardware resources used in this example
216 * @param heth: ETH handle pointer
217 * @retval None
218 */
HAL_ETH_MspInit(ETH_HandleTypeDef * heth)219 void HAL_ETH_MspInit(ETH_HandleTypeDef* heth)
220 {
221 
222   GPIO_InitTypeDef GPIO_InitStruct = {0};
223   if(heth->Instance==ETH)
224   {
225   /* USER CODE BEGIN ETH_MspInit 0 */
226 
227   /* USER CODE END ETH_MspInit 0 */
228     /* Peripheral clock enable */
229     __HAL_RCC_ETH_CLK_ENABLE();
230 
231     __HAL_RCC_GPIOC_CLK_ENABLE();
232     __HAL_RCC_GPIOA_CLK_ENABLE();
233     __HAL_RCC_GPIOB_CLK_ENABLE();
234     __HAL_RCC_GPIOG_CLK_ENABLE();
235     /**ETH GPIO Configuration
236     PC1     ------> ETH_MDC
237     PA1     ------> ETH_REF_CLK
238     PA2     ------> ETH_MDIO
239     PA7     ------> ETH_CRS_DV
240     PC4     ------> ETH_RXD0
241     PC5     ------> ETH_RXD1
242     PB11     ------> ETH_TX_EN
243     PG13     ------> ETH_TXD0
244     PG14     ------> ETH_TXD1
245     */
246     GPIO_InitStruct.Pin = GPIO_PIN_1|GPIO_PIN_4|GPIO_PIN_5;
247     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
248     GPIO_InitStruct.Pull = GPIO_NOPULL;
249     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
250     GPIO_InitStruct.Alternate = GPIO_AF11_ETH;
251     HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
252 
253     GPIO_InitStruct.Pin = GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_7;
254     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
255     GPIO_InitStruct.Pull = GPIO_NOPULL;
256     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
257     GPIO_InitStruct.Alternate = GPIO_AF11_ETH;
258     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
259 
260     GPIO_InitStruct.Pin = GPIO_PIN_11;
261     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
262     GPIO_InitStruct.Pull = GPIO_NOPULL;
263     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
264     GPIO_InitStruct.Alternate = GPIO_AF11_ETH;
265     HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
266 
267     GPIO_InitStruct.Pin = GPIO_PIN_13|GPIO_PIN_14;
268     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
269     GPIO_InitStruct.Pull = GPIO_NOPULL;
270     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
271     GPIO_InitStruct.Alternate = GPIO_AF11_ETH;
272     HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
273 
274   /* USER CODE BEGIN ETH_MspInit 1 */
275 
276   /* USER CODE END ETH_MspInit 1 */
277   }
278 
279 }
280 
281 /**
282 * @brief ETH MSP De-Initialization
283 * This function freeze the hardware resources used in this example
284 * @param heth: ETH handle pointer
285 * @retval None
286 */
287 
HAL_ETH_MspDeInit(ETH_HandleTypeDef * heth)288 void HAL_ETH_MspDeInit(ETH_HandleTypeDef* heth)
289 {
290 
291   if(heth->Instance==ETH)
292   {
293   /* USER CODE BEGIN ETH_MspDeInit 0 */
294 
295   /* USER CODE END ETH_MspDeInit 0 */
296     /* Peripheral clock disable */
297     __HAL_RCC_ETH_CLK_DISABLE();
298 
299     /**ETH GPIO Configuration
300     PC1     ------> ETH_MDC
301     PA1     ------> ETH_REF_CLK
302     PA2     ------> ETH_MDIO
303     PA7     ------> ETH_CRS_DV
304     PC4     ------> ETH_RXD0
305     PC5     ------> ETH_RXD1
306     PB11     ------> ETH_TX_EN
307     PG13     ------> ETH_TXD0
308     PG14     ------> ETH_TXD1
309     */
310     HAL_GPIO_DeInit(GPIOC, GPIO_PIN_1|GPIO_PIN_4|GPIO_PIN_5);
311 
312     HAL_GPIO_DeInit(GPIOA, GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_7);
313 
314     HAL_GPIO_DeInit(GPIOB, GPIO_PIN_11);
315 
316     HAL_GPIO_DeInit(GPIOG, GPIO_PIN_13|GPIO_PIN_14);
317 
318   /* USER CODE BEGIN ETH_MspDeInit 1 */
319 
320   /* USER CODE END ETH_MspDeInit 1 */
321   }
322 
323 }
324 
325 /**
326 * @brief LTDC MSP Initialization
327 * This function configures the hardware resources used in this example
328 * @param hltdc: LTDC handle pointer
329 * @retval None
330 */
HAL_LTDC_MspInit(LTDC_HandleTypeDef * hltdc)331 void HAL_LTDC_MspInit(LTDC_HandleTypeDef* hltdc)
332 {
333 
334   GPIO_InitTypeDef GPIO_InitStruct = {0};
335   if(hltdc->Instance==LTDC)
336   {
337   /* USER CODE BEGIN LTDC_MspInit 0 */
338 
339   /* USER CODE END LTDC_MspInit 0 */
340     /* Peripheral clock enable */
341     __HAL_RCC_LTDC_CLK_ENABLE();
342 
343     __HAL_RCC_GPIOE_CLK_ENABLE();
344     __HAL_RCC_GPIOI_CLK_ENABLE();
345     __HAL_RCC_GPIOF_CLK_ENABLE();
346     __HAL_RCC_GPIOH_CLK_ENABLE();
347     __HAL_RCC_GPIOA_CLK_ENABLE();
348     __HAL_RCC_GPIOB_CLK_ENABLE();
349     __HAL_RCC_GPIOG_CLK_ENABLE();
350     __HAL_RCC_GPIOC_CLK_ENABLE();
351     __HAL_RCC_GPIOD_CLK_ENABLE();
352     /**LTDC GPIO Configuration
353     PE4     ------> LTDC_B0
354     PE5     ------> LTDC_G0
355     PE6     ------> LTDC_G1
356     PI9     ------> LTDC_VSYNC
357     PI10     ------> LTDC_HSYNC
358     PF10     ------> LTDC_DE
359     PH2     ------> LTDC_R0
360     PH3     ------> LTDC_R1
361     PA3     ------> LTDC_B5
362     PB0     ------> LTDC_R3
363     PB1     ------> LTDC_R6
364     PH8     ------> LTDC_R2
365     PG6     ------> LTDC_R7
366     PG7     ------> LTDC_CLK
367     PC7     ------> LTDC_G6
368     PA11     ------> LTDC_R4
369     PA12     ------> LTDC_R5
370     PH13     ------> LTDC_G2
371     PH15     ------> LTDC_G4
372     PI0     ------> LTDC_G5
373     PI2     ------> LTDC_G7
374     PD6     ------> LTDC_B2
375     PG10     ------> LTDC_G3
376     PG11     ------> LTDC_B3
377     PG12     ------> LTDC_B1
378     PB8     ------> LTDC_B6
379     PB9     ------> LTDC_B7
380     PI4     ------> LTDC_B4
381     */
382     GPIO_InitStruct.Pin = GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6;
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_AF14_LTDC;
387     HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
388 
389     GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_0|GPIO_PIN_2
390                           |GPIO_PIN_4;
391     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
392     GPIO_InitStruct.Pull = GPIO_NOPULL;
393     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
394     GPIO_InitStruct.Alternate = GPIO_AF14_LTDC;
395     HAL_GPIO_Init(GPIOI, &GPIO_InitStruct);
396 
397     GPIO_InitStruct.Pin = GPIO_PIN_10;
398     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
399     GPIO_InitStruct.Pull = GPIO_NOPULL;
400     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
401     GPIO_InitStruct.Alternate = GPIO_AF14_LTDC;
402     HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
403 
404     GPIO_InitStruct.Pin = GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_8|GPIO_PIN_13
405                           |GPIO_PIN_15;
406     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
407     GPIO_InitStruct.Pull = GPIO_NOPULL;
408     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
409     GPIO_InitStruct.Alternate = GPIO_AF14_LTDC;
410     HAL_GPIO_Init(GPIOH, &GPIO_InitStruct);
411 
412     GPIO_InitStruct.Pin = GPIO_PIN_3|GPIO_PIN_11|GPIO_PIN_12;
413     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
414     GPIO_InitStruct.Pull = GPIO_NOPULL;
415     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
416     GPIO_InitStruct.Alternate = GPIO_AF14_LTDC;
417     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
418 
419     GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1;
420     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
421     GPIO_InitStruct.Pull = GPIO_NOPULL;
422     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
423     GPIO_InitStruct.Alternate = GPIO_AF9_LTDC;
424     HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
425 
426     GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_7|GPIO_PIN_11|GPIO_PIN_12;
427     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
428     GPIO_InitStruct.Pull = GPIO_NOPULL;
429     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
430     GPIO_InitStruct.Alternate = GPIO_AF14_LTDC;
431     HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
432 
433     GPIO_InitStruct.Pin = GPIO_PIN_7;
434     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
435     GPIO_InitStruct.Pull = GPIO_NOPULL;
436     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
437     GPIO_InitStruct.Alternate = GPIO_AF14_LTDC;
438     HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
439 
440     GPIO_InitStruct.Pin = GPIO_PIN_6;
441     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
442     GPIO_InitStruct.Pull = GPIO_NOPULL;
443     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
444     GPIO_InitStruct.Alternate = GPIO_AF14_LTDC;
445     HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
446 
447     GPIO_InitStruct.Pin = GPIO_PIN_10;
448     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
449     GPIO_InitStruct.Pull = GPIO_NOPULL;
450     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
451     GPIO_InitStruct.Alternate = GPIO_AF9_LTDC;
452     HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
453 
454     GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_9;
455     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
456     GPIO_InitStruct.Pull = GPIO_NOPULL;
457     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
458     GPIO_InitStruct.Alternate = GPIO_AF14_LTDC;
459     HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
460 
461   /* USER CODE BEGIN LTDC_MspInit 1 */
462 
463   /* USER CODE END LTDC_MspInit 1 */
464   }
465 
466 }
467 
468 /**
469 * @brief LTDC MSP De-Initialization
470 * This function freeze the hardware resources used in this example
471 * @param hltdc: LTDC handle pointer
472 * @retval None
473 */
474 
HAL_LTDC_MspDeInit(LTDC_HandleTypeDef * hltdc)475 void HAL_LTDC_MspDeInit(LTDC_HandleTypeDef* hltdc)
476 {
477 
478   if(hltdc->Instance==LTDC)
479   {
480   /* USER CODE BEGIN LTDC_MspDeInit 0 */
481 
482   /* USER CODE END LTDC_MspDeInit 0 */
483     /* Peripheral clock disable */
484     __HAL_RCC_LTDC_CLK_DISABLE();
485 
486     /**LTDC GPIO Configuration
487     PE4     ------> LTDC_B0
488     PE5     ------> LTDC_G0
489     PE6     ------> LTDC_G1
490     PI9     ------> LTDC_VSYNC
491     PI10     ------> LTDC_HSYNC
492     PF10     ------> LTDC_DE
493     PH2     ------> LTDC_R0
494     PH3     ------> LTDC_R1
495     PA3     ------> LTDC_B5
496     PB0     ------> LTDC_R3
497     PB1     ------> LTDC_R6
498     PH8     ------> LTDC_R2
499     PG6     ------> LTDC_R7
500     PG7     ------> LTDC_CLK
501     PC7     ------> LTDC_G6
502     PA11     ------> LTDC_R4
503     PA12     ------> LTDC_R5
504     PH13     ------> LTDC_G2
505     PH15     ------> LTDC_G4
506     PI0     ------> LTDC_G5
507     PI2     ------> LTDC_G7
508     PD6     ------> LTDC_B2
509     PG10     ------> LTDC_G3
510     PG11     ------> LTDC_B3
511     PG12     ------> LTDC_B1
512     PB8     ------> LTDC_B6
513     PB9     ------> LTDC_B7
514     PI4     ------> LTDC_B4
515     */
516     HAL_GPIO_DeInit(GPIOE, GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6);
517 
518     HAL_GPIO_DeInit(GPIOI, GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_0|GPIO_PIN_2
519                           |GPIO_PIN_4);
520 
521     HAL_GPIO_DeInit(GPIOF, GPIO_PIN_10);
522 
523     HAL_GPIO_DeInit(GPIOH, GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_8|GPIO_PIN_13
524                           |GPIO_PIN_15);
525 
526     HAL_GPIO_DeInit(GPIOA, GPIO_PIN_3|GPIO_PIN_11|GPIO_PIN_12);
527 
528     HAL_GPIO_DeInit(GPIOB, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_8|GPIO_PIN_9);
529 
530     HAL_GPIO_DeInit(GPIOG, GPIO_PIN_6|GPIO_PIN_7|GPIO_PIN_10|GPIO_PIN_11
531                           |GPIO_PIN_12);
532 
533     HAL_GPIO_DeInit(GPIOC, GPIO_PIN_7);
534 
535     HAL_GPIO_DeInit(GPIOD, GPIO_PIN_6);
536 
537   /* USER CODE BEGIN LTDC_MspDeInit 1 */
538 
539   /* USER CODE END LTDC_MspDeInit 1 */
540   }
541 
542 }
543 
544 /**
545 * @brief RTC MSP Initialization
546 * This function configures the hardware resources used in this example
547 * @param hrtc: RTC handle pointer
548 * @retval None
549 */
HAL_RTC_MspInit(RTC_HandleTypeDef * hrtc)550 void HAL_RTC_MspInit(RTC_HandleTypeDef* hrtc)
551 {
552 
553   if(hrtc->Instance==RTC)
554   {
555   /* USER CODE BEGIN RTC_MspInit 0 */
556 
557   /* USER CODE END RTC_MspInit 0 */
558     /* Peripheral clock enable */
559     __HAL_RCC_RTC_ENABLE();
560   /* USER CODE BEGIN RTC_MspInit 1 */
561 
562   /* USER CODE END RTC_MspInit 1 */
563   }
564 
565 }
566 
567 /**
568 * @brief RTC MSP De-Initialization
569 * This function freeze the hardware resources used in this example
570 * @param hrtc: RTC handle pointer
571 * @retval None
572 */
573 
HAL_RTC_MspDeInit(RTC_HandleTypeDef * hrtc)574 void HAL_RTC_MspDeInit(RTC_HandleTypeDef* hrtc)
575 {
576 
577   if(hrtc->Instance==RTC)
578   {
579   /* USER CODE BEGIN RTC_MspDeInit 0 */
580 
581   /* USER CODE END RTC_MspDeInit 0 */
582     /* Peripheral clock disable */
583     __HAL_RCC_RTC_DISABLE();
584   /* USER CODE BEGIN RTC_MspDeInit 1 */
585 
586   /* USER CODE END RTC_MspDeInit 1 */
587   }
588 
589 }
590 
591 /**
592 * @brief SD MSP Initialization
593 * This function configures the hardware resources used in this example
594 * @param hsd: SD handle pointer
595 * @retval None
596 */
HAL_SD_MspInit(SD_HandleTypeDef * hsd)597 void HAL_SD_MspInit(SD_HandleTypeDef* hsd)
598 {
599 
600   GPIO_InitTypeDef GPIO_InitStruct = {0};
601   if(hsd->Instance==SDIO)
602   {
603   /* USER CODE BEGIN SDIO_MspInit 0 */
604 
605   /* USER CODE END SDIO_MspInit 0 */
606     /* Peripheral clock enable */
607     __HAL_RCC_SDIO_CLK_ENABLE();
608 
609     __HAL_RCC_GPIOC_CLK_ENABLE();
610     __HAL_RCC_GPIOD_CLK_ENABLE();
611     /**SDIO GPIO Configuration
612     PC8     ------> SDIO_D0
613     PC9     ------> SDIO_D1
614     PC10     ------> SDIO_D2
615     PC11     ------> SDIO_D3
616     PC12     ------> SDIO_CK
617     PD2     ------> SDIO_CMD
618     */
619     GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11
620                           |GPIO_PIN_12;
621     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
622     GPIO_InitStruct.Pull = GPIO_NOPULL;
623     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
624     GPIO_InitStruct.Alternate = GPIO_AF12_SDIO;
625     HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
626 
627     GPIO_InitStruct.Pin = GPIO_PIN_2;
628     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
629     GPIO_InitStruct.Pull = GPIO_NOPULL;
630     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
631     GPIO_InitStruct.Alternate = GPIO_AF12_SDIO;
632     HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
633 
634   /* USER CODE BEGIN SDIO_MspInit 1 */
635 
636   /* USER CODE END SDIO_MspInit 1 */
637   }
638 
639 }
640 
641 /**
642 * @brief SD MSP De-Initialization
643 * This function freeze the hardware resources used in this example
644 * @param hsd: SD handle pointer
645 * @retval None
646 */
647 
HAL_SD_MspDeInit(SD_HandleTypeDef * hsd)648 void HAL_SD_MspDeInit(SD_HandleTypeDef* hsd)
649 {
650 
651   if(hsd->Instance==SDIO)
652   {
653   /* USER CODE BEGIN SDIO_MspDeInit 0 */
654 
655   /* USER CODE END SDIO_MspDeInit 0 */
656     /* Peripheral clock disable */
657     __HAL_RCC_SDIO_CLK_DISABLE();
658 
659     /**SDIO GPIO Configuration
660     PC8     ------> SDIO_D0
661     PC9     ------> SDIO_D1
662     PC10     ------> SDIO_D2
663     PC11     ------> SDIO_D3
664     PC12     ------> SDIO_CK
665     PD2     ------> SDIO_CMD
666     */
667     HAL_GPIO_DeInit(GPIOC, GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11
668                           |GPIO_PIN_12);
669 
670     HAL_GPIO_DeInit(GPIOD, GPIO_PIN_2);
671 
672   /* USER CODE BEGIN SDIO_MspDeInit 1 */
673 
674   /* USER CODE END SDIO_MspDeInit 1 */
675   }
676 
677 }
678 
679 /**
680 * @brief SPI MSP Initialization
681 * This function configures the hardware resources used in this example
682 * @param hspi: SPI handle pointer
683 * @retval None
684 */
HAL_SPI_MspInit(SPI_HandleTypeDef * hspi)685 void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi)
686 {
687 
688   GPIO_InitTypeDef GPIO_InitStruct = {0};
689   if(hspi->Instance==SPI5)
690   {
691   /* USER CODE BEGIN SPI5_MspInit 0 */
692 
693   /* USER CODE END SPI5_MspInit 0 */
694     /* Peripheral clock enable */
695     __HAL_RCC_SPI5_CLK_ENABLE();
696 
697     __HAL_RCC_GPIOF_CLK_ENABLE();
698     /**SPI5 GPIO Configuration
699     PF7     ------> SPI5_SCK
700     PF8     ------> SPI5_MISO
701     PF9     ------> SPI5_MOSI
702     */
703     GPIO_InitStruct.Pin = GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9;
704     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
705     GPIO_InitStruct.Pull = GPIO_NOPULL;
706     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
707     GPIO_InitStruct.Alternate = GPIO_AF5_SPI5;
708     HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
709 
710   /* USER CODE BEGIN SPI5_MspInit 1 */
711 
712   /* USER CODE END SPI5_MspInit 1 */
713   }
714 
715 }
716 
717 /**
718 * @brief SPI MSP De-Initialization
719 * This function freeze the hardware resources used in this example
720 * @param hspi: SPI handle pointer
721 * @retval None
722 */
723 
HAL_SPI_MspDeInit(SPI_HandleTypeDef * hspi)724 void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi)
725 {
726 
727   if(hspi->Instance==SPI5)
728   {
729   /* USER CODE BEGIN SPI5_MspDeInit 0 */
730 
731   /* USER CODE END SPI5_MspDeInit 0 */
732     /* Peripheral clock disable */
733     __HAL_RCC_SPI5_CLK_DISABLE();
734 
735     /**SPI5 GPIO Configuration
736     PF7     ------> SPI5_SCK
737     PF8     ------> SPI5_MISO
738     PF9     ------> SPI5_MOSI
739     */
740     HAL_GPIO_DeInit(GPIOF, GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9);
741 
742   /* USER CODE BEGIN SPI5_MspDeInit 1 */
743 
744   /* USER CODE END SPI5_MspDeInit 1 */
745   }
746 
747 }
748 
749 /**
750 * @brief TIM_Base MSP Initialization
751 * This function configures the hardware resources used in this example
752 * @param htim_base: TIM_Base handle pointer
753 * @retval None
754 */
HAL_TIM_Base_MspInit(TIM_HandleTypeDef * htim_base)755 void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
756 {
757 
758   if(htim_base->Instance==TIM5)
759   {
760   /* USER CODE BEGIN TIM5_MspInit 0 */
761 
762   /* USER CODE END TIM5_MspInit 0 */
763     /* Peripheral clock enable */
764     __HAL_RCC_TIM5_CLK_ENABLE();
765   /* USER CODE BEGIN TIM5_MspInit 1 */
766 
767   /* USER CODE END TIM5_MspInit 1 */
768   }
769   else if(htim_base->Instance==TIM11)
770   {
771   /* USER CODE BEGIN TIM11_MspInit 0 */
772 
773   /* USER CODE END TIM11_MspInit 0 */
774     /* Peripheral clock enable */
775     __HAL_RCC_TIM11_CLK_ENABLE();
776   /* USER CODE BEGIN TIM11_MspInit 1 */
777 
778   /* USER CODE END TIM11_MspInit 1 */
779   }
780   else if(htim_base->Instance==TIM13)
781   {
782   /* USER CODE BEGIN TIM13_MspInit 0 */
783 
784   /* USER CODE END TIM13_MspInit 0 */
785     /* Peripheral clock enable */
786     __HAL_RCC_TIM13_CLK_ENABLE();
787   /* USER CODE BEGIN TIM13_MspInit 1 */
788 
789   /* USER CODE END TIM13_MspInit 1 */
790   }
791   else if(htim_base->Instance==TIM14)
792   {
793   /* USER CODE BEGIN TIM14_MspInit 0 */
794 
795   /* USER CODE END TIM14_MspInit 0 */
796     /* Peripheral clock enable */
797     __HAL_RCC_TIM14_CLK_ENABLE();
798   /* USER CODE BEGIN TIM14_MspInit 1 */
799 
800   /* USER CODE END TIM14_MspInit 1 */
801   }
802 
803 }
804 
HAL_TIM_MspPostInit(TIM_HandleTypeDef * htim)805 void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim)
806 {
807 
808   GPIO_InitTypeDef GPIO_InitStruct = {0};
809   if(htim->Instance==TIM5)
810   {
811   /* USER CODE BEGIN TIM5_MspPostInit 0 */
812 
813   /* USER CODE END TIM5_MspPostInit 0 */
814 
815     __HAL_RCC_GPIOH_CLK_ENABLE();
816     /**TIM5 GPIO Configuration
817     PH10     ------> TIM5_CH1
818     PH11     ------> TIM5_CH2
819     PH12     ------> TIM5_CH3
820     */
821     GPIO_InitStruct.Pin = GPIO_PIN_10|GPIO_PIN_11|GPIO_PIN_12;
822     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
823     GPIO_InitStruct.Pull = GPIO_NOPULL;
824     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
825     GPIO_InitStruct.Alternate = GPIO_AF2_TIM5;
826     HAL_GPIO_Init(GPIOH, &GPIO_InitStruct);
827 
828   /* USER CODE BEGIN TIM5_MspPostInit 1 */
829 
830   /* USER CODE END TIM5_MspPostInit 1 */
831   }
832 
833 }
834 /**
835 * @brief TIM_Base MSP De-Initialization
836 * This function freeze the hardware resources used in this example
837 * @param htim_base: TIM_Base handle pointer
838 * @retval None
839 */
840 
HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef * htim_base)841 void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base)
842 {
843 
844   if(htim_base->Instance==TIM5)
845   {
846   /* USER CODE BEGIN TIM5_MspDeInit 0 */
847 
848   /* USER CODE END TIM5_MspDeInit 0 */
849     /* Peripheral clock disable */
850     __HAL_RCC_TIM5_CLK_DISABLE();
851   /* USER CODE BEGIN TIM5_MspDeInit 1 */
852 
853   /* USER CODE END TIM5_MspDeInit 1 */
854   }
855   else if(htim_base->Instance==TIM11)
856   {
857   /* USER CODE BEGIN TIM11_MspDeInit 0 */
858 
859   /* USER CODE END TIM11_MspDeInit 0 */
860     /* Peripheral clock disable */
861     __HAL_RCC_TIM11_CLK_DISABLE();
862   /* USER CODE BEGIN TIM11_MspDeInit 1 */
863 
864   /* USER CODE END TIM11_MspDeInit 1 */
865   }
866   else if(htim_base->Instance==TIM13)
867   {
868   /* USER CODE BEGIN TIM13_MspDeInit 0 */
869 
870   /* USER CODE END TIM13_MspDeInit 0 */
871     /* Peripheral clock disable */
872     __HAL_RCC_TIM13_CLK_DISABLE();
873   /* USER CODE BEGIN TIM13_MspDeInit 1 */
874 
875   /* USER CODE END TIM13_MspDeInit 1 */
876   }
877   else if(htim_base->Instance==TIM14)
878   {
879   /* USER CODE BEGIN TIM14_MspDeInit 0 */
880 
881   /* USER CODE END TIM14_MspDeInit 0 */
882     /* Peripheral clock disable */
883     __HAL_RCC_TIM14_CLK_DISABLE();
884   /* USER CODE BEGIN TIM14_MspDeInit 1 */
885 
886   /* USER CODE END TIM14_MspDeInit 1 */
887   }
888 
889 }
890 
891 /**
892 * @brief UART MSP Initialization
893 * This function configures the hardware resources used in this example
894 * @param huart: UART handle pointer
895 * @retval None
896 */
HAL_UART_MspInit(UART_HandleTypeDef * huart)897 void HAL_UART_MspInit(UART_HandleTypeDef* huart)
898 {
899 
900   GPIO_InitTypeDef GPIO_InitStruct = {0};
901   if(huart->Instance==USART1)
902   {
903   /* USER CODE BEGIN USART1_MspInit 0 */
904 
905   /* USER CODE END USART1_MspInit 0 */
906     /* Peripheral clock enable */
907     __HAL_RCC_USART1_CLK_ENABLE();
908 
909     __HAL_RCC_GPIOA_CLK_ENABLE();
910     /**USART1 GPIO Configuration
911     PA9     ------> USART1_TX
912     PA10     ------> USART1_RX
913     */
914     GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_10;
915     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
916     GPIO_InitStruct.Pull = GPIO_PULLUP;
917     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
918     GPIO_InitStruct.Alternate = GPIO_AF7_USART1;
919     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
920 
921     /* USART1 interrupt Init */
922     HAL_NVIC_SetPriority(USART1_IRQn, 0, 0);
923     HAL_NVIC_EnableIRQ(USART1_IRQn);
924   /* USER CODE BEGIN USART1_MspInit 1 */
925 
926   /* USER CODE END USART1_MspInit 1 */
927   }
928 
929 }
930 
931 /**
932 * @brief UART MSP De-Initialization
933 * This function freeze the hardware resources used in this example
934 * @param huart: UART handle pointer
935 * @retval None
936 */
937 
HAL_UART_MspDeInit(UART_HandleTypeDef * huart)938 void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
939 {
940 
941   if(huart->Instance==USART1)
942   {
943   /* USER CODE BEGIN USART1_MspDeInit 0 */
944 
945   /* USER CODE END USART1_MspDeInit 0 */
946     /* Peripheral clock disable */
947     __HAL_RCC_USART1_CLK_DISABLE();
948 
949     /**USART1 GPIO Configuration
950     PA9     ------> USART1_TX
951     PA10     ------> USART1_RX
952     */
953     HAL_GPIO_DeInit(GPIOA, GPIO_PIN_9|GPIO_PIN_10);
954 
955     /* USART1 interrupt DeInit */
956     HAL_NVIC_DisableIRQ(USART1_IRQn);
957   /* USER CODE BEGIN USART1_MspDeInit 1 */
958 
959   /* USER CODE END USART1_MspDeInit 1 */
960   }
961 
962 }
963 
964 static uint32_t FMC_Initialized = 0;
965 
HAL_FMC_MspInit(void)966 static void HAL_FMC_MspInit(void){
967   /* USER CODE BEGIN FMC_MspInit 0 */
968 
969   /* USER CODE END FMC_MspInit 0 */
970   GPIO_InitTypeDef GPIO_InitStruct;
971   if (FMC_Initialized) {
972     return;
973   }
974   FMC_Initialized = 1;
975   /* Peripheral clock enable */
976   __HAL_RCC_FMC_CLK_ENABLE();
977 
978   /** FMC GPIO Configuration
979   PF0   ------> FMC_A0
980   PF1   ------> FMC_A1
981   PF2   ------> FMC_A2
982   PF3   ------> FMC_A3
983   PF4   ------> FMC_A4
984   PF5   ------> FMC_A5
985   PC0   ------> FMC_SDNWE
986   PF11   ------> FMC_SDNRAS
987   PF12   ------> FMC_A6
988   PF13   ------> FMC_A7
989   PF14   ------> FMC_A8
990   PF15   ------> FMC_A9
991   PG0   ------> FMC_A10
992   PG1   ------> FMC_A11
993   PE7   ------> FMC_D4
994   PE8   ------> FMC_D5
995   PE9   ------> FMC_D6
996   PE10   ------> FMC_D7
997   PE11   ------> FMC_D8
998   PE12   ------> FMC_D9
999   PE13   ------> FMC_D10
1000   PE14   ------> FMC_D11
1001   PE15   ------> FMC_D12
1002   PH6   ------> FMC_SDNE1
1003   PH7   ------> FMC_SDCKE1
1004   PD8   ------> FMC_D13
1005   PD9   ------> FMC_D14
1006   PD10   ------> FMC_D15
1007   PD14   ------> FMC_D0
1008   PD15   ------> FMC_D1
1009   PG4   ------> FMC_BA0
1010   PG5   ------> FMC_BA1
1011   PG8   ------> FMC_SDCLK
1012   PD0   ------> FMC_D2
1013   PD1   ------> FMC_D3
1014   PG15   ------> FMC_SDNCAS
1015   PE0   ------> FMC_NBL0
1016   PE1   ------> FMC_NBL1
1017   */
1018   GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3
1019                           |GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_11|GPIO_PIN_12
1020                           |GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15;
1021   GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
1022   GPIO_InitStruct.Pull = GPIO_NOPULL;
1023   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
1024   GPIO_InitStruct.Alternate = GPIO_AF12_FMC;
1025   HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
1026 
1027   GPIO_InitStruct.Pin = GPIO_PIN_0;
1028   GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
1029   GPIO_InitStruct.Pull = GPIO_NOPULL;
1030   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
1031   GPIO_InitStruct.Alternate = GPIO_AF12_FMC;
1032   HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
1033 
1034   GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_4|GPIO_PIN_5
1035                           |GPIO_PIN_8|GPIO_PIN_15;
1036   GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
1037   GPIO_InitStruct.Pull = GPIO_NOPULL;
1038   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
1039   GPIO_InitStruct.Alternate = GPIO_AF12_FMC;
1040   HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
1041 
1042   GPIO_InitStruct.Pin = GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10
1043                           |GPIO_PIN_11|GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14
1044                           |GPIO_PIN_15|GPIO_PIN_0|GPIO_PIN_1;
1045   GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
1046   GPIO_InitStruct.Pull = GPIO_NOPULL;
1047   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
1048   GPIO_InitStruct.Alternate = GPIO_AF12_FMC;
1049   HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
1050 
1051   GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_7;
1052   GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
1053   GPIO_InitStruct.Pull = GPIO_NOPULL;
1054   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
1055   GPIO_InitStruct.Alternate = GPIO_AF12_FMC;
1056   HAL_GPIO_Init(GPIOH, &GPIO_InitStruct);
1057 
1058   GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_14
1059                           |GPIO_PIN_15|GPIO_PIN_0|GPIO_PIN_1;
1060   GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
1061   GPIO_InitStruct.Pull = GPIO_NOPULL;
1062   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
1063   GPIO_InitStruct.Alternate = GPIO_AF12_FMC;
1064   HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
1065 
1066   /* USER CODE BEGIN FMC_MspInit 1 */
1067 
1068   /* USER CODE END FMC_MspInit 1 */
1069 }
1070 
HAL_SDRAM_MspInit(SDRAM_HandleTypeDef * hsdram)1071 void HAL_SDRAM_MspInit(SDRAM_HandleTypeDef* hsdram){
1072   /* USER CODE BEGIN SDRAM_MspInit 0 */
1073 
1074   /* USER CODE END SDRAM_MspInit 0 */
1075   HAL_FMC_MspInit();
1076   /* USER CODE BEGIN SDRAM_MspInit 1 */
1077 
1078   /* USER CODE END SDRAM_MspInit 1 */
1079 }
1080 
1081 static uint32_t FMC_DeInitialized = 0;
1082 
HAL_FMC_MspDeInit(void)1083 static void HAL_FMC_MspDeInit(void){
1084   /* USER CODE BEGIN FMC_MspDeInit 0 */
1085 
1086   /* USER CODE END FMC_MspDeInit 0 */
1087   if (FMC_DeInitialized) {
1088     return;
1089   }
1090   FMC_DeInitialized = 1;
1091   /* Peripheral clock enable */
1092   __HAL_RCC_FMC_CLK_DISABLE();
1093 
1094   /** FMC GPIO Configuration
1095   PF0   ------> FMC_A0
1096   PF1   ------> FMC_A1
1097   PF2   ------> FMC_A2
1098   PF3   ------> FMC_A3
1099   PF4   ------> FMC_A4
1100   PF5   ------> FMC_A5
1101   PC0   ------> FMC_SDNWE
1102   PF11   ------> FMC_SDNRAS
1103   PF12   ------> FMC_A6
1104   PF13   ------> FMC_A7
1105   PF14   ------> FMC_A8
1106   PF15   ------> FMC_A9
1107   PG0   ------> FMC_A10
1108   PG1   ------> FMC_A11
1109   PE7   ------> FMC_D4
1110   PE8   ------> FMC_D5
1111   PE9   ------> FMC_D6
1112   PE10   ------> FMC_D7
1113   PE11   ------> FMC_D8
1114   PE12   ------> FMC_D9
1115   PE13   ------> FMC_D10
1116   PE14   ------> FMC_D11
1117   PE15   ------> FMC_D12
1118   PH6   ------> FMC_SDNE1
1119   PH7   ------> FMC_SDCKE1
1120   PD8   ------> FMC_D13
1121   PD9   ------> FMC_D14
1122   PD10   ------> FMC_D15
1123   PD14   ------> FMC_D0
1124   PD15   ------> FMC_D1
1125   PG4   ------> FMC_BA0
1126   PG5   ------> FMC_BA1
1127   PG8   ------> FMC_SDCLK
1128   PD0   ------> FMC_D2
1129   PD1   ------> FMC_D3
1130   PG15   ------> FMC_SDNCAS
1131   PE0   ------> FMC_NBL0
1132   PE1   ------> FMC_NBL1
1133   */
1134   HAL_GPIO_DeInit(GPIOF, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3
1135                           |GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_11|GPIO_PIN_12
1136                           |GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15);
1137 
1138   HAL_GPIO_DeInit(GPIOC, GPIO_PIN_0);
1139 
1140   HAL_GPIO_DeInit(GPIOG, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_4|GPIO_PIN_5
1141                           |GPIO_PIN_8|GPIO_PIN_15);
1142 
1143   HAL_GPIO_DeInit(GPIOE, GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10
1144                           |GPIO_PIN_11|GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14
1145                           |GPIO_PIN_15|GPIO_PIN_0|GPIO_PIN_1);
1146 
1147   HAL_GPIO_DeInit(GPIOH, GPIO_PIN_6|GPIO_PIN_7);
1148 
1149   HAL_GPIO_DeInit(GPIOD, GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_14
1150                           |GPIO_PIN_15|GPIO_PIN_0|GPIO_PIN_1);
1151 
1152   /* USER CODE BEGIN FMC_MspDeInit 1 */
1153 
1154   /* USER CODE END FMC_MspDeInit 1 */
1155 }
1156 
HAL_SDRAM_MspDeInit(SDRAM_HandleTypeDef * hsdram)1157 void HAL_SDRAM_MspDeInit(SDRAM_HandleTypeDef* hsdram){
1158   /* USER CODE BEGIN SDRAM_MspDeInit 0 */
1159 
1160   /* USER CODE END SDRAM_MspDeInit 0 */
1161   HAL_FMC_MspDeInit();
1162   /* USER CODE BEGIN SDRAM_MspDeInit 1 */
1163 
1164   /* USER CODE END SDRAM_MspDeInit 1 */
1165 }
1166 
1167 /* USER CODE BEGIN 1 */
1168 
1169 /* USER CODE END 1 */
1170 
1171 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
1172