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>&copy; Copyright (c) 2019 STMicroelectronics.
11   * All rights reserved.</center></h2>
12   *
13   * This software component is licensed by ST under BSD 3-Clause license,
14   * the "License"; You may not use this file except in compliance with the
15   * License. You may obtain a copy of the License at:
16   *                        opensource.org/licenses/BSD-3-Clause
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 void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim);
63   /**
64   * Initializes the Global MSP.
65   */
HAL_MspInit(void)66 void HAL_MspInit(void)
67 {
68   /* USER CODE BEGIN MspInit 0 */
69 
70   /* USER CODE END MspInit 0 */
71 
72   __HAL_RCC_SYSCFG_CLK_ENABLE();
73   __HAL_RCC_PWR_CLK_ENABLE();
74 
75   /* System interrupt init*/
76 
77   /* USER CODE BEGIN MspInit 1 */
78 
79   /* USER CODE END MspInit 1 */
80 }
81 
82 /**
83 * @brief ADC MSP Initialization
84 * This function configures the hardware resources used in this example
85 * @param hadc: ADC handle pointer
86 * @retval None
87 */
HAL_ADC_MspInit(ADC_HandleTypeDef * hadc)88 void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc)
89 {
90   GPIO_InitTypeDef GPIO_InitStruct = {0};
91   if(hadc->Instance==ADC1)
92   {
93   /* USER CODE BEGIN ADC1_MspInit 0 */
94 
95   /* USER CODE END ADC1_MspInit 0 */
96     /* Peripheral clock enable */
97     __HAL_RCC_ADC1_CLK_ENABLE();
98 
99     __HAL_RCC_GPIOC_CLK_ENABLE();
100     __HAL_RCC_GPIOA_CLK_ENABLE();
101     __HAL_RCC_GPIOB_CLK_ENABLE();
102     /**ADC1 GPIO Configuration
103     PC3     ------> ADC1_IN13
104     PC2     ------> ADC1_IN12
105     PA4     ------> ADC1_IN4
106     PC4     ------> ADC1_IN14
107     PC5     ------> ADC1_IN15
108     PB1     ------> ADC1_IN9
109     */
110     GPIO_InitStruct.Pin = GPIO_PIN_3|GPIO_PIN_2|GPIO_PIN_4|GPIO_PIN_5;
111     GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
112     GPIO_InitStruct.Pull = GPIO_NOPULL;
113     HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
114 
115     GPIO_InitStruct.Pin = GPIO_PIN_4;
116     GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
117     GPIO_InitStruct.Pull = GPIO_NOPULL;
118     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
119 
120     GPIO_InitStruct.Pin = GPIO_PIN_1;
121     GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
122     GPIO_InitStruct.Pull = GPIO_NOPULL;
123     HAL_GPIO_Init(GPIOB, &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_ADC1_CLK_DISABLE();
147 
148     /**ADC1 GPIO Configuration
149     PC3     ------> ADC1_IN13
150     PC2     ------> ADC1_IN12
151     PA4     ------> ADC1_IN4
152     PC4     ------> ADC1_IN14
153     PC5     ------> ADC1_IN15
154     PB1     ------> ADC1_IN9
155     */
156     HAL_GPIO_DeInit(GPIOC, GPIO_PIN_3|GPIO_PIN_2|GPIO_PIN_4|GPIO_PIN_5);
157 
158     HAL_GPIO_DeInit(GPIOA, GPIO_PIN_4);
159 
160     HAL_GPIO_DeInit(GPIOB, GPIO_PIN_1);
161 
162   /* USER CODE BEGIN ADC1_MspDeInit 1 */
163 
164   /* USER CODE END ADC1_MspDeInit 1 */
165   }
166 
167 }
168 
169 /**
170 * @brief CRC MSP Initialization
171 * This function configures the hardware resources used in this example
172 * @param hcrc: CRC handle pointer
173 * @retval None
174 */
HAL_CRC_MspInit(CRC_HandleTypeDef * hcrc)175 void HAL_CRC_MspInit(CRC_HandleTypeDef* hcrc)
176 {
177   if(hcrc->Instance==CRC)
178   {
179   /* USER CODE BEGIN CRC_MspInit 0 */
180 
181   /* USER CODE END CRC_MspInit 0 */
182     /* Peripheral clock enable */
183     __HAL_RCC_CRC_CLK_ENABLE();
184   /* USER CODE BEGIN CRC_MspInit 1 */
185 
186   /* USER CODE END CRC_MspInit 1 */
187   }
188 
189 }
190 
191 /**
192 * @brief CRC MSP De-Initialization
193 * This function freeze the hardware resources used in this example
194 * @param hcrc: CRC handle pointer
195 * @retval None
196 */
HAL_CRC_MspDeInit(CRC_HandleTypeDef * hcrc)197 void HAL_CRC_MspDeInit(CRC_HandleTypeDef* hcrc)
198 {
199   if(hcrc->Instance==CRC)
200   {
201   /* USER CODE BEGIN CRC_MspDeInit 0 */
202 
203   /* USER CODE END CRC_MspDeInit 0 */
204     /* Peripheral clock disable */
205     __HAL_RCC_CRC_CLK_DISABLE();
206   /* USER CODE BEGIN CRC_MspDeInit 1 */
207 
208   /* USER CODE END CRC_MspDeInit 1 */
209   }
210 
211 }
212 
213 /**
214 * @brief DMA2D MSP Initialization
215 * This function configures the hardware resources used in this example
216 * @param hdma2d: DMA2D handle pointer
217 * @retval None
218 */
HAL_DMA2D_MspInit(DMA2D_HandleTypeDef * hdma2d)219 void HAL_DMA2D_MspInit(DMA2D_HandleTypeDef* hdma2d)
220 {
221   if(hdma2d->Instance==DMA2D)
222   {
223   /* USER CODE BEGIN DMA2D_MspInit 0 */
224 
225   /* USER CODE END DMA2D_MspInit 0 */
226     /* Peripheral clock enable */
227     __HAL_RCC_DMA2D_CLK_ENABLE();
228   /* USER CODE BEGIN DMA2D_MspInit 1 */
229 
230   /* USER CODE END DMA2D_MspInit 1 */
231   }
232 
233 }
234 
235 /**
236 * @brief DMA2D MSP De-Initialization
237 * This function freeze the hardware resources used in this example
238 * @param hdma2d: DMA2D handle pointer
239 * @retval None
240 */
HAL_DMA2D_MspDeInit(DMA2D_HandleTypeDef * hdma2d)241 void HAL_DMA2D_MspDeInit(DMA2D_HandleTypeDef* hdma2d)
242 {
243   if(hdma2d->Instance==DMA2D)
244   {
245   /* USER CODE BEGIN DMA2D_MspDeInit 0 */
246 
247   /* USER CODE END DMA2D_MspDeInit 0 */
248     /* Peripheral clock disable */
249     __HAL_RCC_DMA2D_CLK_DISABLE();
250   /* USER CODE BEGIN DMA2D_MspDeInit 1 */
251 
252   /* USER CODE END DMA2D_MspDeInit 1 */
253   }
254 
255 }
256 
257 /**
258 * @brief DSI MSP Initialization
259 * This function configures the hardware resources used in this example
260 * @param hdsi: DSI handle pointer
261 * @retval None
262 */
HAL_DSI_MspInit(DSI_HandleTypeDef * hdsi)263 void HAL_DSI_MspInit(DSI_HandleTypeDef* hdsi)
264 {
265   if(hdsi->Instance==DSI)
266   {
267   /* USER CODE BEGIN DSI_MspInit 0 */
268 
269   /* USER CODE END DSI_MspInit 0 */
270     /* Peripheral clock enable */
271     __HAL_RCC_DSI_CLK_ENABLE();
272   /* USER CODE BEGIN DSI_MspInit 1 */
273 
274   /* USER CODE END DSI_MspInit 1 */
275   }
276 
277 }
278 
279 /**
280 * @brief DSI MSP De-Initialization
281 * This function freeze the hardware resources used in this example
282 * @param hdsi: DSI handle pointer
283 * @retval None
284 */
HAL_DSI_MspDeInit(DSI_HandleTypeDef * hdsi)285 void HAL_DSI_MspDeInit(DSI_HandleTypeDef* hdsi)
286 {
287   if(hdsi->Instance==DSI)
288   {
289   /* USER CODE BEGIN DSI_MspDeInit 0 */
290 
291   /* USER CODE END DSI_MspDeInit 0 */
292     /* Peripheral clock disable */
293     __HAL_RCC_DSI_CLK_DISABLE();
294   /* USER CODE BEGIN DSI_MspDeInit 1 */
295 
296   /* USER CODE END DSI_MspDeInit 1 */
297   }
298 
299 }
300 
301 /**
302 * @brief I2S MSP Initialization
303 * This function configures the hardware resources used in this example
304 * @param hi2s: I2S handle pointer
305 * @retval None
306 */
HAL_I2S_MspInit(I2S_HandleTypeDef * hi2s)307 void HAL_I2S_MspInit(I2S_HandleTypeDef* hi2s)
308 {
309   GPIO_InitTypeDef GPIO_InitStruct = {0};
310   if(hi2s->Instance==SPI3)
311   {
312   /* USER CODE BEGIN SPI3_MspInit 0 */
313 
314   /* USER CODE END SPI3_MspInit 0 */
315     /* Peripheral clock enable */
316     __HAL_RCC_SPI3_CLK_ENABLE();
317 
318     __HAL_RCC_GPIOB_CLK_ENABLE();
319     __HAL_RCC_GPIOA_CLK_ENABLE();
320     __HAL_RCC_GPIOD_CLK_ENABLE();
321     /**I2S3 GPIO Configuration
322     PB3     ------> I2S3_CK
323     PA15     ------> I2S3_WS
324     PD6     ------> I2S3_SD
325     */
326     GPIO_InitStruct.Pin = GPIO_PIN_3;
327     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
328     GPIO_InitStruct.Pull = GPIO_NOPULL;
329     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
330     GPIO_InitStruct.Alternate = GPIO_AF6_SPI3;
331     HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
332 
333     GPIO_InitStruct.Pin = GPIO_PIN_15;
334     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
335     GPIO_InitStruct.Pull = GPIO_NOPULL;
336     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
337     GPIO_InitStruct.Alternate = GPIO_AF6_SPI3;
338     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
339 
340     GPIO_InitStruct.Pin = GPIO_PIN_6;
341     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
342     GPIO_InitStruct.Pull = GPIO_NOPULL;
343     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
344     GPIO_InitStruct.Alternate = GPIO_AF5_I2S3ext;
345     HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
346 
347     /* I2S3 interrupt Init */
348     HAL_NVIC_SetPriority(SPI3_IRQn, 0, 0);
349     HAL_NVIC_EnableIRQ(SPI3_IRQn);
350   /* USER CODE BEGIN SPI3_MspInit 1 */
351 
352   /* USER CODE END SPI3_MspInit 1 */
353   }
354 
355 }
356 
357 /**
358 * @brief I2S MSP De-Initialization
359 * This function freeze the hardware resources used in this example
360 * @param hi2s: I2S handle pointer
361 * @retval None
362 */
HAL_I2S_MspDeInit(I2S_HandleTypeDef * hi2s)363 void HAL_I2S_MspDeInit(I2S_HandleTypeDef* hi2s)
364 {
365   if(hi2s->Instance==SPI3)
366   {
367   /* USER CODE BEGIN SPI3_MspDeInit 0 */
368 
369   /* USER CODE END SPI3_MspDeInit 0 */
370     /* Peripheral clock disable */
371     __HAL_RCC_SPI3_CLK_DISABLE();
372 
373     /**I2S3 GPIO Configuration
374     PB3     ------> I2S3_CK
375     PA15     ------> I2S3_WS
376     PD6     ------> I2S3_SD
377     */
378     HAL_GPIO_DeInit(GPIOB, GPIO_PIN_3);
379 
380     HAL_GPIO_DeInit(GPIOA, GPIO_PIN_15);
381 
382     HAL_GPIO_DeInit(GPIOD, GPIO_PIN_6);
383 
384     /* I2S3 interrupt DeInit */
385     HAL_NVIC_DisableIRQ(SPI3_IRQn);
386   /* USER CODE BEGIN SPI3_MspDeInit 1 */
387 
388   /* USER CODE END SPI3_MspDeInit 1 */
389   }
390 
391 }
392 
393 /**
394 * @brief LTDC MSP Initialization
395 * This function configures the hardware resources used in this example
396 * @param hltdc: LTDC handle pointer
397 * @retval None
398 */
HAL_LTDC_MspInit(LTDC_HandleTypeDef * hltdc)399 void HAL_LTDC_MspInit(LTDC_HandleTypeDef* hltdc)
400 {
401   if(hltdc->Instance==LTDC)
402   {
403   /* USER CODE BEGIN LTDC_MspInit 0 */
404 
405   /* USER CODE END LTDC_MspInit 0 */
406     /* Peripheral clock enable */
407     __HAL_RCC_LTDC_CLK_ENABLE();
408   /* USER CODE BEGIN LTDC_MspInit 1 */
409 
410   /* USER CODE END LTDC_MspInit 1 */
411   }
412 
413 }
414 
415 /**
416 * @brief LTDC MSP De-Initialization
417 * This function freeze the hardware resources used in this example
418 * @param hltdc: LTDC handle pointer
419 * @retval None
420 */
HAL_LTDC_MspDeInit(LTDC_HandleTypeDef * hltdc)421 void HAL_LTDC_MspDeInit(LTDC_HandleTypeDef* hltdc)
422 {
423   if(hltdc->Instance==LTDC)
424   {
425   /* USER CODE BEGIN LTDC_MspDeInit 0 */
426 
427   /* USER CODE END LTDC_MspDeInit 0 */
428     /* Peripheral clock disable */
429     __HAL_RCC_LTDC_CLK_DISABLE();
430   /* USER CODE BEGIN LTDC_MspDeInit 1 */
431 
432   /* USER CODE END LTDC_MspDeInit 1 */
433   }
434 
435 }
436 
437 /**
438 * @brief QSPI MSP Initialization
439 * This function configures the hardware resources used in this example
440 * @param hqspi: QSPI handle pointer
441 * @retval None
442 */
HAL_QSPI_MspInit(QSPI_HandleTypeDef * hqspi)443 void HAL_QSPI_MspInit(QSPI_HandleTypeDef* hqspi)
444 {
445   GPIO_InitTypeDef GPIO_InitStruct = {0};
446   if(hqspi->Instance==QUADSPI)
447   {
448   /* USER CODE BEGIN QUADSPI_MspInit 0 */
449 
450   /* USER CODE END QUADSPI_MspInit 0 */
451     /* Peripheral clock enable */
452     __HAL_RCC_QSPI_CLK_ENABLE();
453 
454     __HAL_RCC_GPIOB_CLK_ENABLE();
455     __HAL_RCC_GPIOF_CLK_ENABLE();
456     /**QUADSPI GPIO Configuration
457     PB6     ------> QUADSPI_BK1_NCS
458     PF7     ------> QUADSPI_BK1_IO2
459     PF6     ------> QUADSPI_BK1_IO3
460     PF10     ------> QUADSPI_CLK
461     PF9     ------> QUADSPI_BK1_IO1
462     PF8     ------> QUADSPI_BK1_IO0
463     */
464     GPIO_InitStruct.Pin = GPIO_PIN_6;
465     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
466     GPIO_InitStruct.Pull = GPIO_NOPULL;
467     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
468     GPIO_InitStruct.Alternate = GPIO_AF10_QSPI;
469     HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
470 
471     GPIO_InitStruct.Pin = GPIO_PIN_7|GPIO_PIN_6|GPIO_PIN_10;
472     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
473     GPIO_InitStruct.Pull = GPIO_NOPULL;
474     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
475     GPIO_InitStruct.Alternate = GPIO_AF9_QSPI;
476     HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
477 
478     GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_8;
479     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
480     GPIO_InitStruct.Pull = GPIO_NOPULL;
481     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
482     GPIO_InitStruct.Alternate = GPIO_AF10_QSPI;
483     HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
484 
485   /* USER CODE BEGIN QUADSPI_MspInit 1 */
486 
487   /* USER CODE END QUADSPI_MspInit 1 */
488   }
489 
490 }
491 
492 /**
493 * @brief QSPI MSP De-Initialization
494 * This function freeze the hardware resources used in this example
495 * @param hqspi: QSPI handle pointer
496 * @retval None
497 */
HAL_QSPI_MspDeInit(QSPI_HandleTypeDef * hqspi)498 void HAL_QSPI_MspDeInit(QSPI_HandleTypeDef* hqspi)
499 {
500   if(hqspi->Instance==QUADSPI)
501   {
502   /* USER CODE BEGIN QUADSPI_MspDeInit 0 */
503 
504   /* USER CODE END QUADSPI_MspDeInit 0 */
505     /* Peripheral clock disable */
506     __HAL_RCC_QSPI_CLK_DISABLE();
507 
508     /**QUADSPI GPIO Configuration
509     PB6     ------> QUADSPI_BK1_NCS
510     PF7     ------> QUADSPI_BK1_IO2
511     PF6     ------> QUADSPI_BK1_IO3
512     PF10     ------> QUADSPI_CLK
513     PF9     ------> QUADSPI_BK1_IO1
514     PF8     ------> QUADSPI_BK1_IO0
515     */
516     HAL_GPIO_DeInit(GPIOB, GPIO_PIN_6);
517 
518     HAL_GPIO_DeInit(GPIOF, GPIO_PIN_7|GPIO_PIN_6|GPIO_PIN_10|GPIO_PIN_9
519                           |GPIO_PIN_8);
520 
521   /* USER CODE BEGIN QUADSPI_MspDeInit 1 */
522 
523   /* USER CODE END QUADSPI_MspDeInit 1 */
524   }
525 
526 }
527 
528 /**
529 * @brief SD MSP Initialization
530 * This function configures the hardware resources used in this example
531 * @param hsd: SD handle pointer
532 * @retval None
533 */
HAL_SD_MspInit(SD_HandleTypeDef * hsd)534 void HAL_SD_MspInit(SD_HandleTypeDef* hsd)
535 {
536   GPIO_InitTypeDef GPIO_InitStruct = {0};
537   if(hsd->Instance==SDIO)
538   {
539   /* USER CODE BEGIN SDIO_MspInit 0 */
540 
541   /* USER CODE END SDIO_MspInit 0 */
542     /* Peripheral clock enable */
543     __HAL_RCC_SDIO_CLK_ENABLE();
544 
545     __HAL_RCC_GPIOC_CLK_ENABLE();
546     __HAL_RCC_GPIOD_CLK_ENABLE();
547     /**SDIO GPIO Configuration
548     PC12     ------> SDIO_CK
549     PC11     ------> SDIO_D3
550     PC10     ------> SDIO_D2
551     PD2     ------> SDIO_CMD
552     PC9     ------> SDIO_D1
553     PC8     ------> SDIO_D0
554     */
555     GPIO_InitStruct.Pin = GPIO_PIN_12|GPIO_PIN_11|GPIO_PIN_10|GPIO_PIN_9
556                           |GPIO_PIN_8;
557     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
558     GPIO_InitStruct.Pull = GPIO_NOPULL;
559     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
560     GPIO_InitStruct.Alternate = GPIO_AF12_SDIO;
561     HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
562 
563     GPIO_InitStruct.Pin = GPIO_PIN_2;
564     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
565     GPIO_InitStruct.Pull = GPIO_NOPULL;
566     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
567     GPIO_InitStruct.Alternate = GPIO_AF12_SDIO;
568     HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
569 
570   /* USER CODE BEGIN SDIO_MspInit 1 */
571 
572   /* USER CODE END SDIO_MspInit 1 */
573   }
574 
575 }
576 
577 /**
578 * @brief SD MSP De-Initialization
579 * This function freeze the hardware resources used in this example
580 * @param hsd: SD handle pointer
581 * @retval None
582 */
HAL_SD_MspDeInit(SD_HandleTypeDef * hsd)583 void HAL_SD_MspDeInit(SD_HandleTypeDef* hsd)
584 {
585   if(hsd->Instance==SDIO)
586   {
587   /* USER CODE BEGIN SDIO_MspDeInit 0 */
588 
589   /* USER CODE END SDIO_MspDeInit 0 */
590     /* Peripheral clock disable */
591     __HAL_RCC_SDIO_CLK_DISABLE();
592 
593     /**SDIO GPIO Configuration
594     PC12     ------> SDIO_CK
595     PC11     ------> SDIO_D3
596     PC10     ------> SDIO_D2
597     PD2     ------> SDIO_CMD
598     PC9     ------> SDIO_D1
599     PC8     ------> SDIO_D0
600     */
601     HAL_GPIO_DeInit(GPIOC, GPIO_PIN_12|GPIO_PIN_11|GPIO_PIN_10|GPIO_PIN_9
602                           |GPIO_PIN_8);
603 
604     HAL_GPIO_DeInit(GPIOD, GPIO_PIN_2);
605 
606   /* USER CODE BEGIN SDIO_MspDeInit 1 */
607 
608   /* USER CODE END SDIO_MspDeInit 1 */
609   }
610 
611 }
612 
613 /**
614 * @brief TIM_Base MSP Initialization
615 * This function configures the hardware resources used in this example
616 * @param htim_base: TIM_Base handle pointer
617 * @retval None
618 */
HAL_TIM_Base_MspInit(TIM_HandleTypeDef * htim_base)619 void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
620 {
621   GPIO_InitTypeDef GPIO_InitStruct = {0};
622   if(htim_base->Instance==TIM2)
623   {
624   /* USER CODE BEGIN TIM2_MspInit 0 */
625 
626   /* USER CODE END TIM2_MspInit 0 */
627     /* Peripheral clock enable */
628     __HAL_RCC_TIM2_CLK_ENABLE();
629   /* USER CODE BEGIN TIM2_MspInit 1 */
630 
631   /* USER CODE END TIM2_MspInit 1 */
632   }
633   else if(htim_base->Instance==TIM3)
634   {
635   /* USER CODE BEGIN TIM3_MspInit 0 */
636 
637   /* USER CODE END TIM3_MspInit 0 */
638     /* Peripheral clock enable */
639     __HAL_RCC_TIM3_CLK_ENABLE();
640   /* USER CODE BEGIN TIM3_MspInit 1 */
641 
642   /* USER CODE END TIM3_MspInit 1 */
643   }
644   else if(htim_base->Instance==TIM4)
645   {
646   /* USER CODE BEGIN TIM4_MspInit 0 */
647 
648   /* USER CODE END TIM4_MspInit 0 */
649     /* Peripheral clock enable */
650     __HAL_RCC_TIM4_CLK_ENABLE();
651 
652     __HAL_RCC_GPIOD_CLK_ENABLE();
653     /**TIM4 GPIO Configuration
654     PD12     ------> TIM4_CH1
655     */
656     GPIO_InitStruct.Pin = GPIO_PIN_12;
657     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
658     GPIO_InitStruct.Pull = GPIO_NOPULL;
659     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
660     GPIO_InitStruct.Alternate = GPIO_AF2_TIM4;
661     HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
662 
663   /* USER CODE BEGIN TIM4_MspInit 1 */
664 
665   /* USER CODE END TIM4_MspInit 1 */
666   }
667   else if(htim_base->Instance==TIM6)
668   {
669   /* USER CODE BEGIN TIM6_MspInit 0 */
670 
671   /* USER CODE END TIM6_MspInit 0 */
672     /* Peripheral clock enable */
673     __HAL_RCC_TIM6_CLK_ENABLE();
674   /* USER CODE BEGIN TIM6_MspInit 1 */
675 
676   /* USER CODE END TIM6_MspInit 1 */
677   }
678   else if(htim_base->Instance==TIM12)
679   {
680   /* USER CODE BEGIN TIM12_MspInit 0 */
681 
682   /* USER CODE END TIM12_MspInit 0 */
683     /* Peripheral clock enable */
684     __HAL_RCC_TIM12_CLK_ENABLE();
685   /* USER CODE BEGIN TIM12_MspInit 1 */
686 
687   /* USER CODE END TIM12_MspInit 1 */
688   }
689 
690 }
691 
HAL_TIM_MspPostInit(TIM_HandleTypeDef * htim)692 void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim)
693 {
694   GPIO_InitTypeDef GPIO_InitStruct = {0};
695   if(htim->Instance==TIM2)
696   {
697   /* USER CODE BEGIN TIM2_MspPostInit 0 */
698 
699   /* USER CODE END TIM2_MspPostInit 0 */
700     __HAL_RCC_GPIOA_CLK_ENABLE();
701     /**TIM2 GPIO Configuration
702     PA1     ------> TIM2_CH2
703     PA2     ------> TIM2_CH3
704     */
705     GPIO_InitStruct.Pin = GPIO_PIN_1|GPIO_PIN_2;
706     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
707     GPIO_InitStruct.Pull = GPIO_NOPULL;
708     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
709     GPIO_InitStruct.Alternate = GPIO_AF1_TIM2;
710     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
711 
712   /* USER CODE BEGIN TIM2_MspPostInit 1 */
713 
714   /* USER CODE END TIM2_MspPostInit 1 */
715   }
716   else if(htim->Instance==TIM3)
717   {
718   /* USER CODE BEGIN TIM3_MspPostInit 0 */
719 
720   /* USER CODE END TIM3_MspPostInit 0 */
721 
722     __HAL_RCC_GPIOA_CLK_ENABLE();
723     /**TIM3 GPIO Configuration
724     PA6     ------> TIM3_CH1
725     PA7     ------> TIM3_CH2
726     */
727     GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_7;
728     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
729     GPIO_InitStruct.Pull = GPIO_NOPULL;
730     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
731     GPIO_InitStruct.Alternate = GPIO_AF2_TIM3;
732     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
733 
734   /* USER CODE BEGIN TIM3_MspPostInit 1 */
735 
736   /* USER CODE END TIM3_MspPostInit 1 */
737   }
738   else if(htim->Instance==TIM4)
739   {
740   /* USER CODE BEGIN TIM4_MspPostInit 0 */
741 
742   /* USER CODE END TIM4_MspPostInit 0 */
743 
744     __HAL_RCC_GPIOD_CLK_ENABLE();
745     /**TIM4 GPIO Configuration
746     PD13     ------> TIM4_CH2
747     */
748     GPIO_InitStruct.Pin = GPIO_PIN_13;
749     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
750     GPIO_InitStruct.Pull = GPIO_NOPULL;
751     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
752     GPIO_InitStruct.Alternate = GPIO_AF2_TIM4;
753     HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
754 
755   /* USER CODE BEGIN TIM4_MspPostInit 1 */
756 
757   /* USER CODE END TIM4_MspPostInit 1 */
758   }
759   else if(htim->Instance==TIM12)
760   {
761   /* USER CODE BEGIN TIM12_MspPostInit 0 */
762 
763   /* USER CODE END TIM12_MspPostInit 0 */
764 
765     __HAL_RCC_GPIOH_CLK_ENABLE();
766     __HAL_RCC_GPIOB_CLK_ENABLE();
767     /**TIM12 GPIO Configuration
768     PH6     ------> TIM12_CH1
769     PB15     ------> TIM12_CH2
770     */
771     GPIO_InitStruct.Pin = GPIO_PIN_6;
772     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
773     GPIO_InitStruct.Pull = GPIO_NOPULL;
774     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
775     GPIO_InitStruct.Alternate = GPIO_AF9_TIM12;
776     HAL_GPIO_Init(GPIOH, &GPIO_InitStruct);
777 
778     GPIO_InitStruct.Pin = GPIO_PIN_15;
779     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
780     GPIO_InitStruct.Pull = GPIO_NOPULL;
781     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
782     GPIO_InitStruct.Alternate = GPIO_AF9_TIM12;
783     HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
784 
785   /* USER CODE BEGIN TIM12_MspPostInit 1 */
786 
787   /* USER CODE END TIM12_MspPostInit 1 */
788   }
789 
790 }
791 /**
792 * @brief TIM_Base MSP De-Initialization
793 * This function freeze the hardware resources used in this example
794 * @param htim_base: TIM_Base handle pointer
795 * @retval None
796 */
HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef * htim_base)797 void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base)
798 {
799   if(htim_base->Instance==TIM2)
800   {
801   /* USER CODE BEGIN TIM2_MspDeInit 0 */
802 
803   /* USER CODE END TIM2_MspDeInit 0 */
804     /* Peripheral clock disable */
805     __HAL_RCC_TIM2_CLK_DISABLE();
806   /* USER CODE BEGIN TIM2_MspDeInit 1 */
807 
808   /* USER CODE END TIM2_MspDeInit 1 */
809   }
810   else if(htim_base->Instance==TIM3)
811   {
812   /* USER CODE BEGIN TIM3_MspDeInit 0 */
813 
814   /* USER CODE END TIM3_MspDeInit 0 */
815     /* Peripheral clock disable */
816     __HAL_RCC_TIM3_CLK_DISABLE();
817   /* USER CODE BEGIN TIM3_MspDeInit 1 */
818 
819   /* USER CODE END TIM3_MspDeInit 1 */
820   }
821   else if(htim_base->Instance==TIM4)
822   {
823   /* USER CODE BEGIN TIM4_MspDeInit 0 */
824 
825   /* USER CODE END TIM4_MspDeInit 0 */
826     /* Peripheral clock disable */
827     __HAL_RCC_TIM4_CLK_DISABLE();
828 
829     /**TIM4 GPIO Configuration
830     PD12     ------> TIM4_CH1
831     PD13     ------> TIM4_CH2
832     */
833     HAL_GPIO_DeInit(GPIOD, GPIO_PIN_12|GPIO_PIN_13);
834 
835   /* USER CODE BEGIN TIM4_MspDeInit 1 */
836 
837   /* USER CODE END TIM4_MspDeInit 1 */
838   }
839   else if(htim_base->Instance==TIM6)
840   {
841   /* USER CODE BEGIN TIM6_MspDeInit 0 */
842 
843   /* USER CODE END TIM6_MspDeInit 0 */
844     /* Peripheral clock disable */
845     __HAL_RCC_TIM6_CLK_DISABLE();
846   /* USER CODE BEGIN TIM6_MspDeInit 1 */
847 
848   /* USER CODE END TIM6_MspDeInit 1 */
849   }
850   else if(htim_base->Instance==TIM12)
851   {
852   /* USER CODE BEGIN TIM12_MspDeInit 0 */
853 
854   /* USER CODE END TIM12_MspDeInit 0 */
855     /* Peripheral clock disable */
856     __HAL_RCC_TIM12_CLK_DISABLE();
857   /* USER CODE BEGIN TIM12_MspDeInit 1 */
858 
859   /* USER CODE END TIM12_MspDeInit 1 */
860   }
861 
862 }
863 
864 /**
865 * @brief UART MSP Initialization
866 * This function configures the hardware resources used in this example
867 * @param huart: UART handle pointer
868 * @retval None
869 */
HAL_UART_MspInit(UART_HandleTypeDef * huart)870 void HAL_UART_MspInit(UART_HandleTypeDef* huart)
871 {
872   GPIO_InitTypeDef GPIO_InitStruct = {0};
873   if(huart->Instance==USART3)
874   {
875   /* USER CODE BEGIN USART3_MspInit 0 */
876 
877   /* USER CODE END USART3_MspInit 0 */
878     /* Peripheral clock enable */
879     __HAL_RCC_USART3_CLK_ENABLE();
880 
881     __HAL_RCC_GPIOB_CLK_ENABLE();
882     /**USART3 GPIO Configuration
883     PB10     ------> USART3_TX
884     PB11     ------> USART3_RX
885     */
886     GPIO_InitStruct.Pin = GPIO_PIN_10|GPIO_PIN_11;
887     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
888     GPIO_InitStruct.Pull = GPIO_PULLUP;
889     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
890     GPIO_InitStruct.Alternate = GPIO_AF7_USART3;
891     HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
892 
893   /* USER CODE BEGIN USART3_MspInit 1 */
894 
895   /* USER CODE END USART3_MspInit 1 */
896   }
897 
898 }
899 
900 /**
901 * @brief UART MSP De-Initialization
902 * This function freeze the hardware resources used in this example
903 * @param huart: UART handle pointer
904 * @retval None
905 */
HAL_UART_MspDeInit(UART_HandleTypeDef * huart)906 void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
907 {
908   if(huart->Instance==USART3)
909   {
910   /* USER CODE BEGIN USART3_MspDeInit 0 */
911 
912   /* USER CODE END USART3_MspDeInit 0 */
913     /* Peripheral clock disable */
914     __HAL_RCC_USART3_CLK_DISABLE();
915 
916     /**USART3 GPIO Configuration
917     PB10     ------> USART3_TX
918     PB11     ------> USART3_RX
919     */
920     HAL_GPIO_DeInit(GPIOB, GPIO_PIN_10|GPIO_PIN_11);
921 
922   /* USER CODE BEGIN USART3_MspDeInit 1 */
923 
924   /* USER CODE END USART3_MspDeInit 1 */
925   }
926 
927 }
928 
929 /**
930 * @brief PCD MSP Initialization
931 * This function configures the hardware resources used in this example
932 * @param hpcd: PCD handle pointer
933 * @retval None
934 */
HAL_PCD_MspInit(PCD_HandleTypeDef * hpcd)935 void HAL_PCD_MspInit(PCD_HandleTypeDef* hpcd)
936 {
937   GPIO_InitTypeDef GPIO_InitStruct = {0};
938   if(hpcd->Instance==USB_OTG_FS)
939   {
940   /* USER CODE BEGIN USB_OTG_FS_MspInit 0 */
941 
942   /* USER CODE END USB_OTG_FS_MspInit 0 */
943 
944     __HAL_RCC_GPIOA_CLK_ENABLE();
945     /**USB_OTG_FS GPIO Configuration
946     PA12     ------> USB_OTG_FS_DP
947     PA11     ------> USB_OTG_FS_DM
948     */
949     GPIO_InitStruct.Pin = GPIO_PIN_12|GPIO_PIN_11;
950     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
951     GPIO_InitStruct.Pull = GPIO_NOPULL;
952     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
953     GPIO_InitStruct.Alternate = GPIO_AF10_OTG_FS;
954     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
955 
956     /* Peripheral clock enable */
957     __HAL_RCC_USB_OTG_FS_CLK_ENABLE();
958     /* USB_OTG_FS interrupt Init */
959     HAL_NVIC_SetPriority(OTG_FS_IRQn, 0, 0);
960     HAL_NVIC_EnableIRQ(OTG_FS_IRQn);
961   /* USER CODE BEGIN USB_OTG_FS_MspInit 1 */
962 
963   /* USER CODE END USB_OTG_FS_MspInit 1 */
964   }
965 
966 }
967 
968 /**
969 * @brief PCD MSP De-Initialization
970 * This function freeze the hardware resources used in this example
971 * @param hpcd: PCD handle pointer
972 * @retval None
973 */
HAL_PCD_MspDeInit(PCD_HandleTypeDef * hpcd)974 void HAL_PCD_MspDeInit(PCD_HandleTypeDef* hpcd)
975 {
976   if(hpcd->Instance==USB_OTG_FS)
977   {
978   /* USER CODE BEGIN USB_OTG_FS_MspDeInit 0 */
979 
980   /* USER CODE END USB_OTG_FS_MspDeInit 0 */
981     /* Peripheral clock disable */
982     __HAL_RCC_USB_OTG_FS_CLK_DISABLE();
983 
984     /**USB_OTG_FS GPIO Configuration
985     PA12     ------> USB_OTG_FS_DP
986     PA11     ------> USB_OTG_FS_DM
987     */
988     HAL_GPIO_DeInit(GPIOA, GPIO_PIN_12|GPIO_PIN_11);
989 
990     /* USB_OTG_FS interrupt DeInit */
991     HAL_NVIC_DisableIRQ(OTG_FS_IRQn);
992   /* USER CODE BEGIN USB_OTG_FS_MspDeInit 1 */
993 
994   /* USER CODE END USB_OTG_FS_MspDeInit 1 */
995   }
996 
997 }
998 
999 static uint32_t FMC_Initialized = 0;
1000 
HAL_FMC_MspInit(void)1001 static void HAL_FMC_MspInit(void){
1002   /* USER CODE BEGIN FMC_MspInit 0 */
1003 
1004   /* USER CODE END FMC_MspInit 0 */
1005   GPIO_InitTypeDef GPIO_InitStruct;
1006   if (FMC_Initialized) {
1007     return;
1008   }
1009   FMC_Initialized = 1;
1010   /* Peripheral clock enable */
1011   __HAL_RCC_FMC_CLK_ENABLE();
1012 
1013   /** FMC GPIO Configuration
1014   PE1   ------> FMC_NBL1
1015   PE0   ------> FMC_NBL0
1016   PG15   ------> FMC_SDNCAS
1017   PD0   ------> FMC_D2
1018   PI4   ------> FMC_NBL2
1019   PD1   ------> FMC_D3
1020   PI3   ------> FMC_D27
1021   PI2   ------> FMC_D26
1022   PF0   ------> FMC_A0
1023   PI5   ------> FMC_NBL3
1024   PI7   ------> FMC_D29
1025   PI10   ------> FMC_D31
1026   PI6   ------> FMC_D28
1027   PH15   ------> FMC_D23
1028   PI1   ------> FMC_D25
1029   PF1   ------> FMC_A1
1030   PI9   ------> FMC_D30
1031   PH13   ------> FMC_D21
1032   PH14   ------> FMC_D22
1033   PI0   ------> FMC_D24
1034   PF2   ------> FMC_A2
1035   PF3   ------> FMC_A3
1036   PG8   ------> FMC_SDCLK
1037   PF4   ------> FMC_A4
1038   PH3   ------> FMC_SDNE0
1039   PF5   ------> FMC_A5
1040   PH2   ------> FMC_SDCKE0
1041   PD15   ------> FMC_D1
1042   PD10   ------> FMC_D15
1043   PD14   ------> FMC_D0
1044   PD9   ------> FMC_D14
1045   PD8   ------> FMC_D13
1046   PC0   ------> FMC_SDNWE
1047   PF12   ------> FMC_A6
1048   PG1   ------> FMC_A11
1049   PF15   ------> FMC_A9
1050   PH12   ------> FMC_D20
1051   PF13   ------> FMC_A7
1052   PG0   ------> FMC_A10
1053   PE8   ------> FMC_D5
1054   PG5   ------> FMC_BA1
1055   PG4   ------> FMC_BA0
1056   PH9   ------> FMC_D17
1057   PH11   ------> FMC_D19
1058   PF14   ------> FMC_A8
1059   PF11   ------> FMC_SDNRAS
1060   PE9   ------> FMC_D6
1061   PE11   ------> FMC_D8
1062   PE14   ------> FMC_D11
1063   PH8   ------> FMC_D16
1064   PH10   ------> FMC_D18
1065   PE7   ------> FMC_D4
1066   PE10   ------> FMC_D7
1067   PE12   ------> FMC_D9
1068   PE15   ------> FMC_D12
1069   PE13   ------> FMC_D10
1070   */
1071   GPIO_InitStruct.Pin = GPIO_PIN_1|GPIO_PIN_0|GPIO_PIN_8|GPIO_PIN_9
1072                           |GPIO_PIN_11|GPIO_PIN_14|GPIO_PIN_7|GPIO_PIN_10
1073                           |GPIO_PIN_12|GPIO_PIN_15|GPIO_PIN_13;
1074   GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
1075   GPIO_InitStruct.Pull = GPIO_NOPULL;
1076   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
1077   GPIO_InitStruct.Alternate = GPIO_AF12_FMC;
1078   HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
1079 
1080   GPIO_InitStruct.Pin = GPIO_PIN_15|GPIO_PIN_8|GPIO_PIN_1|GPIO_PIN_0
1081                           |GPIO_PIN_5|GPIO_PIN_4;
1082   GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
1083   GPIO_InitStruct.Pull = GPIO_NOPULL;
1084   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
1085   GPIO_InitStruct.Alternate = GPIO_AF12_FMC;
1086   HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
1087 
1088   GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_15|GPIO_PIN_10
1089                           |GPIO_PIN_14|GPIO_PIN_9|GPIO_PIN_8;
1090   GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
1091   GPIO_InitStruct.Pull = GPIO_NOPULL;
1092   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
1093   GPIO_InitStruct.Alternate = GPIO_AF12_FMC;
1094   HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
1095 
1096   GPIO_InitStruct.Pin = GPIO_PIN_4|GPIO_PIN_3|GPIO_PIN_2|GPIO_PIN_5
1097                           |GPIO_PIN_7|GPIO_PIN_10|GPIO_PIN_6|GPIO_PIN_1
1098                           |GPIO_PIN_9|GPIO_PIN_0;
1099   GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
1100   GPIO_InitStruct.Pull = GPIO_NOPULL;
1101   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
1102   GPIO_InitStruct.Alternate = GPIO_AF12_FMC;
1103   HAL_GPIO_Init(GPIOI, &GPIO_InitStruct);
1104 
1105   GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3
1106                           |GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_12|GPIO_PIN_15
1107                           |GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_11;
1108   GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
1109   GPIO_InitStruct.Pull = GPIO_NOPULL;
1110   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
1111   GPIO_InitStruct.Alternate = GPIO_AF12_FMC;
1112   HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
1113 
1114   GPIO_InitStruct.Pin = GPIO_PIN_15|GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_3
1115                           |GPIO_PIN_2|GPIO_PIN_12|GPIO_PIN_9|GPIO_PIN_11
1116                           |GPIO_PIN_8|GPIO_PIN_10;
1117   GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
1118   GPIO_InitStruct.Pull = GPIO_NOPULL;
1119   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
1120   GPIO_InitStruct.Alternate = GPIO_AF12_FMC;
1121   HAL_GPIO_Init(GPIOH, &GPIO_InitStruct);
1122 
1123   GPIO_InitStruct.Pin = GPIO_PIN_0;
1124   GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
1125   GPIO_InitStruct.Pull = GPIO_NOPULL;
1126   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
1127   GPIO_InitStruct.Alternate = GPIO_AF12_FMC;
1128   HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
1129 
1130   /* USER CODE BEGIN FMC_MspInit 1 */
1131 
1132   /* USER CODE END FMC_MspInit 1 */
1133 }
1134 
HAL_SDRAM_MspInit(SDRAM_HandleTypeDef * hsdram)1135 void HAL_SDRAM_MspInit(SDRAM_HandleTypeDef* hsdram){
1136   /* USER CODE BEGIN SDRAM_MspInit 0 */
1137 
1138   /* USER CODE END SDRAM_MspInit 0 */
1139   HAL_FMC_MspInit();
1140   /* USER CODE BEGIN SDRAM_MspInit 1 */
1141 
1142   /* USER CODE END SDRAM_MspInit 1 */
1143 }
1144 
1145 static uint32_t FMC_DeInitialized = 0;
1146 
HAL_FMC_MspDeInit(void)1147 static void HAL_FMC_MspDeInit(void){
1148   /* USER CODE BEGIN FMC_MspDeInit 0 */
1149 
1150   /* USER CODE END FMC_MspDeInit 0 */
1151   if (FMC_DeInitialized) {
1152     return;
1153   }
1154   FMC_DeInitialized = 1;
1155   /* Peripheral clock enable */
1156   __HAL_RCC_FMC_CLK_DISABLE();
1157 
1158   /** FMC GPIO Configuration
1159   PE1   ------> FMC_NBL1
1160   PE0   ------> FMC_NBL0
1161   PG15   ------> FMC_SDNCAS
1162   PD0   ------> FMC_D2
1163   PI4   ------> FMC_NBL2
1164   PD1   ------> FMC_D3
1165   PI3   ------> FMC_D27
1166   PI2   ------> FMC_D26
1167   PF0   ------> FMC_A0
1168   PI5   ------> FMC_NBL3
1169   PI7   ------> FMC_D29
1170   PI10   ------> FMC_D31
1171   PI6   ------> FMC_D28
1172   PH15   ------> FMC_D23
1173   PI1   ------> FMC_D25
1174   PF1   ------> FMC_A1
1175   PI9   ------> FMC_D30
1176   PH13   ------> FMC_D21
1177   PH14   ------> FMC_D22
1178   PI0   ------> FMC_D24
1179   PF2   ------> FMC_A2
1180   PF3   ------> FMC_A3
1181   PG8   ------> FMC_SDCLK
1182   PF4   ------> FMC_A4
1183   PH3   ------> FMC_SDNE0
1184   PF5   ------> FMC_A5
1185   PH2   ------> FMC_SDCKE0
1186   PD15   ------> FMC_D1
1187   PD10   ------> FMC_D15
1188   PD14   ------> FMC_D0
1189   PD9   ------> FMC_D14
1190   PD8   ------> FMC_D13
1191   PC0   ------> FMC_SDNWE
1192   PF12   ------> FMC_A6
1193   PG1   ------> FMC_A11
1194   PF15   ------> FMC_A9
1195   PH12   ------> FMC_D20
1196   PF13   ------> FMC_A7
1197   PG0   ------> FMC_A10
1198   PE8   ------> FMC_D5
1199   PG5   ------> FMC_BA1
1200   PG4   ------> FMC_BA0
1201   PH9   ------> FMC_D17
1202   PH11   ------> FMC_D19
1203   PF14   ------> FMC_A8
1204   PF11   ------> FMC_SDNRAS
1205   PE9   ------> FMC_D6
1206   PE11   ------> FMC_D8
1207   PE14   ------> FMC_D11
1208   PH8   ------> FMC_D16
1209   PH10   ------> FMC_D18
1210   PE7   ------> FMC_D4
1211   PE10   ------> FMC_D7
1212   PE12   ------> FMC_D9
1213   PE15   ------> FMC_D12
1214   PE13   ------> FMC_D10
1215   */
1216   HAL_GPIO_DeInit(GPIOE, GPIO_PIN_1|GPIO_PIN_0|GPIO_PIN_8|GPIO_PIN_9
1217                           |GPIO_PIN_11|GPIO_PIN_14|GPIO_PIN_7|GPIO_PIN_10
1218                           |GPIO_PIN_12|GPIO_PIN_15|GPIO_PIN_13);
1219 
1220   HAL_GPIO_DeInit(GPIOG, GPIO_PIN_15|GPIO_PIN_8|GPIO_PIN_1|GPIO_PIN_0
1221                           |GPIO_PIN_5|GPIO_PIN_4);
1222 
1223   HAL_GPIO_DeInit(GPIOD, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_15|GPIO_PIN_10
1224                           |GPIO_PIN_14|GPIO_PIN_9|GPIO_PIN_8);
1225 
1226   HAL_GPIO_DeInit(GPIOI, GPIO_PIN_4|GPIO_PIN_3|GPIO_PIN_2|GPIO_PIN_5
1227                           |GPIO_PIN_7|GPIO_PIN_10|GPIO_PIN_6|GPIO_PIN_1
1228                           |GPIO_PIN_9|GPIO_PIN_0);
1229 
1230   HAL_GPIO_DeInit(GPIOF, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3
1231                           |GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_12|GPIO_PIN_15
1232                           |GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_11);
1233 
1234   HAL_GPIO_DeInit(GPIOH, GPIO_PIN_15|GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_3
1235                           |GPIO_PIN_2|GPIO_PIN_12|GPIO_PIN_9|GPIO_PIN_11
1236                           |GPIO_PIN_8|GPIO_PIN_10);
1237 
1238   HAL_GPIO_DeInit(GPIOC, GPIO_PIN_0);
1239 
1240   /* USER CODE BEGIN FMC_MspDeInit 1 */
1241 
1242   /* USER CODE END FMC_MspDeInit 1 */
1243 }
1244 
HAL_SDRAM_MspDeInit(SDRAM_HandleTypeDef * hsdram)1245 void HAL_SDRAM_MspDeInit(SDRAM_HandleTypeDef* hsdram){
1246   /* USER CODE BEGIN SDRAM_MspDeInit 0 */
1247 
1248   /* USER CODE END SDRAM_MspDeInit 0 */
1249   HAL_FMC_MspDeInit();
1250   /* USER CODE BEGIN SDRAM_MspDeInit 1 */
1251 
1252   /* USER CODE END SDRAM_MspDeInit 1 */
1253 }
1254 
1255 /* USER CODE BEGIN 1 */
1256 
1257 /* USER CODE END 1 */
1258 
1259 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
1260