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   ** 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 void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim);
83                     /**
84   * Initializes the Global MSP.
85   */
HAL_MspInit(void)86 void HAL_MspInit(void)
87 {
88   /* USER CODE BEGIN MspInit 0 */
89 
90   /* USER CODE END MspInit 0 */
91 
92   __HAL_RCC_SYSCFG_CLK_ENABLE();
93   __HAL_RCC_PWR_CLK_ENABLE();
94 
95   /* System interrupt init*/
96 
97   /* USER CODE BEGIN MspInit 1 */
98 
99   /* USER CODE END MspInit 1 */
100 }
101 
102 /**
103 * @brief ADC MSP Initialization
104 * This function configures the hardware resources used in this example
105 * @param hadc: ADC handle pointer
106 * @retval None
107 */
HAL_ADC_MspInit(ADC_HandleTypeDef * hadc)108 void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc)
109 {
110   GPIO_InitTypeDef GPIO_InitStruct = {0};
111   if(hadc->Instance==ADC1)
112   {
113   /* USER CODE BEGIN ADC1_MspInit 0 */
114 
115   /* USER CODE END ADC1_MspInit 0 */
116     /* Peripheral clock enable */
117     __HAL_RCC_ADC1_CLK_ENABLE();
118 
119     __HAL_RCC_GPIOA_CLK_ENABLE();
120     /**ADC1 GPIO Configuration
121     PA5     ------> ADC1_IN5
122     */
123     GPIO_InitStruct.Pin = GPIO_PIN_5;
124     GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
125     GPIO_InitStruct.Pull = GPIO_NOPULL;
126     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
127 
128   /* USER CODE BEGIN ADC1_MspInit 1 */
129 
130   /* USER CODE END ADC1_MspInit 1 */
131   }
132 
133 }
134 
135 /**
136 * @brief ADC MSP De-Initialization
137 * This function freeze the hardware resources used in this example
138 * @param hadc: ADC handle pointer
139 * @retval None
140 */
HAL_ADC_MspDeInit(ADC_HandleTypeDef * hadc)141 void HAL_ADC_MspDeInit(ADC_HandleTypeDef* hadc)
142 {
143   if(hadc->Instance==ADC1)
144   {
145   /* USER CODE BEGIN ADC1_MspDeInit 0 */
146 
147   /* USER CODE END ADC1_MspDeInit 0 */
148     /* Peripheral clock disable */
149     __HAL_RCC_ADC1_CLK_DISABLE();
150 
151     /**ADC1 GPIO Configuration
152     PA5     ------> ADC1_IN5
153     */
154     HAL_GPIO_DeInit(GPIOA, GPIO_PIN_5);
155 
156   /* USER CODE BEGIN ADC1_MspDeInit 1 */
157 
158   /* USER CODE END ADC1_MspDeInit 1 */
159   }
160 
161 }
162 
163 /**
164 * @brief ETH MSP Initialization
165 * This function configures the hardware resources used in this example
166 * @param heth: ETH handle pointer
167 * @retval None
168 */
HAL_ETH_MspInit(ETH_HandleTypeDef * heth)169 void HAL_ETH_MspInit(ETH_HandleTypeDef* heth)
170 {
171   GPIO_InitTypeDef GPIO_InitStruct = {0};
172   if(heth->Instance==ETH)
173   {
174   /* USER CODE BEGIN ETH_MspInit 0 */
175 
176   /* USER CODE END ETH_MspInit 0 */
177     /* Peripheral clock enable */
178     __HAL_RCC_ETH_CLK_ENABLE();
179 
180     __HAL_RCC_GPIOC_CLK_ENABLE();
181     __HAL_RCC_GPIOA_CLK_ENABLE();
182     __HAL_RCC_GPIOB_CLK_ENABLE();
183     __HAL_RCC_GPIOG_CLK_ENABLE();
184     /**ETH GPIO Configuration
185     PC1     ------> ETH_MDC
186     PA1     ------> ETH_REF_CLK
187     PA2     ------> ETH_MDIO
188     PA7     ------> ETH_CRS_DV
189     PC4     ------> ETH_RXD0
190     PC5     ------> ETH_RXD1
191     PB11     ------> ETH_TX_EN
192     PG13     ------> ETH_TXD0
193     PG14     ------> ETH_TXD1
194     */
195     GPIO_InitStruct.Pin = GPIO_PIN_1|GPIO_PIN_4|GPIO_PIN_5;
196     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
197     GPIO_InitStruct.Pull = GPIO_NOPULL;
198     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
199     GPIO_InitStruct.Alternate = GPIO_AF11_ETH;
200     HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
201 
202     GPIO_InitStruct.Pin = GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_7;
203     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
204     GPIO_InitStruct.Pull = GPIO_NOPULL;
205     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
206     GPIO_InitStruct.Alternate = GPIO_AF11_ETH;
207     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
208 
209     GPIO_InitStruct.Pin = GPIO_PIN_11;
210     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
211     GPIO_InitStruct.Pull = GPIO_NOPULL;
212     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
213     GPIO_InitStruct.Alternate = GPIO_AF11_ETH;
214     HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
215 
216     GPIO_InitStruct.Pin = GPIO_PIN_13|GPIO_PIN_14;
217     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
218     GPIO_InitStruct.Pull = GPIO_NOPULL;
219     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
220     GPIO_InitStruct.Alternate = GPIO_AF11_ETH;
221     HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
222 
223   /* USER CODE BEGIN ETH_MspInit 1 */
224 
225   /* USER CODE END ETH_MspInit 1 */
226   }
227 
228 }
229 
230 /**
231 * @brief ETH MSP De-Initialization
232 * This function freeze the hardware resources used in this example
233 * @param heth: ETH handle pointer
234 * @retval None
235 */
HAL_ETH_MspDeInit(ETH_HandleTypeDef * heth)236 void HAL_ETH_MspDeInit(ETH_HandleTypeDef* heth)
237 {
238   if(heth->Instance==ETH)
239   {
240   /* USER CODE BEGIN ETH_MspDeInit 0 */
241 
242   /* USER CODE END ETH_MspDeInit 0 */
243     /* Peripheral clock disable */
244     __HAL_RCC_ETH_CLK_DISABLE();
245 
246     /**ETH GPIO Configuration
247     PC1     ------> ETH_MDC
248     PA1     ------> ETH_REF_CLK
249     PA2     ------> ETH_MDIO
250     PA7     ------> ETH_CRS_DV
251     PC4     ------> ETH_RXD0
252     PC5     ------> ETH_RXD1
253     PB11     ------> ETH_TX_EN
254     PG13     ------> ETH_TXD0
255     PG14     ------> ETH_TXD1
256     */
257     HAL_GPIO_DeInit(GPIOC, GPIO_PIN_1|GPIO_PIN_4|GPIO_PIN_5);
258 
259     HAL_GPIO_DeInit(GPIOA, GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_7);
260 
261     HAL_GPIO_DeInit(GPIOB, GPIO_PIN_11);
262 
263     HAL_GPIO_DeInit(GPIOG, GPIO_PIN_13|GPIO_PIN_14);
264 
265   /* USER CODE BEGIN ETH_MspDeInit 1 */
266 
267   /* USER CODE END ETH_MspDeInit 1 */
268   }
269 
270 }
271 
272 /**
273 * @brief RTC MSP Initialization
274 * This function configures the hardware resources used in this example
275 * @param hrtc: RTC handle pointer
276 * @retval None
277 */
HAL_RTC_MspInit(RTC_HandleTypeDef * hrtc)278 void HAL_RTC_MspInit(RTC_HandleTypeDef* hrtc)
279 {
280   if(hrtc->Instance==RTC)
281   {
282   /* USER CODE BEGIN RTC_MspInit 0 */
283 
284   /* USER CODE END RTC_MspInit 0 */
285     /* Peripheral clock enable */
286     __HAL_RCC_RTC_ENABLE();
287   /* USER CODE BEGIN RTC_MspInit 1 */
288 
289   /* USER CODE END RTC_MspInit 1 */
290   }
291 
292 }
293 
294 /**
295 * @brief RTC MSP De-Initialization
296 * This function freeze the hardware resources used in this example
297 * @param hrtc: RTC handle pointer
298 * @retval None
299 */
HAL_RTC_MspDeInit(RTC_HandleTypeDef * hrtc)300 void HAL_RTC_MspDeInit(RTC_HandleTypeDef* hrtc)
301 {
302   if(hrtc->Instance==RTC)
303   {
304   /* USER CODE BEGIN RTC_MspDeInit 0 */
305 
306   /* USER CODE END RTC_MspDeInit 0 */
307     /* Peripheral clock disable */
308     __HAL_RCC_RTC_DISABLE();
309   /* USER CODE BEGIN RTC_MspDeInit 1 */
310 
311   /* USER CODE END RTC_MspDeInit 1 */
312   }
313 
314 }
315 
316 /**
317 * @brief SD MSP Initialization
318 * This function configures the hardware resources used in this example
319 * @param hsd: SD handle pointer
320 * @retval None
321 */
HAL_SD_MspInit(SD_HandleTypeDef * hsd)322 void HAL_SD_MspInit(SD_HandleTypeDef* hsd)
323 {
324   GPIO_InitTypeDef GPIO_InitStruct = {0};
325   if(hsd->Instance==SDIO)
326   {
327   /* USER CODE BEGIN SDIO_MspInit 0 */
328 
329   /* USER CODE END SDIO_MspInit 0 */
330     /* Peripheral clock enable */
331     __HAL_RCC_SDIO_CLK_ENABLE();
332 
333     __HAL_RCC_GPIOC_CLK_ENABLE();
334     __HAL_RCC_GPIOD_CLK_ENABLE();
335     /**SDIO GPIO Configuration
336     PC8     ------> SDIO_D0
337     PC9     ------> SDIO_D1
338     PC10     ------> SDIO_D2
339     PC11     ------> SDIO_D3
340     PC12     ------> SDIO_CK
341     PD2     ------> SDIO_CMD
342     */
343     GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11
344                           |GPIO_PIN_12;
345     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
346     GPIO_InitStruct.Pull = GPIO_NOPULL;
347     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
348     GPIO_InitStruct.Alternate = GPIO_AF12_SDIO;
349     HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
350 
351     GPIO_InitStruct.Pin = GPIO_PIN_2;
352     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
353     GPIO_InitStruct.Pull = GPIO_NOPULL;
354     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
355     GPIO_InitStruct.Alternate = GPIO_AF12_SDIO;
356     HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
357 
358   /* USER CODE BEGIN SDIO_MspInit 1 */
359 
360   /* USER CODE END SDIO_MspInit 1 */
361   }
362 
363 }
364 
365 /**
366 * @brief SD MSP De-Initialization
367 * This function freeze the hardware resources used in this example
368 * @param hsd: SD handle pointer
369 * @retval None
370 */
HAL_SD_MspDeInit(SD_HandleTypeDef * hsd)371 void HAL_SD_MspDeInit(SD_HandleTypeDef* hsd)
372 {
373   if(hsd->Instance==SDIO)
374   {
375   /* USER CODE BEGIN SDIO_MspDeInit 0 */
376 
377   /* USER CODE END SDIO_MspDeInit 0 */
378     /* Peripheral clock disable */
379     __HAL_RCC_SDIO_CLK_DISABLE();
380 
381     /**SDIO GPIO Configuration
382     PC8     ------> SDIO_D0
383     PC9     ------> SDIO_D1
384     PC10     ------> SDIO_D2
385     PC11     ------> SDIO_D3
386     PC12     ------> SDIO_CK
387     PD2     ------> SDIO_CMD
388     */
389     HAL_GPIO_DeInit(GPIOC, GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11
390                           |GPIO_PIN_12);
391 
392     HAL_GPIO_DeInit(GPIOD, GPIO_PIN_2);
393 
394   /* USER CODE BEGIN SDIO_MspDeInit 1 */
395 
396   /* USER CODE END SDIO_MspDeInit 1 */
397   }
398 
399 }
400 
401 /**
402 * @brief SPI MSP Initialization
403 * This function configures the hardware resources used in this example
404 * @param hspi: SPI handle pointer
405 * @retval None
406 */
HAL_SPI_MspInit(SPI_HandleTypeDef * hspi)407 void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi)
408 {
409   GPIO_InitTypeDef GPIO_InitStruct = {0};
410   if(hspi->Instance==SPI1)
411   {
412   /* USER CODE BEGIN SPI1_MspInit 0 */
413 
414   /* USER CODE END SPI1_MspInit 0 */
415     /* Peripheral clock enable */
416     __HAL_RCC_SPI1_CLK_ENABLE();
417 
418     __HAL_RCC_GPIOA_CLK_ENABLE();
419     __HAL_RCC_GPIOB_CLK_ENABLE();
420     /**SPI1 GPIO Configuration
421     PA6     ------> SPI1_MISO
422     PB3     ------> SPI1_SCK
423     PB5     ------> SPI1_MOSI
424     */
425     GPIO_InitStruct.Pin = GPIO_PIN_6;
426     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
427     GPIO_InitStruct.Pull = GPIO_NOPULL;
428     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
429     GPIO_InitStruct.Alternate = GPIO_AF5_SPI1;
430     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
431 
432     GPIO_InitStruct.Pin = GPIO_PIN_3|GPIO_PIN_5;
433     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
434     GPIO_InitStruct.Pull = GPIO_NOPULL;
435     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
436     GPIO_InitStruct.Alternate = GPIO_AF5_SPI1;
437     HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
438 
439   /* USER CODE BEGIN SPI1_MspInit 1 */
440 
441   /* USER CODE END SPI1_MspInit 1 */
442   }
443   else if(hspi->Instance==SPI2)
444   {
445   /* USER CODE BEGIN SPI2_MspInit 0 */
446 
447   /* USER CODE END SPI2_MspInit 0 */
448     /* Peripheral clock enable */
449     __HAL_RCC_SPI2_CLK_ENABLE();
450 
451     __HAL_RCC_GPIOB_CLK_ENABLE();
452     /**SPI2 GPIO Configuration
453     PB13     ------> SPI2_SCK
454     PB14     ------> SPI2_MISO
455     PB15     ------> SPI2_MOSI
456     */
457     GPIO_InitStruct.Pin = GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15;
458     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
459     GPIO_InitStruct.Pull = GPIO_NOPULL;
460     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
461     GPIO_InitStruct.Alternate = GPIO_AF5_SPI2;
462     HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
463 
464   /* USER CODE BEGIN SPI2_MspInit 1 */
465 
466   /* USER CODE END SPI2_MspInit 1 */
467   }
468   else if(hspi->Instance==SPI5)
469   {
470   /* USER CODE BEGIN SPI5_MspInit 0 */
471 
472   /* USER CODE END SPI5_MspInit 0 */
473     /* Peripheral clock enable */
474     __HAL_RCC_SPI5_CLK_ENABLE();
475 
476     __HAL_RCC_GPIOF_CLK_ENABLE();
477     /**SPI5 GPIO Configuration
478     PF7     ------> SPI5_SCK
479     PF8     ------> SPI5_MISO
480     PF9     ------> SPI5_MOSI
481     */
482     GPIO_InitStruct.Pin = GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9;
483     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
484     GPIO_InitStruct.Pull = GPIO_NOPULL;
485     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
486     GPIO_InitStruct.Alternate = GPIO_AF5_SPI5;
487     HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
488 
489   /* USER CODE BEGIN SPI5_MspInit 1 */
490 
491   /* USER CODE END SPI5_MspInit 1 */
492   }
493 
494 }
495 
496 /**
497 * @brief SPI MSP De-Initialization
498 * This function freeze the hardware resources used in this example
499 * @param hspi: SPI handle pointer
500 * @retval None
501 */
HAL_SPI_MspDeInit(SPI_HandleTypeDef * hspi)502 void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi)
503 {
504   if(hspi->Instance==SPI1)
505   {
506   /* USER CODE BEGIN SPI1_MspDeInit 0 */
507 
508   /* USER CODE END SPI1_MspDeInit 0 */
509     /* Peripheral clock disable */
510     __HAL_RCC_SPI1_CLK_DISABLE();
511 
512     /**SPI1 GPIO Configuration
513     PA6     ------> SPI1_MISO
514     PB3     ------> SPI1_SCK
515     PB5     ------> SPI1_MOSI
516     */
517     HAL_GPIO_DeInit(GPIOA, GPIO_PIN_6);
518 
519     HAL_GPIO_DeInit(GPIOB, GPIO_PIN_3|GPIO_PIN_5);
520 
521   /* USER CODE BEGIN SPI1_MspDeInit 1 */
522 
523   /* USER CODE END SPI1_MspDeInit 1 */
524   }
525   else if(hspi->Instance==SPI2)
526   {
527   /* USER CODE BEGIN SPI2_MspDeInit 0 */
528 
529   /* USER CODE END SPI2_MspDeInit 0 */
530     /* Peripheral clock disable */
531     __HAL_RCC_SPI2_CLK_DISABLE();
532 
533     /**SPI2 GPIO Configuration
534     PB13     ------> SPI2_SCK
535     PB14     ------> SPI2_MISO
536     PB15     ------> SPI2_MOSI
537     */
538     HAL_GPIO_DeInit(GPIOB, GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15);
539 
540   /* USER CODE BEGIN SPI2_MspDeInit 1 */
541 
542   /* USER CODE END SPI2_MspDeInit 1 */
543   }
544   else if(hspi->Instance==SPI5)
545   {
546   /* USER CODE BEGIN SPI5_MspDeInit 0 */
547 
548   /* USER CODE END SPI5_MspDeInit 0 */
549     /* Peripheral clock disable */
550     __HAL_RCC_SPI5_CLK_DISABLE();
551 
552     /**SPI5 GPIO Configuration
553     PF7     ------> SPI5_SCK
554     PF8     ------> SPI5_MISO
555     PF9     ------> SPI5_MOSI
556     */
557     HAL_GPIO_DeInit(GPIOF, GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9);
558 
559   /* USER CODE BEGIN SPI5_MspDeInit 1 */
560 
561   /* USER CODE END SPI5_MspDeInit 1 */
562   }
563 
564 }
565 
566 /**
567 * @brief TIM_Base MSP Initialization
568 * This function configures the hardware resources used in this example
569 * @param htim_base: TIM_Base handle pointer
570 * @retval None
571 */
HAL_TIM_Base_MspInit(TIM_HandleTypeDef * htim_base)572 void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
573 {
574   if(htim_base->Instance==TIM2)
575   {
576   /* USER CODE BEGIN TIM2_MspInit 0 */
577 
578   /* USER CODE END TIM2_MspInit 0 */
579     /* Peripheral clock enable */
580     __HAL_RCC_TIM2_CLK_ENABLE();
581   /* USER CODE BEGIN TIM2_MspInit 1 */
582 
583   /* USER CODE END TIM2_MspInit 1 */
584   }
585   else if(htim_base->Instance==TIM11)
586   {
587   /* USER CODE BEGIN TIM11_MspInit 0 */
588 
589   /* USER CODE END TIM11_MspInit 0 */
590     /* Peripheral clock enable */
591     __HAL_RCC_TIM11_CLK_ENABLE();
592   /* USER CODE BEGIN TIM11_MspInit 1 */
593 
594   /* USER CODE END TIM11_MspInit 1 */
595   }
596   else if(htim_base->Instance==TIM13)
597   {
598   /* USER CODE BEGIN TIM13_MspInit 0 */
599 
600   /* USER CODE END TIM13_MspInit 0 */
601     /* Peripheral clock enable */
602     __HAL_RCC_TIM13_CLK_ENABLE();
603   /* USER CODE BEGIN TIM13_MspInit 1 */
604 
605   /* USER CODE END TIM13_MspInit 1 */
606   }
607   else if(htim_base->Instance==TIM14)
608   {
609   /* USER CODE BEGIN TIM14_MspInit 0 */
610 
611   /* USER CODE END TIM14_MspInit 0 */
612     /* Peripheral clock enable */
613     __HAL_RCC_TIM14_CLK_ENABLE();
614   /* USER CODE BEGIN TIM14_MspInit 1 */
615 
616   /* USER CODE END TIM14_MspInit 1 */
617   }
618 
619 }
620 
HAL_TIM_MspPostInit(TIM_HandleTypeDef * htim)621 void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim)
622 {
623   GPIO_InitTypeDef GPIO_InitStruct = {0};
624   if(htim->Instance==TIM2)
625   {
626   /* USER CODE BEGIN TIM2_MspPostInit 0 */
627 
628   /* USER CODE END TIM2_MspPostInit 0 */
629 
630     __HAL_RCC_GPIOA_CLK_ENABLE();
631     /**TIM2 GPIO Configuration
632     PA3     ------> TIM2_CH4
633     */
634     GPIO_InitStruct.Pin = GPIO_PIN_3;
635     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
636     GPIO_InitStruct.Pull = GPIO_NOPULL;
637     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
638     GPIO_InitStruct.Alternate = GPIO_AF1_TIM2;
639     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
640 
641   /* USER CODE BEGIN TIM2_MspPostInit 1 */
642 
643   /* USER CODE END TIM2_MspPostInit 1 */
644   }
645 
646 }
647 /**
648 * @brief TIM_Base MSP De-Initialization
649 * This function freeze the hardware resources used in this example
650 * @param htim_base: TIM_Base handle pointer
651 * @retval None
652 */
HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef * htim_base)653 void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base)
654 {
655   if(htim_base->Instance==TIM2)
656   {
657   /* USER CODE BEGIN TIM2_MspDeInit 0 */
658 
659   /* USER CODE END TIM2_MspDeInit 0 */
660     /* Peripheral clock disable */
661     __HAL_RCC_TIM2_CLK_DISABLE();
662   /* USER CODE BEGIN TIM2_MspDeInit 1 */
663 
664   /* USER CODE END TIM2_MspDeInit 1 */
665   }
666   else if(htim_base->Instance==TIM11)
667   {
668   /* USER CODE BEGIN TIM11_MspDeInit 0 */
669 
670   /* USER CODE END TIM11_MspDeInit 0 */
671     /* Peripheral clock disable */
672     __HAL_RCC_TIM11_CLK_DISABLE();
673   /* USER CODE BEGIN TIM11_MspDeInit 1 */
674 
675   /* USER CODE END TIM11_MspDeInit 1 */
676   }
677   else if(htim_base->Instance==TIM13)
678   {
679   /* USER CODE BEGIN TIM13_MspDeInit 0 */
680 
681   /* USER CODE END TIM13_MspDeInit 0 */
682     /* Peripheral clock disable */
683     __HAL_RCC_TIM13_CLK_DISABLE();
684   /* USER CODE BEGIN TIM13_MspDeInit 1 */
685 
686   /* USER CODE END TIM13_MspDeInit 1 */
687   }
688   else if(htim_base->Instance==TIM14)
689   {
690   /* USER CODE BEGIN TIM14_MspDeInit 0 */
691 
692   /* USER CODE END TIM14_MspDeInit 0 */
693     /* Peripheral clock disable */
694     __HAL_RCC_TIM14_CLK_DISABLE();
695   /* USER CODE BEGIN TIM14_MspDeInit 1 */
696 
697   /* USER CODE END TIM14_MspDeInit 1 */
698   }
699 
700 }
701 
702 /**
703 * @brief UART MSP Initialization
704 * This function configures the hardware resources used in this example
705 * @param huart: UART handle pointer
706 * @retval None
707 */
HAL_UART_MspInit(UART_HandleTypeDef * huart)708 void HAL_UART_MspInit(UART_HandleTypeDef* huart)
709 {
710   GPIO_InitTypeDef GPIO_InitStruct = {0};
711   if(huart->Instance==USART1)
712   {
713   /* USER CODE BEGIN USART1_MspInit 0 */
714 
715 
716   /* USER CODE END USART1_MspInit 0 */
717     /* Peripheral clock enable */
718     __HAL_RCC_USART1_CLK_ENABLE();
719 
720     __HAL_RCC_GPIOA_CLK_ENABLE();
721     /**USART1 GPIO Configuration
722     PA9     ------> USART1_TX
723     PA10     ------> USART1_RX
724     */
725     GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_10;
726     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
727     GPIO_InitStruct.Pull = GPIO_PULLUP;
728     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
729     GPIO_InitStruct.Alternate = GPIO_AF7_USART1;
730     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
731 
732     /* USART1 interrupt Init */
733     HAL_NVIC_SetPriority(USART1_IRQn, 0, 0);
734     HAL_NVIC_EnableIRQ(USART1_IRQn);
735   /* USER CODE BEGIN USART1_MspInit 1 */
736 
737   /* USER CODE END USART1_MspInit 1 */
738   }
739   else if(huart->Instance==USART2)
740   {
741   /* USER CODE BEGIN USART2_MspInit 0 */
742 
743   /* USER CODE END USART2_MspInit 0 */
744     /* Peripheral clock enable */
745     __HAL_RCC_USART2_CLK_ENABLE();
746 
747     __HAL_RCC_GPIOD_CLK_ENABLE();
748     /**USART2 GPIO Configuration
749     PD5     ------> USART2_TX
750     PD6     ------> USART2_RX
751     */
752     GPIO_InitStruct.Pin = GPIO_PIN_5|GPIO_PIN_6;
753     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
754     GPIO_InitStruct.Pull = GPIO_PULLUP;
755     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
756     GPIO_InitStruct.Alternate = GPIO_AF7_USART2;
757     HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
758 
759   /* USER CODE BEGIN USART2_MspInit 1 */
760 
761   /* USER CODE END USART2_MspInit 1 */
762   }
763   else if(huart->Instance==USART3)
764   {
765   /* USER CODE BEGIN USART3_MspInit 0 */
766 
767   /* USER CODE END USART3_MspInit 0 */
768     /* Peripheral clock enable */
769     __HAL_RCC_USART3_CLK_ENABLE();
770 
771     __HAL_RCC_GPIOB_CLK_ENABLE();
772     /**USART3 GPIO Configuration
773     PB10     ------> USART3_TX
774     PB11     ------> USART3_RX
775     */
776     GPIO_InitStruct.Pin = GPIO_PIN_10|GPIO_PIN_11;
777     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
778     GPIO_InitStruct.Pull = GPIO_PULLUP;
779     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
780     GPIO_InitStruct.Alternate = GPIO_AF7_USART3;
781     HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
782 
783   /* USER CODE BEGIN USART3_MspInit 1 */
784 
785   /* USER CODE END USART3_MspInit 1 */
786   }
787 
788 }
789 
790 /**
791 * @brief UART MSP De-Initialization
792 * This function freeze the hardware resources used in this example
793 * @param huart: UART handle pointer
794 * @retval None
795 */
HAL_UART_MspDeInit(UART_HandleTypeDef * huart)796 void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
797 {
798   if(huart->Instance==USART1)
799   {
800   /* USER CODE BEGIN USART1_MspDeInit 0 */
801 
802   /* USER CODE END USART1_MspDeInit 0 */
803     /* Peripheral clock disable */
804     __HAL_RCC_USART1_CLK_DISABLE();
805 
806     /**USART1 GPIO Configuration
807     PA9     ------> USART1_TX
808     PA10     ------> USART1_RX
809     */
810     HAL_GPIO_DeInit(GPIOA, GPIO_PIN_9|GPIO_PIN_10);
811 
812     /* USART1 interrupt DeInit */
813     HAL_NVIC_DisableIRQ(USART1_IRQn);
814   /* USER CODE BEGIN USART1_MspDeInit 1 */
815 
816   /* USER CODE END USART1_MspDeInit 1 */
817   }
818   else if(huart->Instance==USART2)
819   {
820   /* USER CODE BEGIN USART2_MspDeInit 0 */
821 
822   /* USER CODE END USART2_MspDeInit 0 */
823     /* Peripheral clock disable */
824     __HAL_RCC_USART2_CLK_DISABLE();
825 
826     /**USART2 GPIO Configuration
827     PD5     ------> USART2_TX
828     PD6     ------> USART2_RX
829     */
830     HAL_GPIO_DeInit(GPIOD, GPIO_PIN_5|GPIO_PIN_6);
831 
832   /* USER CODE BEGIN USART2_MspDeInit 1 */
833 
834   /* USER CODE END USART2_MspDeInit 1 */
835   }
836   else if(huart->Instance==USART3)
837   {
838   /* USER CODE BEGIN USART3_MspDeInit 0 */
839 
840   /* USER CODE END USART3_MspDeInit 0 */
841     /* Peripheral clock disable */
842     __HAL_RCC_USART3_CLK_DISABLE();
843 
844     /**USART3 GPIO Configuration
845     PB10     ------> USART3_TX
846     PB11     ------> USART3_RX
847     */
848     HAL_GPIO_DeInit(GPIOB, GPIO_PIN_10|GPIO_PIN_11);
849 
850   /* USER CODE BEGIN USART3_MspDeInit 1 */
851 
852   /* USER CODE END USART3_MspDeInit 1 */
853   }
854 
855 }
856 
857 /**
858 * @brief HCD MSP Initialization
859 * This function configures the hardware resources used in this example
860 * @param hhcd: HCD handle pointer
861 * @retval None
862 */
HAL_HCD_MspInit(HCD_HandleTypeDef * hhcd)863 void HAL_HCD_MspInit(HCD_HandleTypeDef* hhcd)
864 {
865   GPIO_InitTypeDef GPIO_InitStruct = {0};
866   if(hhcd->Instance==USB_OTG_FS)
867   {
868   /* USER CODE BEGIN USB_OTG_FS_MspInit 0 */
869 
870   /* USER CODE END USB_OTG_FS_MspInit 0 */
871 
872     __HAL_RCC_GPIOA_CLK_ENABLE();
873     /**USB_OTG_FS GPIO Configuration
874     PA11     ------> USB_OTG_FS_DM
875     PA12     ------> USB_OTG_FS_DP
876     */
877     GPIO_InitStruct.Pin = GPIO_PIN_11|GPIO_PIN_12;
878     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
879     GPIO_InitStruct.Pull = GPIO_NOPULL;
880     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
881     GPIO_InitStruct.Alternate = GPIO_AF10_OTG_FS;
882     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
883 
884     /* Peripheral clock enable */
885     __HAL_RCC_USB_OTG_FS_CLK_ENABLE();
886     /* USB_OTG_FS interrupt Init */
887     HAL_NVIC_SetPriority(OTG_FS_IRQn, 0, 0);
888     HAL_NVIC_EnableIRQ(OTG_FS_IRQn);
889   /* USER CODE BEGIN USB_OTG_FS_MspInit 1 */
890 
891   /* USER CODE END USB_OTG_FS_MspInit 1 */
892   }
893 
894 }
895 
896 /**
897 * @brief HCD MSP De-Initialization
898 * This function freeze the hardware resources used in this example
899 * @param hhcd: HCD handle pointer
900 * @retval None
901 */
HAL_HCD_MspDeInit(HCD_HandleTypeDef * hhcd)902 void HAL_HCD_MspDeInit(HCD_HandleTypeDef* hhcd)
903 {
904   if(hhcd->Instance==USB_OTG_FS)
905   {
906   /* USER CODE BEGIN USB_OTG_FS_MspDeInit 0 */
907 
908   /* USER CODE END USB_OTG_FS_MspDeInit 0 */
909     /* Peripheral clock disable */
910     __HAL_RCC_USB_OTG_FS_CLK_DISABLE();
911 
912     /**USB_OTG_FS GPIO Configuration
913     PA11     ------> USB_OTG_FS_DM
914     PA12     ------> USB_OTG_FS_DP
915     */
916     HAL_GPIO_DeInit(GPIOA, GPIO_PIN_11|GPIO_PIN_12);
917 
918     /* USB_OTG_FS interrupt DeInit */
919     HAL_NVIC_DisableIRQ(OTG_FS_IRQn);
920   /* USER CODE BEGIN USB_OTG_FS_MspDeInit 1 */
921 
922   /* USER CODE END USB_OTG_FS_MspDeInit 1 */
923   }
924 
925 }
926 
927 static uint32_t FMC_Initialized = 0;
928 
HAL_FMC_MspInit(void)929 static void HAL_FMC_MspInit(void){
930   /* USER CODE BEGIN FMC_MspInit 0 */
931 
932   /* USER CODE END FMC_MspInit 0 */
933   GPIO_InitTypeDef GPIO_InitStruct ={0};
934   if (FMC_Initialized) {
935     return;
936   }
937   FMC_Initialized = 1;
938   /* Peripheral clock enable */
939   __HAL_RCC_FMC_CLK_ENABLE();
940 
941   /** FMC GPIO Configuration
942   PF0   ------> FMC_A0
943   PF1   ------> FMC_A1
944   PF2   ------> FMC_A2
945   PF3   ------> FMC_A3
946   PF4   ------> FMC_A4
947   PF5   ------> FMC_A5
948   PC0   ------> FMC_SDNWE
949   PC2   ------> FMC_SDNE0
950   PC3   ------> FMC_SDCKE0
951   PF11   ------> FMC_SDNRAS
952   PF12   ------> FMC_A6
953   PF13   ------> FMC_A7
954   PF14   ------> FMC_A8
955   PF15   ------> FMC_A9
956   PG0   ------> FMC_A10
957   PG1   ------> FMC_A11
958   PE7   ------> FMC_D4
959   PE8   ------> FMC_D5
960   PE9   ------> FMC_D6
961   PE10   ------> FMC_D7
962   PE11   ------> FMC_D8
963   PE12   ------> FMC_D9
964   PE13   ------> FMC_D10
965   PE14   ------> FMC_D11
966   PE15   ------> FMC_D12
967   PD8   ------> FMC_D13
968   PD9   ------> FMC_D14
969   PD10   ------> FMC_D15
970   PD14   ------> FMC_D0
971   PD15   ------> FMC_D1
972   PG2   ------> FMC_A12
973   PG4   ------> FMC_BA0
974   PG5   ------> FMC_BA1
975   PG8   ------> FMC_SDCLK
976   PD0   ------> FMC_D2
977   PD1   ------> FMC_D3
978   PG15   ------> FMC_SDNCAS
979   PE0   ------> FMC_NBL0
980   PE1   ------> FMC_NBL1
981   */
982   GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3
983                           |GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_11|GPIO_PIN_12
984                           |GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15;
985   GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
986   GPIO_InitStruct.Pull = GPIO_NOPULL;
987   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
988   GPIO_InitStruct.Alternate = GPIO_AF12_FMC;
989   HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
990 
991   GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_2|GPIO_PIN_3;
992   GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
993   GPIO_InitStruct.Pull = GPIO_NOPULL;
994   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
995   GPIO_InitStruct.Alternate = GPIO_AF12_FMC;
996   HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
997 
998   GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_4
999                           |GPIO_PIN_5|GPIO_PIN_8|GPIO_PIN_15;
1000   GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
1001   GPIO_InitStruct.Pull = GPIO_NOPULL;
1002   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
1003   GPIO_InitStruct.Alternate = GPIO_AF12_FMC;
1004   HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
1005 
1006   GPIO_InitStruct.Pin = 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   GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
1010   GPIO_InitStruct.Pull = GPIO_NOPULL;
1011   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
1012   GPIO_InitStruct.Alternate = GPIO_AF12_FMC;
1013   HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
1014 
1015   GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_14
1016                           |GPIO_PIN_15|GPIO_PIN_0|GPIO_PIN_1;
1017   GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
1018   GPIO_InitStruct.Pull = GPIO_NOPULL;
1019   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
1020   GPIO_InitStruct.Alternate = GPIO_AF12_FMC;
1021   HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
1022 
1023   /* USER CODE BEGIN FMC_MspInit 1 */
1024 
1025   /* USER CODE END FMC_MspInit 1 */
1026 }
1027 
HAL_SDRAM_MspInit(SDRAM_HandleTypeDef * hsdram)1028 void HAL_SDRAM_MspInit(SDRAM_HandleTypeDef* hsdram){
1029   /* USER CODE BEGIN SDRAM_MspInit 0 */
1030 
1031   /* USER CODE END SDRAM_MspInit 0 */
1032   HAL_FMC_MspInit();
1033   /* USER CODE BEGIN SDRAM_MspInit 1 */
1034 
1035   /* USER CODE END SDRAM_MspInit 1 */
1036 }
1037 
1038 static uint32_t FMC_DeInitialized = 0;
1039 
HAL_FMC_MspDeInit(void)1040 static void HAL_FMC_MspDeInit(void){
1041   /* USER CODE BEGIN FMC_MspDeInit 0 */
1042 
1043   /* USER CODE END FMC_MspDeInit 0 */
1044   if (FMC_DeInitialized) {
1045     return;
1046   }
1047   FMC_DeInitialized = 1;
1048   /* Peripheral clock enable */
1049   __HAL_RCC_FMC_CLK_DISABLE();
1050 
1051   /** FMC GPIO Configuration
1052   PF0   ------> FMC_A0
1053   PF1   ------> FMC_A1
1054   PF2   ------> FMC_A2
1055   PF3   ------> FMC_A3
1056   PF4   ------> FMC_A4
1057   PF5   ------> FMC_A5
1058   PC0   ------> FMC_SDNWE
1059   PC2   ------> FMC_SDNE0
1060   PC3   ------> FMC_SDCKE0
1061   PF11   ------> FMC_SDNRAS
1062   PF12   ------> FMC_A6
1063   PF13   ------> FMC_A7
1064   PF14   ------> FMC_A8
1065   PF15   ------> FMC_A9
1066   PG0   ------> FMC_A10
1067   PG1   ------> FMC_A11
1068   PE7   ------> FMC_D4
1069   PE8   ------> FMC_D5
1070   PE9   ------> FMC_D6
1071   PE10   ------> FMC_D7
1072   PE11   ------> FMC_D8
1073   PE12   ------> FMC_D9
1074   PE13   ------> FMC_D10
1075   PE14   ------> FMC_D11
1076   PE15   ------> FMC_D12
1077   PD8   ------> FMC_D13
1078   PD9   ------> FMC_D14
1079   PD10   ------> FMC_D15
1080   PD14   ------> FMC_D0
1081   PD15   ------> FMC_D1
1082   PG2   ------> FMC_A12
1083   PG4   ------> FMC_BA0
1084   PG5   ------> FMC_BA1
1085   PG8   ------> FMC_SDCLK
1086   PD0   ------> FMC_D2
1087   PD1   ------> FMC_D3
1088   PG15   ------> FMC_SDNCAS
1089   PE0   ------> FMC_NBL0
1090   PE1   ------> FMC_NBL1
1091   */
1092   HAL_GPIO_DeInit(GPIOF, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3
1093                           |GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_11|GPIO_PIN_12
1094                           |GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15);
1095 
1096   HAL_GPIO_DeInit(GPIOC, GPIO_PIN_0|GPIO_PIN_2|GPIO_PIN_3);
1097 
1098   HAL_GPIO_DeInit(GPIOG, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_4
1099                           |GPIO_PIN_5|GPIO_PIN_8|GPIO_PIN_15);
1100 
1101   HAL_GPIO_DeInit(GPIOE, GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10
1102                           |GPIO_PIN_11|GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14
1103                           |GPIO_PIN_15|GPIO_PIN_0|GPIO_PIN_1);
1104 
1105   HAL_GPIO_DeInit(GPIOD, GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_14
1106                           |GPIO_PIN_15|GPIO_PIN_0|GPIO_PIN_1);
1107 
1108   /* USER CODE BEGIN FMC_MspDeInit 1 */
1109 
1110   /* USER CODE END FMC_MspDeInit 1 */
1111 }
1112 
HAL_SDRAM_MspDeInit(SDRAM_HandleTypeDef * hsdram)1113 void HAL_SDRAM_MspDeInit(SDRAM_HandleTypeDef* hsdram){
1114   /* USER CODE BEGIN SDRAM_MspDeInit 0 */
1115 
1116   /* USER CODE END SDRAM_MspDeInit 0 */
1117   HAL_FMC_MspDeInit();
1118   /* USER CODE BEGIN SDRAM_MspDeInit 1 */
1119 
1120   /* USER CODE END SDRAM_MspDeInit 1 */
1121 }
1122 
1123 static uint32_t SAI1_client =0;
1124 
HAL_SAI_MspInit(SAI_HandleTypeDef * hsai)1125 void HAL_SAI_MspInit(SAI_HandleTypeDef* hsai)
1126 {
1127 
1128   GPIO_InitTypeDef GPIO_InitStruct;
1129 /* SAI1 */
1130     if(hsai->Instance==SAI1_Block_A)
1131     {
1132     /* Peripheral clock enable */
1133     if (SAI1_client == 0)
1134     {
1135        __HAL_RCC_SAI1_CLK_ENABLE();
1136     }
1137     SAI1_client ++;
1138 
1139     /**SAI1_A_Block_A GPIO Configuration
1140     PE2     ------> SAI1_MCLK_A
1141     PE4     ------> SAI1_FS_A
1142     PE5     ------> SAI1_SCK_A
1143     PE6     ------> SAI1_SD_A
1144     */
1145     GPIO_InitStruct.Pin = GPIO_PIN_2|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6;
1146     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
1147     GPIO_InitStruct.Pull = GPIO_NOPULL;
1148     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
1149     GPIO_InitStruct.Alternate = GPIO_AF6_SAI1;
1150     HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
1151 
1152     }
1153     if(hsai->Instance==SAI1_Block_B)
1154     {
1155       /* Peripheral clock enable */
1156       if (SAI1_client == 0)
1157       {
1158        __HAL_RCC_SAI1_CLK_ENABLE();
1159       }
1160     SAI1_client ++;
1161 
1162     /**SAI1_B_Block_B GPIO Configuration
1163     PE3     ------> SAI1_SD_B
1164     */
1165     GPIO_InitStruct.Pin = GPIO_PIN_3;
1166     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
1167     GPIO_InitStruct.Pull = GPIO_NOPULL;
1168     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
1169     GPIO_InitStruct.Alternate = GPIO_AF6_SAI1;
1170     HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
1171 
1172     }
1173 }
1174 
HAL_SAI_MspDeInit(SAI_HandleTypeDef * hsai)1175 void HAL_SAI_MspDeInit(SAI_HandleTypeDef* hsai)
1176 {
1177 
1178 /* SAI1 */
1179     if(hsai->Instance==SAI1_Block_A)
1180     {
1181     SAI1_client --;
1182     if (SAI1_client == 0)
1183       {
1184       /* Peripheral clock disable */
1185        __HAL_RCC_SAI1_CLK_DISABLE();
1186       }
1187 
1188     /**SAI1_A_Block_A GPIO Configuration
1189     PE2     ------> SAI1_MCLK_A
1190     PE4     ------> SAI1_FS_A
1191     PE5     ------> SAI1_SCK_A
1192     PE6     ------> SAI1_SD_A
1193     */
1194     HAL_GPIO_DeInit(GPIOE, GPIO_PIN_2|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6);
1195 
1196     }
1197     if(hsai->Instance==SAI1_Block_B)
1198     {
1199     SAI1_client --;
1200       if (SAI1_client == 0)
1201       {
1202       /* Peripheral clock disable */
1203       __HAL_RCC_SAI1_CLK_DISABLE();
1204       }
1205 
1206     /**SAI1_B_Block_B GPIO Configuration
1207     PE3     ------> SAI1_SD_B
1208     */
1209     HAL_GPIO_DeInit(GPIOE, GPIO_PIN_3);
1210 
1211     }
1212 }
1213 
1214 /* USER CODE BEGIN 1 */
1215 
1216 /* USER CODE END 1 */
1217 
1218 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
1219