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