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