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 * @attention
9 *
10 * <h2><center>© Copyright (c) 2019 STMicroelectronics.
11 * All rights reserved.</center></h2>
12 *
13 * This software component is licensed by ST under Ultimate Liberty license
14 * SLA0044, the "License"; You may not use this file except in compliance with
15 * the License. You may obtain a copy of the License at:
16 * www.st.com/SLA0044
17 *
18 ******************************************************************************
19 */
20 /* USER CODE END Header */
21
22 /* Includes ------------------------------------------------------------------*/
23 #include "main.h"
24 /* USER CODE BEGIN Includes */
25 #include <drv_common.h>
26 /* USER CODE END Includes */
27
28 /* Private typedef -----------------------------------------------------------*/
29 /* USER CODE BEGIN TD */
30
31 /* USER CODE END TD */
32
33 /* Private define ------------------------------------------------------------*/
34 /* USER CODE BEGIN Define */
35
36 /* USER CODE END Define */
37
38 /* Private macro -------------------------------------------------------------*/
39 /* USER CODE BEGIN Macro */
40
41 /* USER CODE END Macro */
42
43 /* Private variables ---------------------------------------------------------*/
44 /* USER CODE BEGIN PV */
45
46 /* USER CODE END PV */
47
48 /* Private function prototypes -----------------------------------------------*/
49 /* USER CODE BEGIN PFP */
50
51 /* USER CODE END PFP */
52
53 /* External functions --------------------------------------------------------*/
54 /* USER CODE BEGIN ExternalFunctions */
55
56 /* USER CODE END ExternalFunctions */
57
58 /* USER CODE BEGIN 0 */
59
60 /* USER CODE END 0 */
61 /**
62 * Initializes the Global MSP.
63 */
HAL_MspInit(void)64 void HAL_MspInit(void)
65 {
66 /* USER CODE BEGIN MspInit 0 */
67
68 /* USER CODE END MspInit 0 */
69
70 __HAL_RCC_SYSCFG_CLK_ENABLE();
71 __HAL_RCC_PWR_CLK_ENABLE();
72
73 /* System interrupt init*/
74 /* PendSV_IRQn interrupt configuration */
75 HAL_NVIC_SetPriority(PendSV_IRQn, 15, 0);
76
77 /* USER CODE BEGIN MspInit 1 */
78
79 /* USER CODE END MspInit 1 */
80 }
81
82 /**
83 * @brief CRC MSP Initialization
84 * This function configures the hardware resources used in this example
85 * @param hcrc: CRC handle pointer
86 * @retval None
87 */
HAL_CRC_MspInit(CRC_HandleTypeDef * hcrc)88 void HAL_CRC_MspInit(CRC_HandleTypeDef* hcrc)
89 {
90 if(hcrc->Instance==CRC)
91 {
92 /* USER CODE BEGIN CRC_MspInit 0 */
93
94 /* USER CODE END CRC_MspInit 0 */
95 /* Peripheral clock enable */
96 __HAL_RCC_CRC_CLK_ENABLE();
97 /* USER CODE BEGIN CRC_MspInit 1 */
98
99 /* USER CODE END CRC_MspInit 1 */
100 }
101
102 }
103
104 /**
105 * @brief CRC MSP De-Initialization
106 * This function freeze the hardware resources used in this example
107 * @param hcrc: CRC handle pointer
108 * @retval None
109 */
HAL_CRC_MspDeInit(CRC_HandleTypeDef * hcrc)110 void HAL_CRC_MspDeInit(CRC_HandleTypeDef* hcrc)
111 {
112 if(hcrc->Instance==CRC)
113 {
114 /* USER CODE BEGIN CRC_MspDeInit 0 */
115
116 /* USER CODE END CRC_MspDeInit 0 */
117 /* Peripheral clock disable */
118 __HAL_RCC_CRC_CLK_DISABLE();
119 /* USER CODE BEGIN CRC_MspDeInit 1 */
120
121 /* USER CODE END CRC_MspDeInit 1 */
122 }
123
124 }
125
126 /**
127 * @brief DMA2D MSP Initialization
128 * This function configures the hardware resources used in this example
129 * @param hdma2d: DMA2D handle pointer
130 * @retval None
131 */
HAL_DMA2D_MspInit(DMA2D_HandleTypeDef * hdma2d)132 void HAL_DMA2D_MspInit(DMA2D_HandleTypeDef* hdma2d)
133 {
134 if(hdma2d->Instance==DMA2D)
135 {
136 /* USER CODE BEGIN DMA2D_MspInit 0 */
137
138 /* USER CODE END DMA2D_MspInit 0 */
139 /* Peripheral clock enable */
140 __HAL_RCC_DMA2D_CLK_ENABLE();
141 /* DMA2D interrupt Init */
142 HAL_NVIC_SetPriority(DMA2D_IRQn, 5, 0);
143 HAL_NVIC_EnableIRQ(DMA2D_IRQn);
144 /* USER CODE BEGIN DMA2D_MspInit 1 */
145
146 /* USER CODE END DMA2D_MspInit 1 */
147 }
148
149 }
150
151 /**
152 * @brief DMA2D MSP De-Initialization
153 * This function freeze the hardware resources used in this example
154 * @param hdma2d: DMA2D handle pointer
155 * @retval None
156 */
HAL_DMA2D_MspDeInit(DMA2D_HandleTypeDef * hdma2d)157 void HAL_DMA2D_MspDeInit(DMA2D_HandleTypeDef* hdma2d)
158 {
159 if(hdma2d->Instance==DMA2D)
160 {
161 /* USER CODE BEGIN DMA2D_MspDeInit 0 */
162
163 /* USER CODE END DMA2D_MspDeInit 0 */
164 /* Peripheral clock disable */
165 __HAL_RCC_DMA2D_CLK_DISABLE();
166
167 /* DMA2D interrupt DeInit */
168 HAL_NVIC_DisableIRQ(DMA2D_IRQn);
169 /* USER CODE BEGIN DMA2D_MspDeInit 1 */
170
171 /* USER CODE END DMA2D_MspDeInit 1 */
172 }
173
174 }
175
176 /**
177 * @brief I2C MSP Initialization
178 * This function configures the hardware resources used in this example
179 * @param hi2c: I2C handle pointer
180 * @retval None
181 */
HAL_I2C_MspInit(I2C_HandleTypeDef * hi2c)182 void HAL_I2C_MspInit(I2C_HandleTypeDef* hi2c)
183 {
184 GPIO_InitTypeDef GPIO_InitStruct = {0};
185 if(hi2c->Instance==I2C3)
186 {
187 /* USER CODE BEGIN I2C3_MspInit 0 */
188
189 /* USER CODE END I2C3_MspInit 0 */
190
191 __HAL_RCC_GPIOC_CLK_ENABLE();
192 __HAL_RCC_GPIOA_CLK_ENABLE();
193 /**I2C3 GPIO Configuration
194 PC9 ------> I2C3_SDA
195 PA8 ------> I2C3_SCL
196 */
197 GPIO_InitStruct.Pin = I2C3_SDA_Pin;
198 GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
199 GPIO_InitStruct.Pull = GPIO_PULLUP;
200 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
201 GPIO_InitStruct.Alternate = GPIO_AF4_I2C3;
202 HAL_GPIO_Init(I2C3_SDA_GPIO_Port, &GPIO_InitStruct);
203
204 GPIO_InitStruct.Pin = I2C3_SCL_Pin;
205 GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
206 GPIO_InitStruct.Pull = GPIO_PULLUP;
207 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
208 GPIO_InitStruct.Alternate = GPIO_AF4_I2C3;
209 HAL_GPIO_Init(I2C3_SCL_GPIO_Port, &GPIO_InitStruct);
210
211 /* Peripheral clock enable */
212 __HAL_RCC_I2C3_CLK_ENABLE();
213 /* USER CODE BEGIN I2C3_MspInit 1 */
214
215 /* USER CODE END I2C3_MspInit 1 */
216 }
217
218 }
219
220 /**
221 * @brief I2C MSP De-Initialization
222 * This function freeze the hardware resources used in this example
223 * @param hi2c: I2C handle pointer
224 * @retval None
225 */
HAL_I2C_MspDeInit(I2C_HandleTypeDef * hi2c)226 void HAL_I2C_MspDeInit(I2C_HandleTypeDef* hi2c)
227 {
228 if(hi2c->Instance==I2C3)
229 {
230 /* USER CODE BEGIN I2C3_MspDeInit 0 */
231
232 /* USER CODE END I2C3_MspDeInit 0 */
233 /* Peripheral clock disable */
234 __HAL_RCC_I2C3_CLK_DISABLE();
235
236 /**I2C3 GPIO Configuration
237 PC9 ------> I2C3_SDA
238 PA8 ------> I2C3_SCL
239 */
240 HAL_GPIO_DeInit(I2C3_SDA_GPIO_Port, I2C3_SDA_Pin);
241
242 HAL_GPIO_DeInit(I2C3_SCL_GPIO_Port, I2C3_SCL_Pin);
243
244 /* USER CODE BEGIN I2C3_MspDeInit 1 */
245
246 /* USER CODE END I2C3_MspDeInit 1 */
247 }
248
249 }
250
251 /**
252 * @brief LTDC MSP Initialization
253 * This function configures the hardware resources used in this example
254 * @param hltdc: LTDC handle pointer
255 * @retval None
256 */
HAL_LTDC_MspInit(LTDC_HandleTypeDef * hltdc)257 void HAL_LTDC_MspInit(LTDC_HandleTypeDef* hltdc)
258 {
259 GPIO_InitTypeDef GPIO_InitStruct = {0};
260 if(hltdc->Instance==LTDC)
261 {
262 /* USER CODE BEGIN LTDC_MspInit 0 */
263
264 /* USER CODE END LTDC_MspInit 0 */
265 /* Peripheral clock enable */
266 __HAL_RCC_LTDC_CLK_ENABLE();
267
268 __HAL_RCC_GPIOF_CLK_ENABLE();
269 __HAL_RCC_GPIOA_CLK_ENABLE();
270 __HAL_RCC_GPIOB_CLK_ENABLE();
271 __HAL_RCC_GPIOG_CLK_ENABLE();
272 __HAL_RCC_GPIOC_CLK_ENABLE();
273 __HAL_RCC_GPIOD_CLK_ENABLE();
274 /**LTDC GPIO Configuration
275 PF10 ------> LTDC_DE
276 PA3 ------> LTDC_B5
277 PA4 ------> LTDC_VSYNC
278 PA6 ------> LTDC_G2
279 PB0 ------> LTDC_R3
280 PB1 ------> LTDC_R6
281 PB10 ------> LTDC_G4
282 PB11 ------> LTDC_G5
283 PG6 ------> LTDC_R7
284 PG7 ------> LTDC_CLK
285 PC6 ------> LTDC_HSYNC
286 PC7 ------> LTDC_G6
287 PA11 ------> LTDC_R4
288 PA12 ------> LTDC_R5
289 PC10 ------> LTDC_R2
290 PD3 ------> LTDC_G7
291 PD6 ------> LTDC_B2
292 PG10 ------> LTDC_G3
293 PG11 ------> LTDC_B3
294 PG12 ------> LTDC_B4
295 PB8 ------> LTDC_B6
296 PB9 ------> LTDC_B7
297 */
298 GPIO_InitStruct.Pin = ENABLE_Pin;
299 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
300 GPIO_InitStruct.Pull = GPIO_NOPULL;
301 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
302 GPIO_InitStruct.Alternate = GPIO_AF14_LTDC;
303 HAL_GPIO_Init(ENABLE_GPIO_Port, &GPIO_InitStruct);
304
305 GPIO_InitStruct.Pin = B5_Pin|VSYNC_Pin|G2_Pin|R4_Pin
306 |R5_Pin;
307 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
308 GPIO_InitStruct.Pull = GPIO_NOPULL;
309 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
310 GPIO_InitStruct.Alternate = GPIO_AF14_LTDC;
311 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
312
313 GPIO_InitStruct.Pin = R3_Pin|R6_Pin;
314 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
315 GPIO_InitStruct.Pull = GPIO_NOPULL;
316 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
317 GPIO_InitStruct.Alternate = GPIO_AF9_LTDC;
318 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
319
320 GPIO_InitStruct.Pin = G4_Pin|G5_Pin|B6_Pin|B7_Pin;
321 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
322 GPIO_InitStruct.Pull = GPIO_NOPULL;
323 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
324 GPIO_InitStruct.Alternate = GPIO_AF14_LTDC;
325 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
326
327 GPIO_InitStruct.Pin = R7_Pin|DOTCLK_Pin|B3_Pin;
328 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
329 GPIO_InitStruct.Pull = GPIO_NOPULL;
330 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
331 GPIO_InitStruct.Alternate = GPIO_AF14_LTDC;
332 HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
333
334 GPIO_InitStruct.Pin = HSYNC_Pin|G6_Pin|R2_Pin;
335 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
336 GPIO_InitStruct.Pull = GPIO_NOPULL;
337 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
338 GPIO_InitStruct.Alternate = GPIO_AF14_LTDC;
339 HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
340
341 GPIO_InitStruct.Pin = G7_Pin|B2_Pin;
342 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
343 GPIO_InitStruct.Pull = GPIO_NOPULL;
344 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
345 GPIO_InitStruct.Alternate = GPIO_AF14_LTDC;
346 HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
347
348 GPIO_InitStruct.Pin = G3_Pin|B4_Pin;
349 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
350 GPIO_InitStruct.Pull = GPIO_NOPULL;
351 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
352 GPIO_InitStruct.Alternate = GPIO_AF9_LTDC;
353 HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
354
355 /* LTDC interrupt Init */
356 HAL_NVIC_SetPriority(LTDC_IRQn, 5, 0);
357 HAL_NVIC_EnableIRQ(LTDC_IRQn);
358 /* USER CODE BEGIN LTDC_MspInit 1 */
359
360 /* USER CODE END LTDC_MspInit 1 */
361 }
362
363 }
364
365 /**
366 * @brief LTDC MSP De-Initialization
367 * This function freeze the hardware resources used in this example
368 * @param hltdc: LTDC handle pointer
369 * @retval None
370 */
HAL_LTDC_MspDeInit(LTDC_HandleTypeDef * hltdc)371 void HAL_LTDC_MspDeInit(LTDC_HandleTypeDef* hltdc)
372 {
373 if(hltdc->Instance==LTDC)
374 {
375 /* USER CODE BEGIN LTDC_MspDeInit 0 */
376
377 /* USER CODE END LTDC_MspDeInit 0 */
378 /* Peripheral clock disable */
379 __HAL_RCC_LTDC_CLK_DISABLE();
380
381 /**LTDC GPIO Configuration
382 PF10 ------> LTDC_DE
383 PA3 ------> LTDC_B5
384 PA4 ------> LTDC_VSYNC
385 PA6 ------> LTDC_G2
386 PB0 ------> LTDC_R3
387 PB1 ------> LTDC_R6
388 PB10 ------> LTDC_G4
389 PB11 ------> LTDC_G5
390 PG6 ------> LTDC_R7
391 PG7 ------> LTDC_CLK
392 PC6 ------> LTDC_HSYNC
393 PC7 ------> LTDC_G6
394 PA11 ------> LTDC_R4
395 PA12 ------> LTDC_R5
396 PC10 ------> LTDC_R2
397 PD3 ------> LTDC_G7
398 PD6 ------> LTDC_B2
399 PG10 ------> LTDC_G3
400 PG11 ------> LTDC_B3
401 PG12 ------> LTDC_B4
402 PB8 ------> LTDC_B6
403 PB9 ------> LTDC_B7
404 */
405 HAL_GPIO_DeInit(ENABLE_GPIO_Port, ENABLE_Pin);
406
407 HAL_GPIO_DeInit(GPIOA, B5_Pin|VSYNC_Pin|G2_Pin|R4_Pin
408 |R5_Pin);
409
410 HAL_GPIO_DeInit(GPIOB, R3_Pin|R6_Pin|G4_Pin|G5_Pin
411 |B6_Pin|B7_Pin);
412
413 HAL_GPIO_DeInit(GPIOG, R7_Pin|DOTCLK_Pin|G3_Pin|B3_Pin
414 |B4_Pin);
415
416 HAL_GPIO_DeInit(GPIOC, HSYNC_Pin|G6_Pin|R2_Pin);
417
418 HAL_GPIO_DeInit(GPIOD, G7_Pin|B2_Pin);
419
420 /* LTDC interrupt DeInit */
421 HAL_NVIC_DisableIRQ(LTDC_IRQn);
422 /* USER CODE BEGIN LTDC_MspDeInit 1 */
423
424 /* USER CODE END LTDC_MspDeInit 1 */
425 }
426
427 }
428
429 /**
430 * @brief SPI MSP Initialization
431 * This function configures the hardware resources used in this example
432 * @param hspi: SPI handle pointer
433 * @retval None
434 */
HAL_SPI_MspInit(SPI_HandleTypeDef * hspi)435 void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi)
436 {
437 GPIO_InitTypeDef GPIO_InitStruct = {0};
438 if(hspi->Instance==SPI5)
439 {
440 /* USER CODE BEGIN SPI5_MspInit 0 */
441
442 /* USER CODE END SPI5_MspInit 0 */
443 /* Peripheral clock enable */
444 __HAL_RCC_SPI5_CLK_ENABLE();
445
446 __HAL_RCC_GPIOF_CLK_ENABLE();
447 /**SPI5 GPIO Configuration
448 PF7 ------> SPI5_SCK
449 PF8 ------> SPI5_MISO
450 PF9 ------> SPI5_MOSI
451 */
452 GPIO_InitStruct.Pin = SPI5_SCK_Pin|SPI5_MISO_Pin|SPI5_MOSI_Pin;
453 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
454 GPIO_InitStruct.Pull = GPIO_NOPULL;
455 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
456 GPIO_InitStruct.Alternate = GPIO_AF5_SPI5;
457 HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
458
459 /* USER CODE BEGIN SPI5_MspInit 1 */
460
461 /* USER CODE END SPI5_MspInit 1 */
462 }
463
464 }
465
466 /**
467 * @brief SPI MSP De-Initialization
468 * This function freeze the hardware resources used in this example
469 * @param hspi: SPI handle pointer
470 * @retval None
471 */
HAL_SPI_MspDeInit(SPI_HandleTypeDef * hspi)472 void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi)
473 {
474 if(hspi->Instance==SPI5)
475 {
476 /* USER CODE BEGIN SPI5_MspDeInit 0 */
477
478 /* USER CODE END SPI5_MspDeInit 0 */
479 /* Peripheral clock disable */
480 __HAL_RCC_SPI5_CLK_DISABLE();
481
482 /**SPI5 GPIO Configuration
483 PF7 ------> SPI5_SCK
484 PF8 ------> SPI5_MISO
485 PF9 ------> SPI5_MOSI
486 */
487 HAL_GPIO_DeInit(GPIOF, SPI5_SCK_Pin|SPI5_MISO_Pin|SPI5_MOSI_Pin);
488
489 /* USER CODE BEGIN SPI5_MspDeInit 1 */
490
491 /* USER CODE END SPI5_MspDeInit 1 */
492 }
493
494 }
495
496 /**
497 * @brief TIM_Base MSP Initialization
498 * This function configures the hardware resources used in this example
499 * @param htim_base: TIM_Base handle pointer
500 * @retval None
501 */
HAL_TIM_Base_MspInit(TIM_HandleTypeDef * htim_base)502 void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
503 {
504 if(htim_base->Instance==TIM1)
505 {
506 /* USER CODE BEGIN TIM1_MspInit 0 */
507
508 /* USER CODE END TIM1_MspInit 0 */
509 /* Peripheral clock enable */
510 __HAL_RCC_TIM1_CLK_ENABLE();
511 /* USER CODE BEGIN TIM1_MspInit 1 */
512
513 /* USER CODE END TIM1_MspInit 1 */
514 }
515
516 }
517
518 /**
519 * @brief TIM_Base MSP De-Initialization
520 * This function freeze the hardware resources used in this example
521 * @param htim_base: TIM_Base handle pointer
522 * @retval None
523 */
HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef * htim_base)524 void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base)
525 {
526 if(htim_base->Instance==TIM1)
527 {
528 /* USER CODE BEGIN TIM1_MspDeInit 0 */
529
530 /* USER CODE END TIM1_MspDeInit 0 */
531 /* Peripheral clock disable */
532 __HAL_RCC_TIM1_CLK_DISABLE();
533 /* USER CODE BEGIN TIM1_MspDeInit 1 */
534
535 /* USER CODE END TIM1_MspDeInit 1 */
536 }
537
538 }
539
540 /**
541 * @brief UART MSP Initialization
542 * This function configures the hardware resources used in this example
543 * @param huart: UART handle pointer
544 * @retval None
545 */
HAL_UART_MspInit(UART_HandleTypeDef * huart)546 void HAL_UART_MspInit(UART_HandleTypeDef* huart)
547 {
548 GPIO_InitTypeDef GPIO_InitStruct = {0};
549 if(huart->Instance==USART1)
550 {
551 /* USER CODE BEGIN USART1_MspInit 0 */
552
553 /* USER CODE END USART1_MspInit 0 */
554 /* Peripheral clock enable */
555 __HAL_RCC_USART1_CLK_ENABLE();
556
557 __HAL_RCC_GPIOA_CLK_ENABLE();
558 /**USART1 GPIO Configuration
559 PA9 ------> USART1_TX
560 PA10 ------> USART1_RX
561 */
562 GPIO_InitStruct.Pin = STLINK_RX_Pin|STLINK_TX_Pin;
563 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
564 GPIO_InitStruct.Pull = GPIO_PULLUP;
565 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
566 GPIO_InitStruct.Alternate = GPIO_AF7_USART1;
567 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
568
569 /* USER CODE BEGIN USART1_MspInit 1 */
570
571 /* USER CODE END USART1_MspInit 1 */
572 }
573
574 }
575
576 /**
577 * @brief UART MSP De-Initialization
578 * This function freeze the hardware resources used in this example
579 * @param huart: UART handle pointer
580 * @retval None
581 */
HAL_UART_MspDeInit(UART_HandleTypeDef * huart)582 void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
583 {
584 if(huart->Instance==USART1)
585 {
586 /* USER CODE BEGIN USART1_MspDeInit 0 */
587
588 /* USER CODE END USART1_MspDeInit 0 */
589 /* Peripheral clock disable */
590 __HAL_RCC_USART1_CLK_DISABLE();
591
592 /**USART1 GPIO Configuration
593 PA9 ------> USART1_TX
594 PA10 ------> USART1_RX
595 */
596 HAL_GPIO_DeInit(GPIOA, STLINK_RX_Pin|STLINK_TX_Pin);
597
598 /* USER CODE BEGIN USART1_MspDeInit 1 */
599
600 /* USER CODE END USART1_MspDeInit 1 */
601 }
602
603 }
604
605 static uint32_t FMC_Initialized = 0;
606
HAL_FMC_MspInit(void)607 static void HAL_FMC_MspInit(void){
608 /* USER CODE BEGIN FMC_MspInit 0 */
609
610 /* USER CODE END FMC_MspInit 0 */
611 GPIO_InitTypeDef GPIO_InitStruct ={0};
612 if (FMC_Initialized) {
613 return;
614 }
615 FMC_Initialized = 1;
616 /* Peripheral clock enable */
617 __HAL_RCC_FMC_CLK_ENABLE();
618
619 /** FMC GPIO Configuration
620 PF0 ------> FMC_A0
621 PF1 ------> FMC_A1
622 PF2 ------> FMC_A2
623 PF3 ------> FMC_A3
624 PF4 ------> FMC_A4
625 PF5 ------> FMC_A5
626 PC0 ------> FMC_SDNWE
627 PF11 ------> FMC_SDNRAS
628 PF12 ------> FMC_A6
629 PF13 ------> FMC_A7
630 PF14 ------> FMC_A8
631 PF15 ------> FMC_A9
632 PG0 ------> FMC_A10
633 PG1 ------> FMC_A11
634 PE7 ------> FMC_D4
635 PE8 ------> FMC_D5
636 PE9 ------> FMC_D6
637 PE10 ------> FMC_D7
638 PE11 ------> FMC_D8
639 PE12 ------> FMC_D9
640 PE13 ------> FMC_D10
641 PE14 ------> FMC_D11
642 PE15 ------> FMC_D12
643 PD8 ------> FMC_D13
644 PD9 ------> FMC_D14
645 PD10 ------> FMC_D15
646 PD14 ------> FMC_D0
647 PD15 ------> FMC_D1
648 PG4 ------> FMC_BA0
649 PG5 ------> FMC_BA1
650 PG8 ------> FMC_SDCLK
651 PD0 ------> FMC_D2
652 PD1 ------> FMC_D3
653 PG15 ------> FMC_SDNCAS
654 PB5 ------> FMC_SDCKE1
655 PB6 ------> FMC_SDNE1
656 PE0 ------> FMC_NBL0
657 PE1 ------> FMC_NBL1
658 */
659 GPIO_InitStruct.Pin = A0_Pin|A1_Pin|A2_Pin|A3_Pin
660 |A4_Pin|A5_Pin|SDNRAS_Pin|A6_Pin
661 |A7_Pin|A8_Pin|A9_Pin;
662 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
663 GPIO_InitStruct.Pull = GPIO_NOPULL;
664 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
665 GPIO_InitStruct.Alternate = GPIO_AF12_FMC;
666 HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
667
668 GPIO_InitStruct.Pin = SDNWE_Pin;
669 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
670 GPIO_InitStruct.Pull = GPIO_NOPULL;
671 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
672 GPIO_InitStruct.Alternate = GPIO_AF12_FMC;
673 HAL_GPIO_Init(SDNWE_GPIO_Port, &GPIO_InitStruct);
674
675 GPIO_InitStruct.Pin = A10_Pin|A11_Pin|BA0_Pin|BA1_Pin
676 |SDCLK_Pin|SDNCAS_Pin;
677 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
678 GPIO_InitStruct.Pull = GPIO_NOPULL;
679 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
680 GPIO_InitStruct.Alternate = GPIO_AF12_FMC;
681 HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
682
683 GPIO_InitStruct.Pin = D4_Pin|D5_Pin|D6_Pin|D7_Pin
684 |D8_Pin|D9_Pin|D10_Pin|D11_Pin
685 |D12_Pin|NBL0_Pin|NBL1_Pin;
686 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
687 GPIO_InitStruct.Pull = GPIO_NOPULL;
688 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
689 GPIO_InitStruct.Alternate = GPIO_AF12_FMC;
690 HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
691
692 GPIO_InitStruct.Pin = D13_Pin|D14_Pin|D15_Pin|D0_Pin
693 |D1_Pin|D2_Pin|D3_Pin;
694 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
695 GPIO_InitStruct.Pull = GPIO_NOPULL;
696 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
697 GPIO_InitStruct.Alternate = GPIO_AF12_FMC;
698 HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
699
700 GPIO_InitStruct.Pin = SDCKE1_Pin|SDNE1_Pin;
701 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
702 GPIO_InitStruct.Pull = GPIO_NOPULL;
703 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
704 GPIO_InitStruct.Alternate = GPIO_AF12_FMC;
705 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
706
707 /* USER CODE BEGIN FMC_MspInit 1 */
708
709 /* USER CODE END FMC_MspInit 1 */
710 }
711
HAL_SDRAM_MspInit(SDRAM_HandleTypeDef * hsdram)712 void HAL_SDRAM_MspInit(SDRAM_HandleTypeDef* hsdram){
713 /* USER CODE BEGIN SDRAM_MspInit 0 */
714
715 /* USER CODE END SDRAM_MspInit 0 */
716 HAL_FMC_MspInit();
717 /* USER CODE BEGIN SDRAM_MspInit 1 */
718
719 /* USER CODE END SDRAM_MspInit 1 */
720 }
721
722 static uint32_t FMC_DeInitialized = 0;
723
HAL_FMC_MspDeInit(void)724 static void HAL_FMC_MspDeInit(void){
725 /* USER CODE BEGIN FMC_MspDeInit 0 */
726
727 /* USER CODE END FMC_MspDeInit 0 */
728 if (FMC_DeInitialized) {
729 return;
730 }
731 FMC_DeInitialized = 1;
732 /* Peripheral clock enable */
733 __HAL_RCC_FMC_CLK_DISABLE();
734
735 /** FMC GPIO Configuration
736 PF0 ------> FMC_A0
737 PF1 ------> FMC_A1
738 PF2 ------> FMC_A2
739 PF3 ------> FMC_A3
740 PF4 ------> FMC_A4
741 PF5 ------> FMC_A5
742 PC0 ------> FMC_SDNWE
743 PF11 ------> FMC_SDNRAS
744 PF12 ------> FMC_A6
745 PF13 ------> FMC_A7
746 PF14 ------> FMC_A8
747 PF15 ------> FMC_A9
748 PG0 ------> FMC_A10
749 PG1 ------> FMC_A11
750 PE7 ------> FMC_D4
751 PE8 ------> FMC_D5
752 PE9 ------> FMC_D6
753 PE10 ------> FMC_D7
754 PE11 ------> FMC_D8
755 PE12 ------> FMC_D9
756 PE13 ------> FMC_D10
757 PE14 ------> FMC_D11
758 PE15 ------> FMC_D12
759 PD8 ------> FMC_D13
760 PD9 ------> FMC_D14
761 PD10 ------> FMC_D15
762 PD14 ------> FMC_D0
763 PD15 ------> FMC_D1
764 PG4 ------> FMC_BA0
765 PG5 ------> FMC_BA1
766 PG8 ------> FMC_SDCLK
767 PD0 ------> FMC_D2
768 PD1 ------> FMC_D3
769 PG15 ------> FMC_SDNCAS
770 PB5 ------> FMC_SDCKE1
771 PB6 ------> FMC_SDNE1
772 PE0 ------> FMC_NBL0
773 PE1 ------> FMC_NBL1
774 */
775 HAL_GPIO_DeInit(GPIOF, A0_Pin|A1_Pin|A2_Pin|A3_Pin
776 |A4_Pin|A5_Pin|SDNRAS_Pin|A6_Pin
777 |A7_Pin|A8_Pin|A9_Pin);
778
779 HAL_GPIO_DeInit(SDNWE_GPIO_Port, SDNWE_Pin);
780
781 HAL_GPIO_DeInit(GPIOG, A10_Pin|A11_Pin|BA0_Pin|BA1_Pin
782 |SDCLK_Pin|SDNCAS_Pin);
783
784 HAL_GPIO_DeInit(GPIOE, D4_Pin|D5_Pin|D6_Pin|D7_Pin
785 |D8_Pin|D9_Pin|D10_Pin|D11_Pin
786 |D12_Pin|NBL0_Pin|NBL1_Pin);
787
788 HAL_GPIO_DeInit(GPIOD, D13_Pin|D14_Pin|D15_Pin|D0_Pin
789 |D1_Pin|D2_Pin|D3_Pin);
790
791 HAL_GPIO_DeInit(GPIOB, SDCKE1_Pin|SDNE1_Pin);
792
793 /* USER CODE BEGIN FMC_MspDeInit 1 */
794
795 /* USER CODE END FMC_MspDeInit 1 */
796 }
797
HAL_SDRAM_MspDeInit(SDRAM_HandleTypeDef * hsdram)798 void HAL_SDRAM_MspDeInit(SDRAM_HandleTypeDef* hsdram){
799 /* USER CODE BEGIN SDRAM_MspDeInit 0 */
800
801 /* USER CODE END SDRAM_MspDeInit 0 */
802 HAL_FMC_MspDeInit();
803 /* USER CODE BEGIN SDRAM_MspDeInit 1 */
804
805 /* USER CODE END SDRAM_MspDeInit 1 */
806 }
807
808 /* USER CODE BEGIN 1 */
809
810 /* USER CODE END 1 */
811
812 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
813