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