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
89 /* USER CODE BEGIN MspInit 0 */
90
91 /* USER CODE END MspInit 0 */
92
93 __HAL_RCC_SYSCFG_CLK_ENABLE();
94 __HAL_RCC_PWR_CLK_ENABLE();
95
96 /* System interrupt init*/
97
98 /* USER CODE BEGIN MspInit 1 */
99
100 /* USER CODE END MspInit 1 */
101 }
102
103 /**
104 * @brief ADC MSP Initialization
105 * This function configures the hardware resources used in this example
106 * @param hadc: ADC handle pointer
107 * @retval None
108 */
HAL_ADC_MspInit(ADC_HandleTypeDef * hadc)109 void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc)
110 {
111 GPIO_InitTypeDef GPIO_InitStruct = {0};
112 if(hadc->Instance==ADC1)
113 {
114 /* USER CODE BEGIN ADC1_MspInit 0 */
115
116 /* USER CODE END ADC1_MspInit 0 */
117 /* Peripheral clock enable */
118 __HAL_RCC_ADC1_CLK_ENABLE();
119
120 __HAL_RCC_GPIOA_CLK_ENABLE();
121 /**ADC1 GPIO Configuration
122 PA1 ------> ADC1_IN1
123 */
124 GPIO_InitStruct.Pin = GPIO_PIN_1;
125 GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
126 GPIO_InitStruct.Pull = GPIO_NOPULL;
127 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
128
129 /* USER CODE BEGIN ADC1_MspInit 1 */
130
131 /* USER CODE END ADC1_MspInit 1 */
132 }
133 else if(hadc->Instance==ADC3)
134 {
135 /* USER CODE BEGIN ADC3_MspInit 0 */
136
137 /* USER CODE END ADC3_MspInit 0 */
138 /* Peripheral clock enable */
139 __HAL_RCC_ADC3_CLK_ENABLE();
140
141 __HAL_RCC_GPIOF_CLK_ENABLE();
142 /**ADC3 GPIO Configuration
143 PF4 ------> ADC3_IN14
144 PF5 ------> ADC3_IN15
145 PF6 ------> ADC3_IN4
146 PF7 ------> ADC3_IN5
147 */
148 GPIO_InitStruct.Pin = GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7;
149 GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
150 GPIO_InitStruct.Pull = GPIO_NOPULL;
151 HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
152
153 /* USER CODE BEGIN ADC3_MspInit 1 */
154
155 /* USER CODE END ADC3_MspInit 1 */
156 }
157
158 }
159
160 /**
161 * @brief ADC MSP De-Initialization
162 * This function freeze the hardware resources used in this example
163 * @param hadc: ADC handle pointer
164 * @retval None
165 */
HAL_ADC_MspDeInit(ADC_HandleTypeDef * hadc)166 void HAL_ADC_MspDeInit(ADC_HandleTypeDef* hadc)
167 {
168 if(hadc->Instance==ADC1)
169 {
170 /* USER CODE BEGIN ADC1_MspDeInit 0 */
171
172 /* USER CODE END ADC1_MspDeInit 0 */
173 /* Peripheral clock disable */
174 __HAL_RCC_ADC1_CLK_DISABLE();
175
176 /**ADC1 GPIO Configuration
177 PA1 ------> ADC1_IN1
178 */
179 HAL_GPIO_DeInit(GPIOA, GPIO_PIN_1);
180
181 /* USER CODE BEGIN ADC1_MspDeInit 1 */
182
183 /* USER CODE END ADC1_MspDeInit 1 */
184 }
185 else if(hadc->Instance==ADC3)
186 {
187 /* USER CODE BEGIN ADC3_MspDeInit 0 */
188
189 /* USER CODE END ADC3_MspDeInit 0 */
190 /* Peripheral clock disable */
191 __HAL_RCC_ADC3_CLK_DISABLE();
192
193 /**ADC3 GPIO Configuration
194 PF4 ------> ADC3_IN14
195 PF5 ------> ADC3_IN15
196 PF6 ------> ADC3_IN4
197 PF7 ------> ADC3_IN5
198 */
199 HAL_GPIO_DeInit(GPIOF, GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7);
200
201 /* USER CODE BEGIN ADC3_MspDeInit 1 */
202
203 /* USER CODE END ADC3_MspDeInit 1 */
204 }
205
206 }
207
208 /**
209 * @brief DAC MSP Initialization
210 * This function configures the hardware resources used in this example
211 * @param hdac: DAC handle pointer
212 * @retval None
213 */
HAL_DAC_MspInit(DAC_HandleTypeDef * hdac)214 void HAL_DAC_MspInit(DAC_HandleTypeDef* hdac)
215 {
216 GPIO_InitTypeDef GPIO_InitStruct = {0};
217 if(hdac->Instance==DAC)
218 {
219 /* USER CODE BEGIN DAC_MspInit 0 */
220
221 /* USER CODE END DAC_MspInit 0 */
222 /* Peripheral clock enable */
223 __HAL_RCC_DAC_CLK_ENABLE();
224
225 __HAL_RCC_GPIOA_CLK_ENABLE();
226 /**DAC GPIO Configuration
227 PA4 ------> DAC_OUT1
228 */
229 GPIO_InitStruct.Pin = GPIO_PIN_4;
230 GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
231 GPIO_InitStruct.Pull = GPIO_NOPULL;
232 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
233
234 /* USER CODE BEGIN DAC_MspInit 1 */
235
236 /* USER CODE END DAC_MspInit 1 */
237 }
238
239 }
240
241 /**
242 * @brief DAC MSP De-Initialization
243 * This function freeze the hardware resources used in this example
244 * @param hdac: DAC handle pointer
245 * @retval None
246 */
HAL_DAC_MspDeInit(DAC_HandleTypeDef * hdac)247 void HAL_DAC_MspDeInit(DAC_HandleTypeDef* hdac)
248 {
249 if(hdac->Instance==DAC)
250 {
251 /* USER CODE BEGIN DAC_MspDeInit 0 */
252
253 /* USER CODE END DAC_MspDeInit 0 */
254 /* Peripheral clock disable */
255 __HAL_RCC_DAC_CLK_DISABLE();
256
257 /**DAC GPIO Configuration
258 PA4 ------> DAC_OUT1
259 */
260 HAL_GPIO_DeInit(GPIOA, GPIO_PIN_4);
261
262 /* USER CODE BEGIN DAC_MspDeInit 1 */
263
264 /* USER CODE END DAC_MspDeInit 1 */
265 }
266
267 }
268
269 /**
270 * @brief RTC MSP Initialization
271 * This function configures the hardware resources used in this example
272 * @param hrtc: RTC handle pointer
273 * @retval None
274 */
HAL_RTC_MspInit(RTC_HandleTypeDef * hrtc)275 void HAL_RTC_MspInit(RTC_HandleTypeDef* hrtc)
276 {
277 RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
278 if(hrtc->Instance==RTC)
279 {
280 /* USER CODE BEGIN RTC_MspInit 0 */
281
282 /* USER CODE END RTC_MspInit 0 */
283
284 /** Initializes the peripherals clock
285 */
286 PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_RTC;
287 PeriphClkInitStruct.RTCClockSelection = RCC_RTCCLKSOURCE_LSE;
288 if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
289 {
290 Error_Handler();
291 }
292
293 /* Peripheral clock enable */
294 __HAL_RCC_RTC_ENABLE();
295 /* USER CODE BEGIN RTC_MspInit 1 */
296
297 /* USER CODE END RTC_MspInit 1 */
298 }
299
300 }
301
302 /**
303 * @brief RTC MSP De-Initialization
304 * This function freeze the hardware resources used in this example
305 * @param hrtc: RTC handle pointer
306 * @retval None
307 */
HAL_RTC_MspDeInit(RTC_HandleTypeDef * hrtc)308 void HAL_RTC_MspDeInit(RTC_HandleTypeDef* hrtc)
309 {
310 if(hrtc->Instance==RTC)
311 {
312 /* USER CODE BEGIN RTC_MspDeInit 0 */
313
314 /* USER CODE END RTC_MspDeInit 0 */
315 /* Peripheral clock disable */
316 __HAL_RCC_RTC_DISABLE();
317 /* USER CODE BEGIN RTC_MspDeInit 1 */
318
319 /* USER CODE END RTC_MspDeInit 1 */
320 }
321
322 }
323
324 /**
325 * @brief SD MSP Initialization
326 * This function configures the hardware resources used in this example
327 * @param hsd: SD handle pointer
328 * @retval None
329 */
HAL_SD_MspInit(SD_HandleTypeDef * hsd)330 void HAL_SD_MspInit(SD_HandleTypeDef* hsd)
331 {
332 GPIO_InitTypeDef GPIO_InitStruct = {0};
333 if(hsd->Instance==SDIO)
334 {
335 /* USER CODE BEGIN SDIO_MspInit 0 */
336
337 /* USER CODE END SDIO_MspInit 0 */
338 /* Peripheral clock enable */
339 __HAL_RCC_SDIO_CLK_ENABLE();
340
341 __HAL_RCC_GPIOC_CLK_ENABLE();
342 __HAL_RCC_GPIOD_CLK_ENABLE();
343 /**SDIO GPIO Configuration
344 PC8 ------> SDIO_D0
345 PC9 ------> SDIO_D1
346 PC10 ------> SDIO_D2
347 PC11 ------> SDIO_D3
348 PC12 ------> SDIO_CK
349 PD2 ------> SDIO_CMD
350 */
351 GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11
352 |GPIO_PIN_12;
353 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
354 GPIO_InitStruct.Pull = GPIO_NOPULL;
355 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
356 GPIO_InitStruct.Alternate = GPIO_AF12_SDIO;
357 HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
358
359 GPIO_InitStruct.Pin = GPIO_PIN_2;
360 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
361 GPIO_InitStruct.Pull = GPIO_NOPULL;
362 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
363 GPIO_InitStruct.Alternate = GPIO_AF12_SDIO;
364 HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
365
366 /* USER CODE BEGIN SDIO_MspInit 1 */
367
368 /* USER CODE END SDIO_MspInit 1 */
369 }
370
371 }
372
373 /**
374 * @brief SD MSP De-Initialization
375 * This function freeze the hardware resources used in this example
376 * @param hsd: SD handle pointer
377 * @retval None
378 */
HAL_SD_MspDeInit(SD_HandleTypeDef * hsd)379 void HAL_SD_MspDeInit(SD_HandleTypeDef* hsd)
380 {
381 if(hsd->Instance==SDIO)
382 {
383 /* USER CODE BEGIN SDIO_MspDeInit 0 */
384
385 /* USER CODE END SDIO_MspDeInit 0 */
386 /* Peripheral clock disable */
387 __HAL_RCC_SDIO_CLK_DISABLE();
388
389 /**SDIO GPIO Configuration
390 PC8 ------> SDIO_D0
391 PC9 ------> SDIO_D1
392 PC10 ------> SDIO_D2
393 PC11 ------> SDIO_D3
394 PC12 ------> SDIO_CK
395 PD2 ------> SDIO_CMD
396 */
397 HAL_GPIO_DeInit(GPIOC, GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11
398 |GPIO_PIN_12);
399
400 HAL_GPIO_DeInit(GPIOD, GPIO_PIN_2);
401
402 /* USER CODE BEGIN SDIO_MspDeInit 1 */
403
404 /* USER CODE END SDIO_MspDeInit 1 */
405 }
406
407 }
408
409 /**
410 * @brief SPI MSP Initialization
411 * This function configures the hardware resources used in this example
412 * @param hspi: SPI handle pointer
413 * @retval None
414 */
HAL_SPI_MspInit(SPI_HandleTypeDef * hspi)415 void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi)
416 {
417 GPIO_InitTypeDef GPIO_InitStruct = {0};
418 if(hspi->Instance==SPI2)
419 {
420 /* USER CODE BEGIN SPI2_MspInit 0 */
421
422 /* USER CODE END SPI2_MspInit 0 */
423 /* Peripheral clock enable */
424 __HAL_RCC_SPI2_CLK_ENABLE();
425
426 __HAL_RCC_GPIOC_CLK_ENABLE();
427 __HAL_RCC_GPIOB_CLK_ENABLE();
428 /**SPI2 GPIO Configuration
429 PC2 ------> SPI2_MISO
430 PC3 ------> SPI2_MOSI
431 PB13 ------> SPI2_SCK
432 */
433 GPIO_InitStruct.Pin = GPIO_PIN_2|GPIO_PIN_3;
434 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
435 GPIO_InitStruct.Pull = GPIO_NOPULL;
436 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
437 GPIO_InitStruct.Alternate = GPIO_AF5_SPI2;
438 HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
439
440 GPIO_InitStruct.Pin = GPIO_PIN_13;
441 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
442 GPIO_InitStruct.Pull = GPIO_NOPULL;
443 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
444 GPIO_InitStruct.Alternate = GPIO_AF5_SPI2;
445 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
446
447 /* USER CODE BEGIN SPI2_MspInit 1 */
448
449 /* USER CODE END SPI2_MspInit 1 */
450 }
451
452 }
453
454 /**
455 * @brief SPI MSP De-Initialization
456 * This function freeze the hardware resources used in this example
457 * @param hspi: SPI handle pointer
458 * @retval None
459 */
HAL_SPI_MspDeInit(SPI_HandleTypeDef * hspi)460 void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi)
461 {
462 if(hspi->Instance==SPI2)
463 {
464 /* USER CODE BEGIN SPI2_MspDeInit 0 */
465
466 /* USER CODE END SPI2_MspDeInit 0 */
467 /* Peripheral clock disable */
468 __HAL_RCC_SPI2_CLK_DISABLE();
469
470 /**SPI2 GPIO Configuration
471 PC2 ------> SPI2_MISO
472 PC3 ------> SPI2_MOSI
473 PB13 ------> SPI2_SCK
474 */
475 HAL_GPIO_DeInit(GPIOC, GPIO_PIN_2|GPIO_PIN_3);
476
477 HAL_GPIO_DeInit(GPIOB, GPIO_PIN_13);
478
479 /* USER CODE BEGIN SPI2_MspDeInit 1 */
480
481 /* USER CODE END SPI2_MspDeInit 1 */
482 }
483
484 }
485
486 /**
487 * @brief TIM_Base MSP Initialization
488 * This function configures the hardware resources used in this example
489 * @param htim_base: TIM_Base handle pointer
490 * @retval None
491 */
HAL_TIM_Base_MspInit(TIM_HandleTypeDef * htim_base)492 void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
493 {
494 if(htim_base->Instance==TIM1)
495 {
496 /* USER CODE BEGIN TIM1_MspInit 0 */
497
498 /* USER CODE END TIM1_MspInit 0 */
499 /* Peripheral clock enable */
500 __HAL_RCC_TIM1_CLK_ENABLE();
501 /* USER CODE BEGIN TIM1_MspInit 1 */
502
503 /* USER CODE END TIM1_MspInit 1 */
504 }
505 else if(htim_base->Instance==TIM2)
506 {
507 /* USER CODE BEGIN TIM2_MspInit 0 */
508
509 /* USER CODE END TIM2_MspInit 0 */
510 /* Peripheral clock enable */
511 __HAL_RCC_TIM2_CLK_ENABLE();
512 /* USER CODE BEGIN TIM2_MspInit 1 */
513
514 /* USER CODE END TIM2_MspInit 1 */
515 }
516 else if(htim_base->Instance==TIM3)
517 {
518 /* USER CODE BEGIN TIM3_MspInit 0 */
519
520 /* USER CODE END TIM3_MspInit 0 */
521 /* Peripheral clock enable */
522 __HAL_RCC_TIM3_CLK_ENABLE();
523 /* USER CODE BEGIN TIM3_MspInit 1 */
524
525 /* USER CODE END TIM3_MspInit 1 */
526 }
527 else if(htim_base->Instance==TIM11)
528 {
529 /* USER CODE BEGIN TIM11_MspInit 0 */
530
531 /* USER CODE END TIM11_MspInit 0 */
532 /* Peripheral clock enable */
533 __HAL_RCC_TIM11_CLK_ENABLE();
534 /* USER CODE BEGIN TIM11_MspInit 1 */
535
536 /* USER CODE END TIM11_MspInit 1 */
537 }
538 else if(htim_base->Instance==TIM13)
539 {
540 /* USER CODE BEGIN TIM13_MspInit 0 */
541
542 /* USER CODE END TIM13_MspInit 0 */
543 /* Peripheral clock enable */
544 __HAL_RCC_TIM13_CLK_ENABLE();
545 /* USER CODE BEGIN TIM13_MspInit 1 */
546
547 /* USER CODE END TIM13_MspInit 1 */
548 }
549 else if(htim_base->Instance==TIM14)
550 {
551 /* USER CODE BEGIN TIM14_MspInit 0 */
552
553 /* USER CODE END TIM14_MspInit 0 */
554 /* Peripheral clock enable */
555 __HAL_RCC_TIM14_CLK_ENABLE();
556 /* USER CODE BEGIN TIM14_MspInit 1 */
557
558 /* USER CODE END TIM14_MspInit 1 */
559 }
560
561 }
562
563 /**
564 * @brief TIM_PWM MSP Initialization
565 * This function configures the hardware resources used in this example
566 * @param htim_pwm: TIM_PWM handle pointer
567 * @retval None
568 */
HAL_TIM_PWM_MspInit(TIM_HandleTypeDef * htim_pwm)569 void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef* htim_pwm)
570 {
571 if(htim_pwm->Instance==TIM4)
572 {
573 /* USER CODE BEGIN TIM4_MspInit 0 */
574
575 /* USER CODE END TIM4_MspInit 0 */
576 /* Peripheral clock enable */
577 __HAL_RCC_TIM4_CLK_ENABLE();
578 /* USER CODE BEGIN TIM4_MspInit 1 */
579
580 /* USER CODE END TIM4_MspInit 1 */
581 }
582
583 }
584
HAL_TIM_MspPostInit(TIM_HandleTypeDef * htim)585 void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim)
586 {
587 GPIO_InitTypeDef GPIO_InitStruct = {0};
588 if(htim->Instance==TIM1)
589 {
590 /* USER CODE BEGIN TIM1_MspPostInit 0 */
591
592 /* USER CODE END TIM1_MspPostInit 0 */
593 __HAL_RCC_GPIOE_CLK_ENABLE();
594 /**TIM1 GPIO Configuration
595 PE11 ------> TIM1_CH2
596 PE13 ------> TIM1_CH3
597 */
598 GPIO_InitStruct.Pin = GPIO_PIN_11|GPIO_PIN_13;
599 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
600 GPIO_InitStruct.Pull = GPIO_NOPULL;
601 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
602 GPIO_InitStruct.Alternate = GPIO_AF1_TIM1;
603 HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
604
605 /* USER CODE BEGIN TIM1_MspPostInit 1 */
606
607 /* USER CODE END TIM1_MspPostInit 1 */
608 }
609 else if(htim->Instance==TIM2)
610 {
611 /* USER CODE BEGIN TIM2_MspPostInit 0 */
612
613 /* USER CODE END TIM2_MspPostInit 0 */
614
615 __HAL_RCC_GPIOB_CLK_ENABLE();
616 /**TIM2 GPIO Configuration
617 PB10 ------> TIM2_CH3
618 PB11 ------> TIM2_CH4
619 */
620 GPIO_InitStruct.Pin = GPIO_PIN_10|GPIO_PIN_11;
621 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
622 GPIO_InitStruct.Pull = GPIO_NOPULL;
623 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
624 GPIO_InitStruct.Alternate = GPIO_AF1_TIM2;
625 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
626
627 /* USER CODE BEGIN TIM2_MspPostInit 1 */
628
629 /* USER CODE END TIM2_MspPostInit 1 */
630 }
631 else if(htim->Instance==TIM3)
632 {
633 /* USER CODE BEGIN TIM3_MspPostInit 0 */
634
635 /* USER CODE END TIM3_MspPostInit 0 */
636
637 __HAL_RCC_GPIOA_CLK_ENABLE();
638 __HAL_RCC_GPIOB_CLK_ENABLE();
639 /**TIM3 GPIO Configuration
640 PA7 ------> TIM3_CH2
641 PB1 ------> TIM3_CH4
642 */
643 GPIO_InitStruct.Pin = GPIO_PIN_7;
644 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
645 GPIO_InitStruct.Pull = GPIO_NOPULL;
646 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
647 GPIO_InitStruct.Alternate = GPIO_AF2_TIM3;
648 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
649
650 GPIO_InitStruct.Pin = GPIO_PIN_1;
651 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
652 GPIO_InitStruct.Pull = GPIO_NOPULL;
653 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
654 GPIO_InitStruct.Alternate = GPIO_AF2_TIM3;
655 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
656
657 /* USER CODE BEGIN TIM3_MspPostInit 1 */
658
659 /* USER CODE END TIM3_MspPostInit 1 */
660 }
661 else if(htim->Instance==TIM4)
662 {
663 /* USER CODE BEGIN TIM4_MspPostInit 0 */
664
665 /* USER CODE END TIM4_MspPostInit 0 */
666
667 __HAL_RCC_GPIOD_CLK_ENABLE();
668 /**TIM4 GPIO Configuration
669 PD12 ------> TIM4_CH1
670 */
671 GPIO_InitStruct.Pin = GPIO_PIN_12;
672 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
673 GPIO_InitStruct.Pull = GPIO_NOPULL;
674 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
675 GPIO_InitStruct.Alternate = GPIO_AF2_TIM4;
676 HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
677
678 /* USER CODE BEGIN TIM4_MspPostInit 1 */
679
680 /* USER CODE END TIM4_MspPostInit 1 */
681 }
682 else if(htim->Instance==TIM14)
683 {
684 /* USER CODE BEGIN TIM14_MspPostInit 0 */
685
686 /* USER CODE END TIM14_MspPostInit 0 */
687
688 __HAL_RCC_GPIOF_CLK_ENABLE();
689 /**TIM14 GPIO Configuration
690 PF9 ------> TIM14_CH1
691 */
692 GPIO_InitStruct.Pin = GPIO_PIN_9;
693 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
694 GPIO_InitStruct.Pull = GPIO_NOPULL;
695 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
696 GPIO_InitStruct.Alternate = GPIO_AF9_TIM14;
697 HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
698
699 /* USER CODE BEGIN TIM14_MspPostInit 1 */
700
701 /* USER CODE END TIM14_MspPostInit 1 */
702 }
703
704 }
705 /**
706 * @brief TIM_Base MSP De-Initialization
707 * This function freeze the hardware resources used in this example
708 * @param htim_base: TIM_Base handle pointer
709 * @retval None
710 */
HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef * htim_base)711 void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base)
712 {
713 if(htim_base->Instance==TIM1)
714 {
715 /* USER CODE BEGIN TIM1_MspDeInit 0 */
716
717 /* USER CODE END TIM1_MspDeInit 0 */
718 /* Peripheral clock disable */
719 __HAL_RCC_TIM1_CLK_DISABLE();
720 /* USER CODE BEGIN TIM1_MspDeInit 1 */
721
722 /* USER CODE END TIM1_MspDeInit 1 */
723 }
724 else if(htim_base->Instance==TIM2)
725 {
726 /* USER CODE BEGIN TIM2_MspDeInit 0 */
727
728 /* USER CODE END TIM2_MspDeInit 0 */
729 /* Peripheral clock disable */
730 __HAL_RCC_TIM2_CLK_DISABLE();
731 /* USER CODE BEGIN TIM2_MspDeInit 1 */
732
733 /* USER CODE END TIM2_MspDeInit 1 */
734 }
735 else if(htim_base->Instance==TIM3)
736 {
737 /* USER CODE BEGIN TIM3_MspDeInit 0 */
738
739 /* USER CODE END TIM3_MspDeInit 0 */
740 /* Peripheral clock disable */
741 __HAL_RCC_TIM3_CLK_DISABLE();
742 /* USER CODE BEGIN TIM3_MspDeInit 1 */
743
744 /* USER CODE END TIM3_MspDeInit 1 */
745 }
746 else if(htim_base->Instance==TIM11)
747 {
748 /* USER CODE BEGIN TIM11_MspDeInit 0 */
749
750 /* USER CODE END TIM11_MspDeInit 0 */
751 /* Peripheral clock disable */
752 __HAL_RCC_TIM11_CLK_DISABLE();
753 /* USER CODE BEGIN TIM11_MspDeInit 1 */
754
755 /* USER CODE END TIM11_MspDeInit 1 */
756 }
757 else if(htim_base->Instance==TIM13)
758 {
759 /* USER CODE BEGIN TIM13_MspDeInit 0 */
760
761 /* USER CODE END TIM13_MspDeInit 0 */
762 /* Peripheral clock disable */
763 __HAL_RCC_TIM13_CLK_DISABLE();
764 /* USER CODE BEGIN TIM13_MspDeInit 1 */
765
766 /* USER CODE END TIM13_MspDeInit 1 */
767 }
768 else if(htim_base->Instance==TIM14)
769 {
770 /* USER CODE BEGIN TIM14_MspDeInit 0 */
771
772 /* USER CODE END TIM14_MspDeInit 0 */
773 /* Peripheral clock disable */
774 __HAL_RCC_TIM14_CLK_DISABLE();
775 /* USER CODE BEGIN TIM14_MspDeInit 1 */
776
777 /* USER CODE END TIM14_MspDeInit 1 */
778 }
779
780 }
781
782 /**
783 * @brief TIM_PWM MSP De-Initialization
784 * This function freeze the hardware resources used in this example
785 * @param htim_pwm: TIM_PWM handle pointer
786 * @retval None
787 */
HAL_TIM_PWM_MspDeInit(TIM_HandleTypeDef * htim_pwm)788 void HAL_TIM_PWM_MspDeInit(TIM_HandleTypeDef* htim_pwm)
789 {
790 if(htim_pwm->Instance==TIM4)
791 {
792 /* USER CODE BEGIN TIM4_MspDeInit 0 */
793
794 /* USER CODE END TIM4_MspDeInit 0 */
795 /* Peripheral clock disable */
796 __HAL_RCC_TIM4_CLK_DISABLE();
797 /* USER CODE BEGIN TIM4_MspDeInit 1 */
798
799 /* USER CODE END TIM4_MspDeInit 1 */
800 }
801
802 }
803
804 /**
805 * @brief UART MSP Initialization
806 * This function configures the hardware resources used in this example
807 * @param huart: UART handle pointer
808 * @retval None
809 */
HAL_UART_MspInit(UART_HandleTypeDef * huart)810 void HAL_UART_MspInit(UART_HandleTypeDef* huart)
811 {
812 GPIO_InitTypeDef GPIO_InitStruct = {0};
813 if(huart->Instance==USART1)
814 {
815 /* USER CODE BEGIN USART1_MspInit 0 */
816
817 /* USER CODE END USART1_MspInit 0 */
818 /* Peripheral clock enable */
819 __HAL_RCC_USART1_CLK_ENABLE();
820
821 __HAL_RCC_GPIOA_CLK_ENABLE();
822 /**USART1 GPIO Configuration
823 PA9 ------> USART1_TX
824 PA10 ------> USART1_RX
825 */
826 GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_10;
827 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
828 GPIO_InitStruct.Pull = GPIO_PULLUP;
829 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
830 GPIO_InitStruct.Alternate = GPIO_AF7_USART1;
831 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
832
833 /* USART1 interrupt Init */
834 HAL_NVIC_SetPriority(USART1_IRQn, 0, 0);
835 HAL_NVIC_EnableIRQ(USART1_IRQn);
836 /* USER CODE BEGIN USART1_MspInit 1 */
837
838 /* USER CODE END USART1_MspInit 1 */
839 }
840 else if(huart->Instance==USART2)
841 {
842 /* USER CODE BEGIN USART2_MspInit 0 */
843
844 /* USER CODE END USART2_MspInit 0 */
845 /* Peripheral clock enable */
846 __HAL_RCC_USART2_CLK_ENABLE();
847
848 __HAL_RCC_GPIOA_CLK_ENABLE();
849 /**USART2 GPIO Configuration
850 PA2 ------> USART2_TX
851 PA3 ------> USART2_RX
852 */
853 GPIO_InitStruct.Pin = GPIO_PIN_2|GPIO_PIN_3;
854 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
855 GPIO_InitStruct.Pull = GPIO_NOPULL;
856 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
857 GPIO_InitStruct.Alternate = GPIO_AF7_USART2;
858 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
859
860 /* USER CODE BEGIN USART2_MspInit 1 */
861
862 /* USER CODE END USART2_MspInit 1 */
863 }
864
865 }
866
867 /**
868 * @brief UART MSP De-Initialization
869 * This function freeze the hardware resources used in this example
870 * @param huart: UART handle pointer
871 * @retval None
872 */
HAL_UART_MspDeInit(UART_HandleTypeDef * huart)873 void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
874 {
875 if(huart->Instance==USART1)
876 {
877 /* USER CODE BEGIN USART1_MspDeInit 0 */
878
879 /* USER CODE END USART1_MspDeInit 0 */
880 /* Peripheral clock disable */
881 __HAL_RCC_USART1_CLK_DISABLE();
882
883 /**USART1 GPIO Configuration
884 PA9 ------> USART1_TX
885 PA10 ------> USART1_RX
886 */
887 HAL_GPIO_DeInit(GPIOA, GPIO_PIN_9|GPIO_PIN_10);
888
889 /* USART1 interrupt DeInit */
890 HAL_NVIC_DisableIRQ(USART1_IRQn);
891 /* USER CODE BEGIN USART1_MspDeInit 1 */
892
893 /* USER CODE END USART1_MspDeInit 1 */
894 }
895 else if(huart->Instance==USART2)
896 {
897 /* USER CODE BEGIN USART2_MspDeInit 0 */
898
899 /* USER CODE END USART2_MspDeInit 0 */
900 /* Peripheral clock disable */
901 __HAL_RCC_USART2_CLK_DISABLE();
902
903 /**USART2 GPIO Configuration
904 PA2 ------> USART2_TX
905 PA3 ------> USART2_RX
906 */
907 HAL_GPIO_DeInit(GPIOA, GPIO_PIN_2|GPIO_PIN_3);
908
909 /* USER CODE BEGIN USART2_MspDeInit 1 */
910
911 /* USER CODE END USART2_MspDeInit 1 */
912 }
913
914 }
915
916 /**
917 * @brief PCD MSP Initialization
918 * This function configures the hardware resources used in this example
919 * @param hpcd: PCD handle pointer
920 * @retval None
921 */
HAL_PCD_MspInit(PCD_HandleTypeDef * hpcd)922 void HAL_PCD_MspInit(PCD_HandleTypeDef* hpcd)
923 {
924 GPIO_InitTypeDef GPIO_InitStruct = {0};
925 if(hpcd->Instance==USB_OTG_FS)
926 {
927 /* USER CODE BEGIN USB_OTG_FS_MspInit 0 */
928
929 /* USER CODE END USB_OTG_FS_MspInit 0 */
930
931 __HAL_RCC_GPIOA_CLK_ENABLE();
932 /**USB_OTG_FS GPIO Configuration
933 PA11 ------> USB_OTG_FS_DM
934 PA12 ------> USB_OTG_FS_DP
935 */
936 GPIO_InitStruct.Pin = GPIO_PIN_11|GPIO_PIN_12;
937 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
938 GPIO_InitStruct.Pull = GPIO_NOPULL;
939 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
940 GPIO_InitStruct.Alternate = GPIO_AF10_OTG_FS;
941 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
942
943 /* Peripheral clock enable */
944 __HAL_RCC_USB_OTG_FS_CLK_ENABLE();
945 /* USB_OTG_FS interrupt Init */
946 HAL_NVIC_SetPriority(OTG_FS_IRQn, 0, 0);
947 HAL_NVIC_EnableIRQ(OTG_FS_IRQn);
948 /* USER CODE BEGIN USB_OTG_FS_MspInit 1 */
949
950 /* USER CODE END USB_OTG_FS_MspInit 1 */
951 }
952
953 }
954
955 /**
956 * @brief PCD MSP De-Initialization
957 * This function freeze the hardware resources used in this example
958 * @param hpcd: PCD handle pointer
959 * @retval None
960 */
HAL_PCD_MspDeInit(PCD_HandleTypeDef * hpcd)961 void HAL_PCD_MspDeInit(PCD_HandleTypeDef* hpcd)
962 {
963 if(hpcd->Instance==USB_OTG_FS)
964 {
965 /* USER CODE BEGIN USB_OTG_FS_MspDeInit 0 */
966
967 /* USER CODE END USB_OTG_FS_MspDeInit 0 */
968 /* Peripheral clock disable */
969 __HAL_RCC_USB_OTG_FS_CLK_DISABLE();
970
971 /**USB_OTG_FS GPIO Configuration
972 PA11 ------> USB_OTG_FS_DM
973 PA12 ------> USB_OTG_FS_DP
974 */
975 HAL_GPIO_DeInit(GPIOA, GPIO_PIN_11|GPIO_PIN_12);
976
977 /* USB_OTG_FS interrupt DeInit */
978 HAL_NVIC_DisableIRQ(OTG_FS_IRQn);
979 /* USER CODE BEGIN USB_OTG_FS_MspDeInit 1 */
980
981 /* USER CODE END USB_OTG_FS_MspDeInit 1 */
982 }
983
984 }
985
986 static uint32_t FSMC_Initialized = 0;
987
HAL_FSMC_MspInit(void)988 static void HAL_FSMC_MspInit(void){
989 /* USER CODE BEGIN FSMC_MspInit 0 */
990
991 /* USER CODE END FSMC_MspInit 0 */
992 GPIO_InitTypeDef GPIO_InitStruct ={0};
993 if (FSMC_Initialized) {
994 return;
995 }
996 FSMC_Initialized = 1;
997
998 /* Peripheral clock enable */
999 __HAL_RCC_FSMC_CLK_ENABLE();
1000
1001 /** FSMC GPIO Configuration
1002 PE7 ------> FSMC_D4
1003 PE8 ------> FSMC_D5
1004 PE9 ------> FSMC_D6
1005 PE10 ------> FSMC_D7
1006 PD13 ------> FSMC_A18
1007 PD14 ------> FSMC_D0
1008 PD15 ------> FSMC_D1
1009 PD0 ------> FSMC_D2
1010 PD1 ------> FSMC_D3
1011 PD4 ------> FSMC_NOE
1012 PD5 ------> FSMC_NWE
1013 PG10 ------> FSMC_NE3
1014 */
1015 GPIO_InitStruct.Pin = GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10;
1016 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
1017 GPIO_InitStruct.Pull = GPIO_NOPULL;
1018 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
1019 GPIO_InitStruct.Alternate = GPIO_AF12_FSMC;
1020 HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
1021
1022 GPIO_InitStruct.Pin = GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15|GPIO_PIN_0
1023 |GPIO_PIN_1|GPIO_PIN_4|GPIO_PIN_5;
1024 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
1025 GPIO_InitStruct.Pull = GPIO_NOPULL;
1026 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
1027 GPIO_InitStruct.Alternate = GPIO_AF12_FSMC;
1028 HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
1029
1030 GPIO_InitStruct.Pin = GPIO_PIN_10;
1031 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
1032 GPIO_InitStruct.Pull = GPIO_NOPULL;
1033 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
1034 GPIO_InitStruct.Alternate = GPIO_AF12_FSMC;
1035 HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
1036
1037 /* USER CODE BEGIN FSMC_MspInit 1 */
1038
1039 /* USER CODE END FSMC_MspInit 1 */
1040 }
1041
HAL_SRAM_MspInit(SRAM_HandleTypeDef * hsram)1042 void HAL_SRAM_MspInit(SRAM_HandleTypeDef* hsram){
1043 /* USER CODE BEGIN SRAM_MspInit 0 */
1044
1045 /* USER CODE END SRAM_MspInit 0 */
1046 HAL_FSMC_MspInit();
1047 /* USER CODE BEGIN SRAM_MspInit 1 */
1048
1049 /* USER CODE END SRAM_MspInit 1 */
1050 }
1051
1052 static uint32_t FSMC_DeInitialized = 0;
1053
HAL_FSMC_MspDeInit(void)1054 static void HAL_FSMC_MspDeInit(void){
1055 /* USER CODE BEGIN FSMC_MspDeInit 0 */
1056
1057 /* USER CODE END FSMC_MspDeInit 0 */
1058 if (FSMC_DeInitialized) {
1059 return;
1060 }
1061 FSMC_DeInitialized = 1;
1062 /* Peripheral clock enable */
1063 __HAL_RCC_FSMC_CLK_DISABLE();
1064
1065 /** FSMC GPIO Configuration
1066 PE7 ------> FSMC_D4
1067 PE8 ------> FSMC_D5
1068 PE9 ------> FSMC_D6
1069 PE10 ------> FSMC_D7
1070 PD13 ------> FSMC_A18
1071 PD14 ------> FSMC_D0
1072 PD15 ------> FSMC_D1
1073 PD0 ------> FSMC_D2
1074 PD1 ------> FSMC_D3
1075 PD4 ------> FSMC_NOE
1076 PD5 ------> FSMC_NWE
1077 PG10 ------> FSMC_NE3
1078 */
1079 HAL_GPIO_DeInit(GPIOE, GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10);
1080
1081 HAL_GPIO_DeInit(GPIOD, GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15|GPIO_PIN_0
1082 |GPIO_PIN_1|GPIO_PIN_4|GPIO_PIN_5);
1083
1084 HAL_GPIO_DeInit(GPIOG, GPIO_PIN_10);
1085
1086 /* USER CODE BEGIN FSMC_MspDeInit 1 */
1087
1088 /* USER CODE END FSMC_MspDeInit 1 */
1089 }
1090
HAL_SRAM_MspDeInit(SRAM_HandleTypeDef * hsram)1091 void HAL_SRAM_MspDeInit(SRAM_HandleTypeDef* hsram){
1092 /* USER CODE BEGIN SRAM_MspDeInit 0 */
1093
1094 /* USER CODE END SRAM_MspDeInit 0 */
1095 HAL_FSMC_MspDeInit();
1096 /* USER CODE BEGIN SRAM_MspDeInit 1 */
1097
1098 /* USER CODE END SRAM_MspDeInit 1 */
1099 }
1100
1101 /* USER CODE BEGIN 1 */
1102
1103 /* USER CODE END 1 */
1104