1 /* USER CODE BEGIN Header */
2 /**
3 ******************************************************************************
4 * File Name : stm32f7xx_hal_msp.c
5 * Description : This file provides code for the MSP Initialization
6 * and de-Initialization codes.
7 ******************************************************************************
8 ** This notice applies to any and all portions of this file
9 * that are not between comment pairs USER CODE BEGIN and
10 * USER CODE END. Other portions of this file, whether
11 * inserted by the user or by software development tools
12 * are owned by their respective copyright owners.
13 *
14 * COPYRIGHT(c) 2018 STMicroelectronics
15 *
16 * Redistribution and use in source and binary forms, with or without modification,
17 * are permitted provided that the following conditions are met:
18 * 1. Redistributions of source code must retain the above copyright notice,
19 * this list of conditions and the following disclaimer.
20 * 2. Redistributions in binary form must reproduce the above copyright notice,
21 * this list of conditions and the following disclaimer in the documentation
22 * and/or other materials provided with the distribution.
23 * 3. Neither the name of STMicroelectronics nor the names of its contributors
24 * may be used to endorse or promote products derived from this software
25 * without specific prior written permission.
26 *
27 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
28 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
29 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
30 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
31 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
32 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
33 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
34 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
35 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
36 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37 *
38 ******************************************************************************
39 */
40 /* USER CODE END Header */
41
42 /* Includes ------------------------------------------------------------------*/
43 #include "main.h"
44 /* USER CODE BEGIN Includes */
45 #include <drv_common.h>
46 /* USER CODE END Includes */
47
48 /* Private typedef -----------------------------------------------------------*/
49 /* USER CODE BEGIN TD */
50
51 /* USER CODE END TD */
52
53 /* Private define ------------------------------------------------------------*/
54 /* USER CODE BEGIN Define */
55
56 /* USER CODE END Define */
57
58 /* Private macro -------------------------------------------------------------*/
59 /* USER CODE BEGIN Macro */
60
61 /* USER CODE END Macro */
62
63 /* Private variables ---------------------------------------------------------*/
64 /* USER CODE BEGIN PV */
65
66 /* USER CODE END PV */
67
68 /* Private function prototypes -----------------------------------------------*/
69 /* USER CODE BEGIN PFP */
70
71 /* USER CODE END PFP */
72
73 /* External functions --------------------------------------------------------*/
74 /* USER CODE BEGIN ExternalFunctions */
75
76 /* USER CODE END ExternalFunctions */
77
78 /* USER CODE BEGIN 0 */
79
80 /* USER CODE END 0 */
81 /**
82 * 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_PWR_CLK_ENABLE();
91 __HAL_RCC_SYSCFG_CLK_ENABLE();
92
93 /* System interrupt init*/
94
95 /* USER CODE BEGIN MspInit 1 */
96
97 /* USER CODE END MspInit 1 */
98 }
99
100 /**
101 * @brief ETH MSP Initialization
102 * This function configures the hardware resources used in this example
103 * @param heth: ETH handle pointer
104 * @retval None
105 */
HAL_ETH_MspInit(ETH_HandleTypeDef * heth)106 void HAL_ETH_MspInit(ETH_HandleTypeDef* heth)
107 {
108 GPIO_InitTypeDef GPIO_InitStruct = {0};
109 if(heth->Instance==ETH)
110 {
111 /* USER CODE BEGIN ETH_MspInit 0 */
112
113 /* USER CODE END ETH_MspInit 0 */
114 /* Peripheral clock enable */
115 __HAL_RCC_ETH_CLK_ENABLE();
116
117 __HAL_RCC_GPIOG_CLK_ENABLE();
118 __HAL_RCC_GPIOC_CLK_ENABLE();
119 __HAL_RCC_GPIOA_CLK_ENABLE();
120 /**ETH GPIO Configuration
121 PG14 ------> ETH_TXD1
122 PG13 ------> ETH_TXD0
123 PG11 ------> ETH_TX_EN
124 PC1 ------> ETH_MDC
125 PA1 ------> ETH_REF_CLK
126 PC4 ------> ETH_RXD0
127 PA2 ------> ETH_MDIO
128 PC5 ------> ETH_RXD1
129 PA7 ------> ETH_CRS_DV
130 */
131 GPIO_InitStruct.Pin = GPIO_PIN_14|GPIO_PIN_13|GPIO_PIN_11;
132 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
133 GPIO_InitStruct.Pull = GPIO_NOPULL;
134 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
135 GPIO_InitStruct.Alternate = GPIO_AF11_ETH;
136 HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
137
138 GPIO_InitStruct.Pin = GPIO_PIN_1|GPIO_PIN_4|GPIO_PIN_5;
139 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
140 GPIO_InitStruct.Pull = GPIO_NOPULL;
141 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
142 GPIO_InitStruct.Alternate = GPIO_AF11_ETH;
143 HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
144
145 GPIO_InitStruct.Pin = GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_7;
146 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
147 GPIO_InitStruct.Pull = GPIO_NOPULL;
148 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
149 GPIO_InitStruct.Alternate = GPIO_AF11_ETH;
150 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
151
152 /* USER CODE BEGIN ETH_MspInit 1 */
153
154 /* USER CODE END ETH_MspInit 1 */
155 }
156
157 }
158
159 /**
160 * @brief ETH MSP De-Initialization
161 * This function freeze the hardware resources used in this example
162 * @param heth: ETH handle pointer
163 * @retval None
164 */
HAL_ETH_MspDeInit(ETH_HandleTypeDef * heth)165 void HAL_ETH_MspDeInit(ETH_HandleTypeDef* heth)
166 {
167 if(heth->Instance==ETH)
168 {
169 /* USER CODE BEGIN ETH_MspDeInit 0 */
170
171 /* USER CODE END ETH_MspDeInit 0 */
172 /* Peripheral clock disable */
173 __HAL_RCC_ETH_CLK_DISABLE();
174
175 /**ETH GPIO Configuration
176 PG14 ------> ETH_TXD1
177 PG13 ------> ETH_TXD0
178 PG11 ------> ETH_TX_EN
179 PC1 ------> ETH_MDC
180 PA1 ------> ETH_REF_CLK
181 PC4 ------> ETH_RXD0
182 PA2 ------> ETH_MDIO
183 PC5 ------> ETH_RXD1
184 PA7 ------> ETH_CRS_DV
185 */
186 HAL_GPIO_DeInit(GPIOG, GPIO_PIN_14|GPIO_PIN_13|GPIO_PIN_11);
187
188 HAL_GPIO_DeInit(GPIOC, GPIO_PIN_1|GPIO_PIN_4|GPIO_PIN_5);
189
190 HAL_GPIO_DeInit(GPIOA, GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_7);
191
192 /* USER CODE BEGIN ETH_MspDeInit 1 */
193
194 /* USER CODE END ETH_MspDeInit 1 */
195 }
196
197 }
198
199 /**
200 * @brief LTDC MSP Initialization
201 * This function configures the hardware resources used in this example
202 * @param hltdc: LTDC handle pointer
203 * @retval None
204 */
HAL_LTDC_MspInit(LTDC_HandleTypeDef * hltdc)205 void HAL_LTDC_MspInit(LTDC_HandleTypeDef* hltdc)
206 {
207 GPIO_InitTypeDef GPIO_InitStruct = {0};
208 if(hltdc->Instance==LTDC)
209 {
210 /* USER CODE BEGIN LTDC_MspInit 0 */
211
212 /* USER CODE END LTDC_MspInit 0 */
213 /* Peripheral clock enable */
214 __HAL_RCC_LTDC_CLK_ENABLE();
215
216 __HAL_RCC_GPIOE_CLK_ENABLE();
217 __HAL_RCC_GPIOJ_CLK_ENABLE();
218 __HAL_RCC_GPIOK_CLK_ENABLE();
219 __HAL_RCC_GPIOG_CLK_ENABLE();
220 __HAL_RCC_GPIOI_CLK_ENABLE();
221 /**LTDC GPIO Configuration
222 PE4 ------> LTDC_B0
223 PJ13 ------> LTDC_B1
224 PK7 ------> LTDC_DE
225 PK6 ------> LTDC_B7
226 PK5 ------> LTDC_B6
227 PG12 ------> LTDC_B4
228 PJ14 ------> LTDC_B2
229 PI10 ------> LTDC_HSYNC
230 PK4 ------> LTDC_B5
231 PJ15 ------> LTDC_B3
232 PI9 ------> LTDC_VSYNC
233 PK1 ------> LTDC_G6
234 PK2 ------> LTDC_G7
235 PI15 ------> LTDC_R0
236 PJ11 ------> LTDC_G4
237 PK0 ------> LTDC_G5
238 PI14 ------> LTDC_CLK
239 PJ8 ------> LTDC_G1
240 PJ10 ------> LTDC_G3
241 PJ7 ------> LTDC_G0
242 PJ9 ------> LTDC_G2
243 PJ6 ------> LTDC_R7
244 PJ4 ------> LTDC_R5
245 PJ5 ------> LTDC_R6
246 PJ3 ------> LTDC_R4
247 PJ2 ------> LTDC_R3
248 PJ0 ------> LTDC_R1
249 PJ1 ------> LTDC_R2
250 */
251 GPIO_InitStruct.Pin = GPIO_PIN_4;
252 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
253 GPIO_InitStruct.Pull = GPIO_NOPULL;
254 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
255 GPIO_InitStruct.Alternate = GPIO_AF14_LTDC;
256 HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
257
258 GPIO_InitStruct.Pin = GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15|GPIO_PIN_11
259 |GPIO_PIN_8|GPIO_PIN_10|GPIO_PIN_7|GPIO_PIN_9
260 |GPIO_PIN_6|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_3
261 |GPIO_PIN_2|GPIO_PIN_0|GPIO_PIN_1;
262 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
263 GPIO_InitStruct.Pull = GPIO_NOPULL;
264 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
265 GPIO_InitStruct.Alternate = GPIO_AF14_LTDC;
266 HAL_GPIO_Init(GPIOJ, &GPIO_InitStruct);
267
268 GPIO_InitStruct.Pin = GPIO_PIN_7|GPIO_PIN_6|GPIO_PIN_5|GPIO_PIN_4
269 |GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_0;
270 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
271 GPIO_InitStruct.Pull = GPIO_NOPULL;
272 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
273 GPIO_InitStruct.Alternate = GPIO_AF14_LTDC;
274 HAL_GPIO_Init(GPIOK, &GPIO_InitStruct);
275
276 GPIO_InitStruct.Pin = GPIO_PIN_12;
277 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
278 GPIO_InitStruct.Pull = GPIO_NOPULL;
279 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
280 GPIO_InitStruct.Alternate = GPIO_AF9_LTDC;
281 HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
282
283 GPIO_InitStruct.Pin = GPIO_PIN_10|GPIO_PIN_9|GPIO_PIN_15|GPIO_PIN_14;
284 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
285 GPIO_InitStruct.Pull = GPIO_NOPULL;
286 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
287 GPIO_InitStruct.Alternate = GPIO_AF14_LTDC;
288 HAL_GPIO_Init(GPIOI, &GPIO_InitStruct);
289
290 /* USER CODE BEGIN LTDC_MspInit 1 */
291
292 /* USER CODE END LTDC_MspInit 1 */
293 }
294
295 }
296
297 /**
298 * @brief LTDC MSP De-Initialization
299 * This function freeze the hardware resources used in this example
300 * @param hltdc: LTDC handle pointer
301 * @retval None
302 */
HAL_LTDC_MspDeInit(LTDC_HandleTypeDef * hltdc)303 void HAL_LTDC_MspDeInit(LTDC_HandleTypeDef* hltdc)
304 {
305 if(hltdc->Instance==LTDC)
306 {
307 /* USER CODE BEGIN LTDC_MspDeInit 0 */
308
309 /* USER CODE END LTDC_MspDeInit 0 */
310 /* Peripheral clock disable */
311 __HAL_RCC_LTDC_CLK_DISABLE();
312
313 /**LTDC GPIO Configuration
314 PE4 ------> LTDC_B0
315 PJ13 ------> LTDC_B1
316 PK7 ------> LTDC_DE
317 PK6 ------> LTDC_B7
318 PK5 ------> LTDC_B6
319 PG12 ------> LTDC_B4
320 PJ14 ------> LTDC_B2
321 PI10 ------> LTDC_HSYNC
322 PK4 ------> LTDC_B5
323 PJ15 ------> LTDC_B3
324 PI9 ------> LTDC_VSYNC
325 PK1 ------> LTDC_G6
326 PK2 ------> LTDC_G7
327 PI15 ------> LTDC_R0
328 PJ11 ------> LTDC_G4
329 PK0 ------> LTDC_G5
330 PI14 ------> LTDC_CLK
331 PJ8 ------> LTDC_G1
332 PJ10 ------> LTDC_G3
333 PJ7 ------> LTDC_G0
334 PJ9 ------> LTDC_G2
335 PJ6 ------> LTDC_R7
336 PJ4 ------> LTDC_R5
337 PJ5 ------> LTDC_R6
338 PJ3 ------> LTDC_R4
339 PJ2 ------> LTDC_R3
340 PJ0 ------> LTDC_R1
341 PJ1 ------> LTDC_R2
342 */
343 HAL_GPIO_DeInit(GPIOE, GPIO_PIN_4);
344
345 HAL_GPIO_DeInit(GPIOJ, GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15|GPIO_PIN_11
346 |GPIO_PIN_8|GPIO_PIN_10|GPIO_PIN_7|GPIO_PIN_9
347 |GPIO_PIN_6|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_3
348 |GPIO_PIN_2|GPIO_PIN_0|GPIO_PIN_1);
349
350 HAL_GPIO_DeInit(GPIOK, GPIO_PIN_7|GPIO_PIN_6|GPIO_PIN_5|GPIO_PIN_4
351 |GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_0);
352
353 HAL_GPIO_DeInit(GPIOG, GPIO_PIN_12);
354
355 HAL_GPIO_DeInit(GPIOI, GPIO_PIN_10|GPIO_PIN_9|GPIO_PIN_15|GPIO_PIN_14);
356
357 /* USER CODE BEGIN LTDC_MspDeInit 1 */
358
359 /* USER CODE END LTDC_MspDeInit 1 */
360 }
361
362 }
363
364 /**
365 * @brief QSPI MSP Initialization
366 * This function configures the hardware resources used in this example
367 * @param hqspi: QSPI handle pointer
368 * @retval None
369 */
HAL_QSPI_MspInit(QSPI_HandleTypeDef * hqspi)370 void HAL_QSPI_MspInit(QSPI_HandleTypeDef* hqspi)
371 {
372 GPIO_InitTypeDef GPIO_InitStruct = {0};
373 if(hqspi->Instance==QUADSPI)
374 {
375 /* USER CODE BEGIN QUADSPI_MspInit 0 */
376
377 /* USER CODE END QUADSPI_MspInit 0 */
378 /* Peripheral clock enable */
379 __HAL_RCC_QSPI_CLK_ENABLE();
380
381 __HAL_RCC_GPIOE_CLK_ENABLE();
382 __HAL_RCC_GPIOB_CLK_ENABLE();
383 __HAL_RCC_GPIOD_CLK_ENABLE();
384 /**QUADSPI GPIO Configuration
385 PE2 ------> QUADSPI_BK1_IO2
386 PB6 ------> QUADSPI_BK1_NCS
387 PB2 ------> QUADSPI_CLK
388 PD12 ------> QUADSPI_BK1_IO1
389 PD13 ------> QUADSPI_BK1_IO3
390 PD11 ------> QUADSPI_BK1_IO0
391 */
392 GPIO_InitStruct.Pin = GPIO_PIN_2;
393 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
394 GPIO_InitStruct.Pull = GPIO_NOPULL;
395 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
396 GPIO_InitStruct.Alternate = GPIO_AF9_QUADSPI;
397 HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
398
399 GPIO_InitStruct.Pin = GPIO_PIN_6;
400 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
401 GPIO_InitStruct.Pull = GPIO_NOPULL;
402 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
403 GPIO_InitStruct.Alternate = GPIO_AF10_QUADSPI;
404 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
405
406 GPIO_InitStruct.Pin = GPIO_PIN_2;
407 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
408 GPIO_InitStruct.Pull = GPIO_NOPULL;
409 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
410 GPIO_InitStruct.Alternate = GPIO_AF9_QUADSPI;
411 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
412
413 GPIO_InitStruct.Pin = GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_11;
414 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
415 GPIO_InitStruct.Pull = GPIO_NOPULL;
416 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
417 GPIO_InitStruct.Alternate = GPIO_AF9_QUADSPI;
418 HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
419
420 /* USER CODE BEGIN QUADSPI_MspInit 1 */
421
422 /* USER CODE END QUADSPI_MspInit 1 */
423 }
424
425 }
426
427 /**
428 * @brief QSPI MSP De-Initialization
429 * This function freeze the hardware resources used in this example
430 * @param hqspi: QSPI handle pointer
431 * @retval None
432 */
HAL_QSPI_MspDeInit(QSPI_HandleTypeDef * hqspi)433 void HAL_QSPI_MspDeInit(QSPI_HandleTypeDef* hqspi)
434 {
435 if(hqspi->Instance==QUADSPI)
436 {
437 /* USER CODE BEGIN QUADSPI_MspDeInit 0 */
438
439 /* USER CODE END QUADSPI_MspDeInit 0 */
440 /* Peripheral clock disable */
441 __HAL_RCC_QSPI_CLK_DISABLE();
442
443 /**QUADSPI GPIO Configuration
444 PE2 ------> QUADSPI_BK1_IO2
445 PB6 ------> QUADSPI_BK1_NCS
446 PB2 ------> QUADSPI_CLK
447 PD12 ------> QUADSPI_BK1_IO1
448 PD13 ------> QUADSPI_BK1_IO3
449 PD11 ------> QUADSPI_BK1_IO0
450 */
451 HAL_GPIO_DeInit(GPIOE, GPIO_PIN_2);
452
453 HAL_GPIO_DeInit(GPIOB, GPIO_PIN_6|GPIO_PIN_2);
454
455 HAL_GPIO_DeInit(GPIOD, GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_11);
456
457 /* USER CODE BEGIN QUADSPI_MspDeInit 1 */
458
459 /* USER CODE END QUADSPI_MspDeInit 1 */
460 }
461
462 }
463
464 /**
465 * @brief SD MSP Initialization
466 * This function configures the hardware resources used in this example
467 * @param hsd: SD handle pointer
468 * @retval None
469 */
HAL_SD_MspInit(SD_HandleTypeDef * hsd)470 void HAL_SD_MspInit(SD_HandleTypeDef* hsd)
471 {
472 GPIO_InitTypeDef GPIO_InitStruct = {0};
473 if(hsd->Instance==SDMMC1)
474 {
475 /* USER CODE BEGIN SDMMC1_MspInit 0 */
476
477 /* USER CODE END SDMMC1_MspInit 0 */
478 /* Peripheral clock enable */
479 __HAL_RCC_SDMMC1_CLK_ENABLE();
480
481 __HAL_RCC_GPIOC_CLK_ENABLE();
482 __HAL_RCC_GPIOD_CLK_ENABLE();
483 /**SDMMC1 GPIO Configuration
484 PC12 ------> SDMMC1_CK
485 PC11 ------> SDMMC1_D3
486 PC10 ------> SDMMC1_D2
487 PD2 ------> SDMMC1_CMD
488 PC9 ------> SDMMC1_D1
489 PC8 ------> SDMMC1_D0
490 */
491 GPIO_InitStruct.Pin = GPIO_PIN_12|GPIO_PIN_11|GPIO_PIN_10|GPIO_PIN_9
492 |GPIO_PIN_8;
493 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
494 GPIO_InitStruct.Pull = GPIO_NOPULL;
495 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
496 GPIO_InitStruct.Alternate = GPIO_AF12_SDMMC1;
497 HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
498
499 GPIO_InitStruct.Pin = GPIO_PIN_2;
500 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
501 GPIO_InitStruct.Pull = GPIO_NOPULL;
502 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
503 GPIO_InitStruct.Alternate = GPIO_AF12_SDMMC1;
504 HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
505
506 /* USER CODE BEGIN SDMMC1_MspInit 1 */
507
508 /* USER CODE END SDMMC1_MspInit 1 */
509 }
510
511 }
512
513 /**
514 * @brief SD MSP De-Initialization
515 * This function freeze the hardware resources used in this example
516 * @param hsd: SD handle pointer
517 * @retval None
518 */
HAL_SD_MspDeInit(SD_HandleTypeDef * hsd)519 void HAL_SD_MspDeInit(SD_HandleTypeDef* hsd)
520 {
521 if(hsd->Instance==SDMMC1)
522 {
523 /* USER CODE BEGIN SDMMC1_MspDeInit 0 */
524
525 /* USER CODE END SDMMC1_MspDeInit 0 */
526 /* Peripheral clock disable */
527 __HAL_RCC_SDMMC1_CLK_DISABLE();
528
529 /**SDMMC1 GPIO Configuration
530 PC12 ------> SDMMC1_CK
531 PC11 ------> SDMMC1_D3
532 PC10 ------> SDMMC1_D2
533 PD2 ------> SDMMC1_CMD
534 PC9 ------> SDMMC1_D1
535 PC8 ------> SDMMC1_D0
536 */
537 HAL_GPIO_DeInit(GPIOC, GPIO_PIN_12|GPIO_PIN_11|GPIO_PIN_10|GPIO_PIN_9
538 |GPIO_PIN_8);
539
540 HAL_GPIO_DeInit(GPIOD, GPIO_PIN_2);
541
542 /* USER CODE BEGIN SDMMC1_MspDeInit 1 */
543
544 /* USER CODE END SDMMC1_MspDeInit 1 */
545 }
546
547 }
548
549 /**
550 * @brief TIM_Base MSP Initialization
551 * This function configures the hardware resources used in this example
552 * @param htim_base: TIM_Base handle pointer
553 * @retval None
554 */
HAL_TIM_Base_MspInit(TIM_HandleTypeDef * htim_base)555 void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
556 {
557 if(htim_base->Instance==TIM11)
558 {
559 /* USER CODE BEGIN TIM11_MspInit 0 */
560
561 /* USER CODE END TIM11_MspInit 0 */
562 /* Peripheral clock enable */
563 __HAL_RCC_TIM11_CLK_ENABLE();
564 /* USER CODE BEGIN TIM11_MspInit 1 */
565
566 /* USER CODE END TIM11_MspInit 1 */
567 }
568
569 }
570
571 /**
572 * @brief TIM_Base MSP De-Initialization
573 * This function freeze the hardware resources used in this example
574 * @param htim_base: TIM_Base handle pointer
575 * @retval None
576 */
HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef * htim_base)577 void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base)
578 {
579 if(htim_base->Instance==TIM11)
580 {
581 /* USER CODE BEGIN TIM11_MspDeInit 0 */
582
583 /* USER CODE END TIM11_MspDeInit 0 */
584 /* Peripheral clock disable */
585 __HAL_RCC_TIM11_CLK_DISABLE();
586 /* USER CODE BEGIN TIM11_MspDeInit 1 */
587
588 /* USER CODE END TIM11_MspDeInit 1 */
589 }
590
591 }
592
593 /**
594 * @brief UART MSP Initialization
595 * This function configures the hardware resources used in this example
596 * @param huart: UART handle pointer
597 * @retval None
598 */
HAL_UART_MspInit(UART_HandleTypeDef * huart)599 void HAL_UART_MspInit(UART_HandleTypeDef* huart)
600 {
601 GPIO_InitTypeDef GPIO_InitStruct = {0};
602 if(huart->Instance==USART1)
603 {
604 /* USER CODE BEGIN USART1_MspInit 0 */
605
606 /* USER CODE END USART1_MspInit 0 */
607 /* Peripheral clock enable */
608 __HAL_RCC_USART1_CLK_ENABLE();
609
610 __HAL_RCC_GPIOB_CLK_ENABLE();
611 __HAL_RCC_GPIOA_CLK_ENABLE();
612 /**USART1 GPIO Configuration
613 PB7 ------> USART1_RX
614 PA9 ------> USART1_TX
615 */
616 GPIO_InitStruct.Pin = GPIO_PIN_7;
617 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
618 GPIO_InitStruct.Pull = GPIO_PULLUP;
619 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
620 GPIO_InitStruct.Alternate = GPIO_AF7_USART1;
621 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
622
623 GPIO_InitStruct.Pin = GPIO_PIN_9;
624 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
625 GPIO_InitStruct.Pull = GPIO_PULLUP;
626 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
627 GPIO_InitStruct.Alternate = GPIO_AF7_USART1;
628 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
629
630 /* USER CODE BEGIN USART1_MspInit 1 */
631
632 /* USER CODE END USART1_MspInit 1 */
633 }
634
635 }
636
637 /**
638 * @brief UART MSP De-Initialization
639 * This function freeze the hardware resources used in this example
640 * @param huart: UART handle pointer
641 * @retval None
642 */
HAL_UART_MspDeInit(UART_HandleTypeDef * huart)643 void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
644 {
645 if(huart->Instance==USART1)
646 {
647 /* USER CODE BEGIN USART1_MspDeInit 0 */
648
649 /* USER CODE END USART1_MspDeInit 0 */
650 /* Peripheral clock disable */
651 __HAL_RCC_USART1_CLK_DISABLE();
652
653 /**USART1 GPIO Configuration
654 PB7 ------> USART1_RX
655 PA9 ------> USART1_TX
656 */
657 HAL_GPIO_DeInit(GPIOB, GPIO_PIN_7);
658
659 HAL_GPIO_DeInit(GPIOA, GPIO_PIN_9);
660
661 /* USER CODE BEGIN USART1_MspDeInit 1 */
662
663 /* USER CODE END USART1_MspDeInit 1 */
664 }
665
666 }
667
668 static uint32_t FMC_Initialized = 0;
669
HAL_FMC_MspInit(void)670 static void HAL_FMC_MspInit(void){
671 /* USER CODE BEGIN FMC_MspInit 0 */
672
673 /* USER CODE END FMC_MspInit 0 */
674 GPIO_InitTypeDef GPIO_InitStruct = {0};
675 if (FMC_Initialized) {
676 return;
677 }
678 FMC_Initialized = 1;
679 /* Peripheral clock enable */
680 __HAL_RCC_FMC_CLK_ENABLE();
681
682 /** FMC GPIO Configuration
683 PG15 ------> FMC_SDNCAS
684 PD0 ------> FMC_D2
685 PD1 ------> FMC_D3
686 PF0 ------> FMC_A0
687 PF1 ------> FMC_A1
688 PF2 ------> FMC_A2
689 PF3 ------> FMC_A3
690 PG8 ------> FMC_SDCLK
691 PF4 ------> FMC_A4
692 PH5 ------> FMC_SDNWE
693 PH3 ------> FMC_SDNE0
694 PF5 ------> FMC_A5
695 PD15 ------> FMC_D1
696 PD10 ------> FMC_D15
697 PC3 ------> FMC_SDCKE0
698 PD14 ------> FMC_D0
699 PD9 ------> FMC_D14
700 PD8 ------> FMC_D13
701 PF12 ------> FMC_A6
702 PF15 ------> FMC_A9
703 PF13 ------> FMC_A7
704 PG0 ------> FMC_A10
705 PE8 ------> FMC_D5
706 PG5 ------> FMC_BA1
707 PG4 ------> FMC_BA0
708 PF14 ------> FMC_A8
709 PF11 ------> FMC_SDNRAS
710 PE9 ------> FMC_D6
711 PE11 ------> FMC_D8
712 PE14 ------> FMC_D11
713 PE7 ------> FMC_D4
714 PE10 ------> FMC_D7
715 PE12 ------> FMC_D9
716 PE15 ------> FMC_D12
717 PE13 ------> FMC_D10
718 */
719 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
720 GPIO_InitStruct.Pull = GPIO_NOPULL;
721 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
722 GPIO_InitStruct.Alternate = GPIO_AF12_FMC;
723
724 GPIO_InitStruct.Pin = GPIO_PIN_3;
725 HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
726
727 GPIO_InitStruct.Pin = GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_8 | GPIO_PIN_9 |\
728 GPIO_PIN_10 | GPIO_PIN_14 | GPIO_PIN_15;
729 HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
730
731 GPIO_InitStruct.Pin = GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_7 | GPIO_PIN_8 | GPIO_PIN_9 |\
732 GPIO_PIN_10 | GPIO_PIN_11 | GPIO_PIN_12 | GPIO_PIN_13 | GPIO_PIN_14 |\
733 GPIO_PIN_15;
734 HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
735
736 GPIO_InitStruct.Pin = GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_3 | GPIO_PIN_4 |\
737 GPIO_PIN_5 | GPIO_PIN_11 | GPIO_PIN_12 | GPIO_PIN_13 | GPIO_PIN_14 |\
738 GPIO_PIN_15;
739 HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
740
741 GPIO_InitStruct.Pin = GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_4 | GPIO_PIN_5 | GPIO_PIN_8 | GPIO_PIN_15;
742 HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
743
744 GPIO_InitStruct.Pin = GPIO_PIN_3 | GPIO_PIN_5;
745 HAL_GPIO_Init(GPIOH, &GPIO_InitStruct);
746
747 /* USER CODE BEGIN FMC_MspInit 1 */
748
749 /* USER CODE END FMC_MspInit 1 */
750 }
751
HAL_SDRAM_MspInit(SDRAM_HandleTypeDef * hsdram)752 void HAL_SDRAM_MspInit(SDRAM_HandleTypeDef* hsdram){
753 /* USER CODE BEGIN SDRAM_MspInit 0 */
754
755 /* USER CODE END SDRAM_MspInit 0 */
756 HAL_FMC_MspInit();
757 /* USER CODE BEGIN SDRAM_MspInit 1 */
758
759 /* USER CODE END SDRAM_MspInit 1 */
760 }
761
762 static uint32_t FMC_DeInitialized = 0;
763
HAL_FMC_MspDeInit(void)764 static void HAL_FMC_MspDeInit(void){
765 /* USER CODE BEGIN FMC_MspDeInit 0 */
766
767 /* USER CODE END FMC_MspDeInit 0 */
768 if (FMC_DeInitialized) {
769 return;
770 }
771 FMC_DeInitialized = 1;
772 /* Peripheral clock enable */
773 __HAL_RCC_FMC_CLK_DISABLE();
774
775 /** FMC GPIO Configuration
776 PG15 ------> FMC_SDNCAS
777 PD0 ------> FMC_D2
778 PD1 ------> FMC_D3
779 PF0 ------> FMC_A0
780 PF1 ------> FMC_A1
781 PF2 ------> FMC_A2
782 PF3 ------> FMC_A3
783 PG8 ------> FMC_SDCLK
784 PF4 ------> FMC_A4
785 PH5 ------> FMC_SDNWE
786 PH3 ------> FMC_SDNE0
787 PF5 ------> FMC_A5
788 PD15 ------> FMC_D1
789 PD10 ------> FMC_D15
790 PC3 ------> FMC_SDCKE0
791 PD14 ------> FMC_D0
792 PD9 ------> FMC_D14
793 PD8 ------> FMC_D13
794 PF12 ------> FMC_A6
795 PF15 ------> FMC_A9
796 PF13 ------> FMC_A7
797 PG0 ------> FMC_A10
798 PE8 ------> FMC_D5
799 PG5 ------> FMC_BA1
800 PG4 ------> FMC_BA0
801 PF14 ------> FMC_A8
802 PF11 ------> FMC_SDNRAS
803 PE9 ------> FMC_D6
804 PE11 ------> FMC_D8
805 PE14 ------> FMC_D11
806 PE7 ------> FMC_D4
807 PE10 ------> FMC_D7
808 PE12 ------> FMC_D9
809 PE15 ------> FMC_D12
810 PE13 ------> FMC_D10
811 */
812 HAL_GPIO_DeInit(GPIOG, GPIO_PIN_15|GPIO_PIN_8|GPIO_PIN_0|GPIO_PIN_5
813 |GPIO_PIN_4);
814
815 HAL_GPIO_DeInit(GPIOD, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_15|GPIO_PIN_10
816 |GPIO_PIN_14|GPIO_PIN_9|GPIO_PIN_8);
817
818 HAL_GPIO_DeInit(GPIOF, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3
819 |GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_12|GPIO_PIN_15
820 |GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_11);
821
822 HAL_GPIO_DeInit(GPIOH, GPIO_PIN_5|GPIO_PIN_3);
823
824 HAL_GPIO_DeInit(GPIOC, GPIO_PIN_3);
825
826 HAL_GPIO_DeInit(GPIOE, GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_11|GPIO_PIN_14
827 |GPIO_PIN_7|GPIO_PIN_10|GPIO_PIN_12|GPIO_PIN_15
828 |GPIO_PIN_13);
829
830 /* USER CODE BEGIN FMC_MspDeInit 1 */
831
832 /* USER CODE END FMC_MspDeInit 1 */
833 }
834
HAL_SDRAM_MspDeInit(SDRAM_HandleTypeDef * hsdram)835 void HAL_SDRAM_MspDeInit(SDRAM_HandleTypeDef* hsdram){
836 /* USER CODE BEGIN SDRAM_MspDeInit 0 */
837
838 /* USER CODE END SDRAM_MspDeInit 0 */
839 HAL_FMC_MspDeInit();
840 /* USER CODE BEGIN SDRAM_MspDeInit 1 */
841
842 /* USER CODE END SDRAM_MspDeInit 1 */
843 }
844
845 /* USER CODE BEGIN 1 */
846
847 /* USER CODE END 1 */
848
849 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
850