1 /* USER CODE BEGIN Header */
2 /**
3   ******************************************************************************
4   * File Name          : stm32h7xx_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) 2019 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   * Initializes the Global MSP.
83   */
HAL_MspInit(void)84 void HAL_MspInit(void)
85 {
86   /* USER CODE BEGIN MspInit 0 */
87 
88   /* USER CODE END MspInit 0 */
89 
90   __HAL_RCC_SYSCFG_CLK_ENABLE();
91 
92   /* System interrupt init*/
93 
94   /* USER CODE BEGIN MspInit 1 */
95 
96   /* USER CODE END MspInit 1 */
97 }
98 
99 /**
100 * @brief ADC MSP Initialization
101 * This function configures the hardware resources used in this example
102 * @param hadc: ADC handle pointer
103 * @retval None
104 */
HAL_ADC_MspInit(ADC_HandleTypeDef * hadc)105 void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc)
106 {
107   GPIO_InitTypeDef GPIO_InitStruct = {0};
108   if(hadc->Instance==ADC1)
109   {
110   /* USER CODE BEGIN ADC1_MspInit 0 */
111 
112   /* USER CODE END ADC1_MspInit 0 */
113     /* Peripheral clock enable */
114     __HAL_RCC_ADC12_CLK_ENABLE();
115 
116     __HAL_RCC_GPIOA_CLK_ENABLE();
117     /**ADC1 GPIO Configuration
118     PA5     ------> ADC1_INP19
119     */
120     GPIO_InitStruct.Pin = GPIO_PIN_5;
121     GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
122     GPIO_InitStruct.Pull = GPIO_NOPULL;
123     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
124 
125   /* USER CODE BEGIN ADC1_MspInit 1 */
126 
127   /* USER CODE END ADC1_MspInit 1 */
128   }
129 
130 }
131 
132 /**
133 * @brief ADC MSP De-Initialization
134 * This function freeze the hardware resources used in this example
135 * @param hadc: ADC handle pointer
136 * @retval None
137 */
HAL_ADC_MspDeInit(ADC_HandleTypeDef * hadc)138 void HAL_ADC_MspDeInit(ADC_HandleTypeDef* hadc)
139 {
140   if(hadc->Instance==ADC1)
141   {
142   /* USER CODE BEGIN ADC1_MspDeInit 0 */
143 
144   /* USER CODE END ADC1_MspDeInit 0 */
145     /* Peripheral clock disable */
146     __HAL_RCC_ADC12_CLK_DISABLE();
147 
148     /**ADC1 GPIO Configuration
149     PA5     ------> ADC1_INP19
150     */
151     HAL_GPIO_DeInit(GPIOA, GPIO_PIN_5);
152 
153   /* USER CODE BEGIN ADC1_MspDeInit 1 */
154 
155   /* USER CODE END ADC1_MspDeInit 1 */
156   }
157 
158 }
159 
160 /**
161 * @brief DAC MSP Initialization
162 * This function configures the hardware resources used in this example
163 * @param hdac: DAC handle pointer
164 * @retval None
165 */
HAL_DAC_MspInit(DAC_HandleTypeDef * hdac)166 void HAL_DAC_MspInit(DAC_HandleTypeDef* hdac)
167 {
168   GPIO_InitTypeDef GPIO_InitStruct = {0};
169   if(hdac->Instance==DAC1)
170   {
171   /* USER CODE BEGIN DAC1_MspInit 0 */
172 
173   /* USER CODE END DAC1_MspInit 0 */
174     /* Peripheral clock enable */
175     __HAL_RCC_DAC12_CLK_ENABLE();
176 
177     __HAL_RCC_GPIOA_CLK_ENABLE();
178     /**DAC1 GPIO Configuration
179     PA4     ------> DAC1_OUT1
180     */
181     GPIO_InitStruct.Pin = GPIO_PIN_4;
182     GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
183     GPIO_InitStruct.Pull = GPIO_NOPULL;
184     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
185 
186   /* USER CODE BEGIN DAC1_MspInit 1 */
187 
188   /* USER CODE END DAC1_MspInit 1 */
189   }
190 
191 }
192 
193 /**
194 * @brief DAC MSP De-Initialization
195 * This function freeze the hardware resources used in this example
196 * @param hdac: DAC handle pointer
197 * @retval None
198 */
HAL_DAC_MspDeInit(DAC_HandleTypeDef * hdac)199 void HAL_DAC_MspDeInit(DAC_HandleTypeDef* hdac)
200 {
201   if(hdac->Instance==DAC1)
202   {
203   /* USER CODE BEGIN DAC1_MspDeInit 0 */
204 
205   /* USER CODE END DAC1_MspDeInit 0 */
206     /* Peripheral clock disable */
207     __HAL_RCC_DAC12_CLK_DISABLE();
208 
209     /**DAC1 GPIO Configuration
210     PA4     ------> DAC1_OUT1
211     */
212     HAL_GPIO_DeInit(GPIOA, GPIO_PIN_4);
213 
214   /* USER CODE BEGIN DAC1_MspDeInit 1 */
215 
216   /* USER CODE END DAC1_MspDeInit 1 */
217   }
218 
219 }
220 
221 /**
222 * @brief DMA2D MSP Initialization
223 * This function configures the hardware resources used in this example
224 * @param hdma2d: DMA2D handle pointer
225 * @retval None
226 */
HAL_DMA2D_MspInit(DMA2D_HandleTypeDef * hdma2d)227 void HAL_DMA2D_MspInit(DMA2D_HandleTypeDef* hdma2d)
228 {
229   if(hdma2d->Instance==DMA2D)
230   {
231   /* USER CODE BEGIN DMA2D_MspInit 0 */
232 
233   /* USER CODE END DMA2D_MspInit 0 */
234     /* Peripheral clock enable */
235     __HAL_RCC_DMA2D_CLK_ENABLE();
236   /* USER CODE BEGIN DMA2D_MspInit 1 */
237 
238   /* USER CODE END DMA2D_MspInit 1 */
239   }
240 
241 }
242 
243 /**
244 * @brief DMA2D MSP De-Initialization
245 * This function freeze the hardware resources used in this example
246 * @param hdma2d: DMA2D handle pointer
247 * @retval None
248 */
HAL_DMA2D_MspDeInit(DMA2D_HandleTypeDef * hdma2d)249 void HAL_DMA2D_MspDeInit(DMA2D_HandleTypeDef* hdma2d)
250 {
251   if(hdma2d->Instance==DMA2D)
252   {
253   /* USER CODE BEGIN DMA2D_MspDeInit 0 */
254 
255   /* USER CODE END DMA2D_MspDeInit 0 */
256     /* Peripheral clock disable */
257     __HAL_RCC_DMA2D_CLK_DISABLE();
258   /* USER CODE BEGIN DMA2D_MspDeInit 1 */
259 
260   /* USER CODE END DMA2D_MspDeInit 1 */
261   }
262 
263 }
264 
265 /**
266 * @brief LTDC MSP Initialization
267 * This function configures the hardware resources used in this example
268 * @param hltdc: LTDC handle pointer
269 * @retval None
270 */
HAL_LTDC_MspInit(LTDC_HandleTypeDef * hltdc)271 void HAL_LTDC_MspInit(LTDC_HandleTypeDef* hltdc)
272 {
273   GPIO_InitTypeDef GPIO_InitStruct = {0};
274   if(hltdc->Instance==LTDC)
275   {
276   /* USER CODE BEGIN LTDC_MspInit 0 */
277 
278   /* USER CODE END LTDC_MspInit 0 */
279     /* Peripheral clock enable */
280     __HAL_RCC_LTDC_CLK_ENABLE();
281 
282     __HAL_RCC_GPIOI_CLK_ENABLE();
283     __HAL_RCC_GPIOF_CLK_ENABLE();
284     __HAL_RCC_GPIOH_CLK_ENABLE();
285     __HAL_RCC_GPIOG_CLK_ENABLE();
286     /**LTDC GPIO Configuration
287     PI9     ------> LTDC_VSYNC
288     PI10     ------> LTDC_HSYNC
289     PF10     ------> LTDC_DE
290     PH9     ------> LTDC_R3
291     PH10     ------> LTDC_R4
292     PH11     ------> LTDC_R5
293     PH12     ------> LTDC_R6
294     PG6     ------> LTDC_R7
295     PG7     ------> LTDC_CLK
296     PH13     ------> LTDC_G2
297     PH14     ------> LTDC_G3
298     PH15     ------> LTDC_G4
299     PI0     ------> LTDC_G5
300     PI1     ------> LTDC_G6
301     PI2     ------> LTDC_G7
302     PG11     ------> LTDC_B3
303     PI4     ------> LTDC_B4
304     PI5     ------> LTDC_B5
305     PI6     ------> LTDC_B6
306     PI7     ------> LTDC_B7
307     */
308     GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_0|GPIO_PIN_1
309                           |GPIO_PIN_2|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6
310                           |GPIO_PIN_7;
311     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
312     GPIO_InitStruct.Pull = GPIO_NOPULL;
313     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
314     GPIO_InitStruct.Alternate = GPIO_AF14_LTDC;
315     HAL_GPIO_Init(GPIOI, &GPIO_InitStruct);
316 
317     GPIO_InitStruct.Pin = GPIO_PIN_10;
318     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
319     GPIO_InitStruct.Pull = GPIO_NOPULL;
320     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
321     GPIO_InitStruct.Alternate = GPIO_AF14_LTDC;
322     HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
323 
324     GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11|GPIO_PIN_12
325                           |GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15;
326     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
327     GPIO_InitStruct.Pull = GPIO_NOPULL;
328     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
329     GPIO_InitStruct.Alternate = GPIO_AF14_LTDC;
330     HAL_GPIO_Init(GPIOH, &GPIO_InitStruct);
331 
332     GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_7|GPIO_PIN_11;
333     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
334     GPIO_InitStruct.Pull = GPIO_NOPULL;
335     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
336     GPIO_InitStruct.Alternate = GPIO_AF14_LTDC;
337     HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
338 
339   /* USER CODE BEGIN LTDC_MspInit 1 */
340 
341   /* USER CODE END LTDC_MspInit 1 */
342   }
343 
344 }
345 
346 /**
347 * @brief LTDC MSP De-Initialization
348 * This function freeze the hardware resources used in this example
349 * @param hltdc: LTDC handle pointer
350 * @retval None
351 */
HAL_LTDC_MspDeInit(LTDC_HandleTypeDef * hltdc)352 void HAL_LTDC_MspDeInit(LTDC_HandleTypeDef* hltdc)
353 {
354   if(hltdc->Instance==LTDC)
355   {
356   /* USER CODE BEGIN LTDC_MspDeInit 0 */
357 
358   /* USER CODE END LTDC_MspDeInit 0 */
359     /* Peripheral clock disable */
360     __HAL_RCC_LTDC_CLK_DISABLE();
361 
362     /**LTDC GPIO Configuration
363     PI9     ------> LTDC_VSYNC
364     PI10     ------> LTDC_HSYNC
365     PF10     ------> LTDC_DE
366     PH9     ------> LTDC_R3
367     PH10     ------> LTDC_R4
368     PH11     ------> LTDC_R5
369     PH12     ------> LTDC_R6
370     PG6     ------> LTDC_R7
371     PG7     ------> LTDC_CLK
372     PH13     ------> LTDC_G2
373     PH14     ------> LTDC_G3
374     PH15     ------> LTDC_G4
375     PI0     ------> LTDC_G5
376     PI1     ------> LTDC_G6
377     PI2     ------> LTDC_G7
378     PG11     ------> LTDC_B3
379     PI4     ------> LTDC_B4
380     PI5     ------> LTDC_B5
381     PI6     ------> LTDC_B6
382     PI7     ------> LTDC_B7
383     */
384     HAL_GPIO_DeInit(GPIOI, GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_0|GPIO_PIN_1
385                           |GPIO_PIN_2|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6
386                           |GPIO_PIN_7);
387 
388     HAL_GPIO_DeInit(GPIOF, GPIO_PIN_10);
389 
390     HAL_GPIO_DeInit(GPIOH, GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11|GPIO_PIN_12
391                           |GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15);
392 
393     HAL_GPIO_DeInit(GPIOG, GPIO_PIN_6|GPIO_PIN_7|GPIO_PIN_11);
394 
395   /* USER CODE BEGIN LTDC_MspDeInit 1 */
396 
397   /* USER CODE END LTDC_MspDeInit 1 */
398   }
399 
400 }
401 
402 /**
403 * @brief QSPI MSP Initialization
404 * This function configures the hardware resources used in this example
405 * @param hqspi: QSPI handle pointer
406 * @retval None
407 */
HAL_QSPI_MspInit(QSPI_HandleTypeDef * hqspi)408 void HAL_QSPI_MspInit(QSPI_HandleTypeDef* hqspi)
409 {
410   GPIO_InitTypeDef GPIO_InitStruct = {0};
411   if(hqspi->Instance==QUADSPI)
412   {
413   /* USER CODE BEGIN QUADSPI_MspInit 0 */
414 
415   /* USER CODE END QUADSPI_MspInit 0 */
416     /* Peripheral clock enable */
417     __HAL_RCC_QSPI_CLK_ENABLE();
418 
419     __HAL_RCC_GPIOF_CLK_ENABLE();
420     __HAL_RCC_GPIOB_CLK_ENABLE();
421     /**QUADSPI GPIO Configuration
422     PF6     ------> QUADSPI_BK1_IO3
423     PF7     ------> QUADSPI_BK1_IO2
424     PF8     ------> QUADSPI_BK1_IO0
425     PF9     ------> QUADSPI_BK1_IO1
426     PB2     ------> QUADSPI_CLK
427     PB6     ------> QUADSPI_BK1_NCS
428     */
429     GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_7;
430     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
431     GPIO_InitStruct.Pull = GPIO_NOPULL;
432     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
433     GPIO_InitStruct.Alternate = GPIO_AF9_QUADSPI;
434     HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
435 
436     GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_9;
437     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
438     GPIO_InitStruct.Pull = GPIO_NOPULL;
439     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
440     GPIO_InitStruct.Alternate = GPIO_AF10_QUADSPI;
441     HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
442 
443     GPIO_InitStruct.Pin = GPIO_PIN_2;
444     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
445     GPIO_InitStruct.Pull = GPIO_NOPULL;
446     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
447     GPIO_InitStruct.Alternate = GPIO_AF9_QUADSPI;
448     HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
449 
450     GPIO_InitStruct.Pin = GPIO_PIN_6;
451     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
452     GPIO_InitStruct.Pull = GPIO_NOPULL;
453     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
454     GPIO_InitStruct.Alternate = GPIO_AF10_QUADSPI;
455     HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
456 
457   /* USER CODE BEGIN QUADSPI_MspInit 1 */
458 
459   /* USER CODE END QUADSPI_MspInit 1 */
460   }
461 
462 }
463 
464 /**
465 * @brief QSPI MSP De-Initialization
466 * This function freeze the hardware resources used in this example
467 * @param hqspi: QSPI handle pointer
468 * @retval None
469 */
HAL_QSPI_MspDeInit(QSPI_HandleTypeDef * hqspi)470 void HAL_QSPI_MspDeInit(QSPI_HandleTypeDef* hqspi)
471 {
472   if(hqspi->Instance==QUADSPI)
473   {
474   /* USER CODE BEGIN QUADSPI_MspDeInit 0 */
475 
476   /* USER CODE END QUADSPI_MspDeInit 0 */
477     /* Peripheral clock disable */
478     __HAL_RCC_QSPI_CLK_DISABLE();
479 
480     /**QUADSPI GPIO Configuration
481     PF6     ------> QUADSPI_BK1_IO3
482     PF7     ------> QUADSPI_BK1_IO2
483     PF8     ------> QUADSPI_BK1_IO0
484     PF9     ------> QUADSPI_BK1_IO1
485     PB2     ------> QUADSPI_CLK
486     PB6     ------> QUADSPI_BK1_NCS
487     */
488     HAL_GPIO_DeInit(GPIOF, GPIO_PIN_6|GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9);
489 
490     HAL_GPIO_DeInit(GPIOB, GPIO_PIN_2|GPIO_PIN_6);
491 
492   /* USER CODE BEGIN QUADSPI_MspDeInit 1 */
493 
494   /* USER CODE END QUADSPI_MspDeInit 1 */
495   }
496 
497 }
498 
499 /**
500 * @brief RTC MSP Initialization
501 * This function configures the hardware resources used in this example
502 * @param hrtc: RTC handle pointer
503 * @retval None
504 */
HAL_RTC_MspInit(RTC_HandleTypeDef * hrtc)505 void HAL_RTC_MspInit(RTC_HandleTypeDef* hrtc)
506 {
507   GPIO_InitTypeDef GPIO_InitStruct = {0};
508   if(hrtc->Instance==RTC)
509   {
510   /* USER CODE BEGIN RTC_MspInit 0 */
511 
512   /* USER CODE END RTC_MspInit 0 */
513     /* Peripheral clock enable */
514     __HAL_RCC_RTC_ENABLE();
515 
516     __HAL_RCC_GPIOC_CLK_ENABLE();
517     /**RTC GPIO Configuration
518     PC13     ------> RTC_OUT_CALIB
519     */
520     HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
521 
522   /* USER CODE BEGIN RTC_MspInit 1 */
523 
524   /* USER CODE END RTC_MspInit 1 */
525   }
526 
527 }
528 
529 /**
530 * @brief RTC MSP De-Initialization
531 * This function freeze the hardware resources used in this example
532 * @param hrtc: RTC handle pointer
533 * @retval None
534 */
HAL_RTC_MspDeInit(RTC_HandleTypeDef * hrtc)535 void HAL_RTC_MspDeInit(RTC_HandleTypeDef* hrtc)
536 {
537   if(hrtc->Instance==RTC)
538   {
539   /* USER CODE BEGIN RTC_MspDeInit 0 */
540 
541   /* USER CODE END RTC_MspDeInit 0 */
542     /* Peripheral clock disable */
543     __HAL_RCC_RTC_DISABLE();
544 
545     /**RTC GPIO Configuration
546     PC13     ------> RTC_OUT_CALIB
547     */
548     HAL_GPIO_DeInit(GPIOC, GPIO_PIN_13);
549 
550   /* USER CODE BEGIN RTC_MspDeInit 1 */
551 
552   /* USER CODE END RTC_MspDeInit 1 */
553   }
554 
555 }
556 
557 /**
558 * @brief SD MSP Initialization
559 * This function configures the hardware resources used in this example
560 * @param hsd: SD handle pointer
561 * @retval None
562 */
HAL_SD_MspInit(SD_HandleTypeDef * hsd)563 void HAL_SD_MspInit(SD_HandleTypeDef* hsd)
564 {
565   GPIO_InitTypeDef GPIO_InitStruct = {0};
566   if(hsd->Instance==SDMMC1)
567   {
568   /* USER CODE BEGIN SDMMC1_MspInit 0 */
569 
570   /* USER CODE END SDMMC1_MspInit 0 */
571     /* Peripheral clock enable */
572     __HAL_RCC_SDMMC1_CLK_ENABLE();
573 
574     __HAL_RCC_GPIOC_CLK_ENABLE();
575     __HAL_RCC_GPIOD_CLK_ENABLE();
576     /**SDMMC1 GPIO Configuration
577     PC8     ------> SDMMC1_D0
578     PC9     ------> SDMMC1_D1
579     PC10     ------> SDMMC1_D2
580     PC11     ------> SDMMC1_D3
581     PC12     ------> SDMMC1_CK
582     PD2     ------> SDMMC1_CMD
583     */
584     GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11
585                           |GPIO_PIN_12;
586     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
587     GPIO_InitStruct.Pull = GPIO_NOPULL;
588     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
589     GPIO_InitStruct.Alternate = GPIO_AF12_SDIO1;
590     HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
591 
592     GPIO_InitStruct.Pin = GPIO_PIN_2;
593     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
594     GPIO_InitStruct.Pull = GPIO_NOPULL;
595     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
596     GPIO_InitStruct.Alternate = GPIO_AF12_SDIO1;
597     HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
598 
599     /* SDMMC1 interrupt Init */
600     HAL_NVIC_SetPriority(SDMMC1_IRQn, 2, 0);
601     HAL_NVIC_EnableIRQ(SDMMC1_IRQn);
602   /* USER CODE BEGIN SDMMC1_MspInit 1 */
603 
604   /* USER CODE END SDMMC1_MspInit 1 */
605   }
606 
607 }
608 
609 /**
610 * @brief SD MSP De-Initialization
611 * This function freeze the hardware resources used in this example
612 * @param hsd: SD handle pointer
613 * @retval None
614 */
HAL_SD_MspDeInit(SD_HandleTypeDef * hsd)615 void HAL_SD_MspDeInit(SD_HandleTypeDef* hsd)
616 {
617   if(hsd->Instance==SDMMC1)
618   {
619   /* USER CODE BEGIN SDMMC1_MspDeInit 0 */
620 
621   /* USER CODE END SDMMC1_MspDeInit 0 */
622     /* Peripheral clock disable */
623     __HAL_RCC_SDMMC1_CLK_DISABLE();
624 
625     /**SDMMC1 GPIO Configuration
626     PC8     ------> SDMMC1_D0
627     PC9     ------> SDMMC1_D1
628     PC10     ------> SDMMC1_D2
629     PC11     ------> SDMMC1_D3
630     PC12     ------> SDMMC1_CK
631     PD2     ------> SDMMC1_CMD
632     */
633     HAL_GPIO_DeInit(GPIOC, GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11
634                           |GPIO_PIN_12);
635 
636     HAL_GPIO_DeInit(GPIOD, GPIO_PIN_2);
637 
638     /* SDMMC1 interrupt DeInit */
639     HAL_NVIC_DisableIRQ(SDMMC1_IRQn);
640   /* USER CODE BEGIN SDMMC1_MspDeInit 1 */
641 
642   /* USER CODE END SDMMC1_MspDeInit 1 */
643   }
644 
645 }
646 
647 /**
648 * @brief SPI MSP Initialization
649 * This function configures the hardware resources used in this example
650 * @param hspi: SPI handle pointer
651 * @retval None
652 */
HAL_SPI_MspInit(SPI_HandleTypeDef * hspi)653 void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi)
654 {
655   GPIO_InitTypeDef GPIO_InitStruct = {0};
656   if(hspi->Instance==SPI2)
657   {
658   /* USER CODE BEGIN SPI2_MspInit 0 */
659 
660   /* USER CODE END SPI2_MspInit 0 */
661     /* Peripheral clock enable */
662     __HAL_RCC_SPI2_CLK_ENABLE();
663 
664     __HAL_RCC_GPIOB_CLK_ENABLE();
665     /**SPI2 GPIO Configuration
666     PB13     ------> SPI2_SCK
667     PB14     ------> SPI2_MISO
668     PB15     ------> SPI2_MOSI
669     */
670     GPIO_InitStruct.Pin = GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15;
671     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
672     GPIO_InitStruct.Pull = GPIO_NOPULL;
673     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
674     GPIO_InitStruct.Alternate = GPIO_AF5_SPI2;
675     HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
676 
677   /* USER CODE BEGIN SPI2_MspInit 1 */
678 
679   /* USER CODE END SPI2_MspInit 1 */
680   }
681 
682 }
683 
684 /**
685 * @brief SPI MSP De-Initialization
686 * This function freeze the hardware resources used in this example
687 * @param hspi: SPI handle pointer
688 * @retval None
689 */
HAL_SPI_MspDeInit(SPI_HandleTypeDef * hspi)690 void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi)
691 {
692   if(hspi->Instance==SPI2)
693   {
694   /* USER CODE BEGIN SPI2_MspDeInit 0 */
695 
696   /* USER CODE END SPI2_MspDeInit 0 */
697     /* Peripheral clock disable */
698     __HAL_RCC_SPI2_CLK_DISABLE();
699 
700     /**SPI2 GPIO Configuration
701     PB13     ------> SPI2_SCK
702     PB14     ------> SPI2_MISO
703     PB15     ------> SPI2_MOSI
704     */
705     HAL_GPIO_DeInit(GPIOB, GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15);
706 
707   /* USER CODE BEGIN SPI2_MspDeInit 1 */
708 
709   /* USER CODE END SPI2_MspDeInit 1 */
710   }
711 
712 }
713 
714 /**
715 * @brief UART MSP Initialization
716 * This function configures the hardware resources used in this example
717 * @param huart: UART handle pointer
718 * @retval None
719 */
HAL_UART_MspInit(UART_HandleTypeDef * huart)720 void HAL_UART_MspInit(UART_HandleTypeDef* huart)
721 {
722   GPIO_InitTypeDef GPIO_InitStruct = {0};
723   if(huart->Instance==USART1)
724   {
725   /* USER CODE BEGIN USART1_MspInit 0 */
726 
727   /* USER CODE END USART1_MspInit 0 */
728     /* Peripheral clock enable */
729     __HAL_RCC_USART1_CLK_ENABLE();
730 
731     __HAL_RCC_GPIOA_CLK_ENABLE();
732     /**USART1 GPIO Configuration
733     PA9     ------> USART1_TX
734     PA10     ------> USART1_RX
735     */
736     GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_10;
737     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
738     GPIO_InitStruct.Pull = GPIO_PULLUP;
739     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
740     GPIO_InitStruct.Alternate = GPIO_AF7_USART1;
741     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
742 
743     /* USART1 interrupt Init */
744     HAL_NVIC_SetPriority(USART1_IRQn, 0, 0);
745     HAL_NVIC_EnableIRQ(USART1_IRQn);
746   /* USER CODE BEGIN USART1_MspInit 1 */
747 
748   /* USER CODE END USART1_MspInit 1 */
749   }
750   else if(huart->Instance==USART2)
751   {
752   /* USER CODE BEGIN USART2_MspInit 0 */
753 
754   /* USER CODE END USART2_MspInit 0 */
755     /* Peripheral clock enable */
756     __HAL_RCC_USART2_CLK_ENABLE();
757 
758     __HAL_RCC_GPIOA_CLK_ENABLE();
759     /**USART2 GPIO Configuration
760     PA2     ------> USART2_TX
761     PA3     ------> USART2_RX
762     */
763     GPIO_InitStruct.Pin = GPIO_PIN_2|GPIO_PIN_3;
764     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
765     GPIO_InitStruct.Pull = GPIO_PULLUP;
766     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
767     GPIO_InitStruct.Alternate = GPIO_AF7_USART2;
768     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
769 
770     /* USART2 interrupt Init */
771     HAL_NVIC_SetPriority(USART2_IRQn, 0, 0);
772     HAL_NVIC_EnableIRQ(USART2_IRQn);
773   /* USER CODE BEGIN USART2_MspInit 1 */
774 
775   /* USER CODE END USART2_MspInit 1 */
776   }
777 
778 }
779 
780 /**
781 * @brief UART MSP De-Initialization
782 * This function freeze the hardware resources used in this example
783 * @param huart: UART handle pointer
784 * @retval None
785 */
HAL_UART_MspDeInit(UART_HandleTypeDef * huart)786 void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
787 {
788   if(huart->Instance==USART1)
789   {
790   /* USER CODE BEGIN USART1_MspDeInit 0 */
791 
792   /* USER CODE END USART1_MspDeInit 0 */
793     /* Peripheral clock disable */
794     __HAL_RCC_USART1_CLK_DISABLE();
795 
796     /**USART1 GPIO Configuration
797     PA9     ------> USART1_TX
798     PA10     ------> USART1_RX
799     */
800     HAL_GPIO_DeInit(GPIOA, GPIO_PIN_9|GPIO_PIN_10);
801 
802     /* USART1 interrupt DeInit */
803     HAL_NVIC_DisableIRQ(USART1_IRQn);
804   /* USER CODE BEGIN USART1_MspDeInit 1 */
805 
806   /* USER CODE END USART1_MspDeInit 1 */
807   }
808   else if(huart->Instance==USART2)
809   {
810   /* USER CODE BEGIN USART2_MspDeInit 0 */
811 
812   /* USER CODE END USART2_MspDeInit 0 */
813     /* Peripheral clock disable */
814     __HAL_RCC_USART2_CLK_DISABLE();
815 
816     /**USART2 GPIO Configuration
817     PA2     ------> USART2_TX
818     PA3     ------> USART2_RX
819     */
820     HAL_GPIO_DeInit(GPIOA, GPIO_PIN_2|GPIO_PIN_3);
821 
822     /* USART2 interrupt DeInit */
823     HAL_NVIC_DisableIRQ(USART2_IRQn);
824   /* USER CODE BEGIN USART2_MspDeInit 1 */
825 
826   /* USER CODE END USART2_MspDeInit 1 */
827   }
828 
829 }
830 
831 static uint32_t FMC_Initialized = 0;
832 
HAL_FMC_MspInit(void)833 static void HAL_FMC_MspInit(void){
834   /* USER CODE BEGIN FMC_MspInit 0 */
835 
836   /* USER CODE END FMC_MspInit 0 */
837   GPIO_InitTypeDef GPIO_InitStruct ={0};
838   if (FMC_Initialized) {
839     return;
840   }
841   FMC_Initialized = 1;
842 
843   /* Peripheral clock enable */
844   __HAL_RCC_FMC_CLK_ENABLE();
845 
846   /** FMC GPIO Configuration
847   PF0   ------> FMC_A0
848   PF1   ------> FMC_A1
849   PF2   ------> FMC_A2
850   PF3   ------> FMC_A3
851   PF4   ------> FMC_A4
852   PF5   ------> FMC_A5
853   PC0   ------> FMC_SDNWE
854   PC2_C   ------> FMC_SDNE0
855   PC3_C   ------> FMC_SDCKE0
856   PF11   ------> FMC_SDNRAS
857   PF12   ------> FMC_A6
858   PF13   ------> FMC_A7
859   PF14   ------> FMC_A8
860   PF15   ------> FMC_A9
861   PG0   ------> FMC_A10
862   PG1   ------> FMC_A11
863   PE7   ------> FMC_D4
864   PE8   ------> FMC_D5
865   PE9   ------> FMC_D6
866   PE10   ------> FMC_D7
867   PE11   ------> FMC_D8
868   PE12   ------> FMC_D9
869   PE13   ------> FMC_D10
870   PE14   ------> FMC_D11
871   PE15   ------> FMC_D12
872   PD8   ------> FMC_D13
873   PD9   ------> FMC_D14
874   PD10   ------> FMC_D15
875   PD14   ------> FMC_D0
876   PD15   ------> FMC_D1
877   PG2   ------> FMC_A12
878   PG4   ------> FMC_BA0
879   PG5   ------> FMC_BA1
880   PG8   ------> FMC_SDCLK
881   PD0   ------> FMC_D2
882   PD1   ------> FMC_D3
883   PG15   ------> FMC_SDNCAS
884   PE0   ------> FMC_NBL0
885   PE1   ------> FMC_NBL1
886   */
887   GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3
888                           |GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_11|GPIO_PIN_12
889                           |GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15;
890   GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
891   GPIO_InitStruct.Pull = GPIO_NOPULL;
892   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
893   GPIO_InitStruct.Alternate = GPIO_AF12_FMC;
894   HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
895 
896   GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_2|GPIO_PIN_3;
897   GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
898   GPIO_InitStruct.Pull = GPIO_NOPULL;
899   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
900   GPIO_InitStruct.Alternate = GPIO_AF12_FMC;
901   HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
902 
903   GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_4
904                           |GPIO_PIN_5|GPIO_PIN_8|GPIO_PIN_15;
905   GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
906   GPIO_InitStruct.Pull = GPIO_NOPULL;
907   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
908   GPIO_InitStruct.Alternate = GPIO_AF12_FMC;
909   HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
910 
911   GPIO_InitStruct.Pin = GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10
912                           |GPIO_PIN_11|GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14
913                           |GPIO_PIN_15|GPIO_PIN_0|GPIO_PIN_1;
914   GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
915   GPIO_InitStruct.Pull = GPIO_NOPULL;
916   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
917   GPIO_InitStruct.Alternate = GPIO_AF12_FMC;
918   HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
919 
920   GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_14
921                           |GPIO_PIN_15|GPIO_PIN_0|GPIO_PIN_1;
922   GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
923   GPIO_InitStruct.Pull = GPIO_NOPULL;
924   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
925   GPIO_InitStruct.Alternate = GPIO_AF12_FMC;
926   HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
927 
928   /* USER CODE BEGIN FMC_MspInit 1 */
929 
930   /* USER CODE END FMC_MspInit 1 */
931 }
932 
HAL_SDRAM_MspInit(SDRAM_HandleTypeDef * hsdram)933 void HAL_SDRAM_MspInit(SDRAM_HandleTypeDef* hsdram){
934   /* USER CODE BEGIN SDRAM_MspInit 0 */
935 
936   /* USER CODE END SDRAM_MspInit 0 */
937   HAL_FMC_MspInit();
938   /* USER CODE BEGIN SDRAM_MspInit 1 */
939 
940   /* USER CODE END SDRAM_MspInit 1 */
941 }
942 
943 static uint32_t FMC_DeInitialized = 0;
944 
HAL_FMC_MspDeInit(void)945 static void HAL_FMC_MspDeInit(void){
946   /* USER CODE BEGIN FMC_MspDeInit 0 */
947 
948   /* USER CODE END FMC_MspDeInit 0 */
949   if (FMC_DeInitialized) {
950     return;
951   }
952   FMC_DeInitialized = 1;
953   /* Peripheral clock enable */
954   __HAL_RCC_FMC_CLK_DISABLE();
955 
956   /** FMC GPIO Configuration
957   PF0   ------> FMC_A0
958   PF1   ------> FMC_A1
959   PF2   ------> FMC_A2
960   PF3   ------> FMC_A3
961   PF4   ------> FMC_A4
962   PF5   ------> FMC_A5
963   PC0   ------> FMC_SDNWE
964   PC2_C   ------> FMC_SDNE0
965   PC3_C   ------> FMC_SDCKE0
966   PF11   ------> FMC_SDNRAS
967   PF12   ------> FMC_A6
968   PF13   ------> FMC_A7
969   PF14   ------> FMC_A8
970   PF15   ------> FMC_A9
971   PG0   ------> FMC_A10
972   PG1   ------> FMC_A11
973   PE7   ------> FMC_D4
974   PE8   ------> FMC_D5
975   PE9   ------> FMC_D6
976   PE10   ------> FMC_D7
977   PE11   ------> FMC_D8
978   PE12   ------> FMC_D9
979   PE13   ------> FMC_D10
980   PE14   ------> FMC_D11
981   PE15   ------> FMC_D12
982   PD8   ------> FMC_D13
983   PD9   ------> FMC_D14
984   PD10   ------> FMC_D15
985   PD14   ------> FMC_D0
986   PD15   ------> FMC_D1
987   PG2   ------> FMC_A12
988   PG4   ------> FMC_BA0
989   PG5   ------> FMC_BA1
990   PG8   ------> FMC_SDCLK
991   PD0   ------> FMC_D2
992   PD1   ------> FMC_D3
993   PG15   ------> FMC_SDNCAS
994   PE0   ------> FMC_NBL0
995   PE1   ------> FMC_NBL1
996   */
997   HAL_GPIO_DeInit(GPIOF, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3
998                           |GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_11|GPIO_PIN_12
999                           |GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15);
1000 
1001   HAL_GPIO_DeInit(GPIOC, GPIO_PIN_0|GPIO_PIN_2|GPIO_PIN_3);
1002 
1003   HAL_GPIO_DeInit(GPIOG, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_4
1004                           |GPIO_PIN_5|GPIO_PIN_8|GPIO_PIN_15);
1005 
1006   HAL_GPIO_DeInit(GPIOE, GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10
1007                           |GPIO_PIN_11|GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14
1008                           |GPIO_PIN_15|GPIO_PIN_0|GPIO_PIN_1);
1009 
1010   HAL_GPIO_DeInit(GPIOD, GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_14
1011                           |GPIO_PIN_15|GPIO_PIN_0|GPIO_PIN_1);
1012 
1013   /* USER CODE BEGIN FMC_MspDeInit 1 */
1014 
1015   /* USER CODE END FMC_MspDeInit 1 */
1016 }
1017 
HAL_SDRAM_MspDeInit(SDRAM_HandleTypeDef * hsdram)1018 void HAL_SDRAM_MspDeInit(SDRAM_HandleTypeDef* hsdram){
1019   /* USER CODE BEGIN SDRAM_MspDeInit 0 */
1020 
1021   /* USER CODE END SDRAM_MspDeInit 0 */
1022   HAL_FMC_MspDeInit();
1023   /* USER CODE BEGIN SDRAM_MspDeInit 1 */
1024 
1025   /* USER CODE END SDRAM_MspDeInit 1 */
1026 }
1027 
1028 /* USER CODE BEGIN 1 */
1029 
1030 /* USER CODE END 1 */
1031 
1032 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
1033