1 /* USER CODE BEGIN Header */
2 /**
3   ******************************************************************************
4   * @file         stm32f1xx_hal_msp.c
5   * @brief        This file provides code for the MSP Initialization
6   *               and de-Initialization codes.
7   ******************************************************************************
8   * @attention
9   *
10   * Copyright (c) 2022 STMicroelectronics.
11   * All rights reserved.
12   *
13   * This software is licensed under terms that can be found in the LICENSE file
14   * in the root directory of this software component.
15   * If no LICENSE file comes with this software, it is provided AS-IS.
16   *
17   ******************************************************************************
18   */
19 /* USER CODE END Header */
20 
21 /* Includes ------------------------------------------------------------------*/
22 #include "main.h"
23 /* USER CODE BEGIN Includes */
24 #include <drv_common.h>
25 /* USER CODE END Includes */
26 
27 /* Private typedef -----------------------------------------------------------*/
28 /* USER CODE BEGIN TD */
29 
30 /* USER CODE END TD */
31 
32 /* Private define ------------------------------------------------------------*/
33 /* USER CODE BEGIN Define */
34 
35 /* USER CODE END Define */
36 
37 /* Private macro -------------------------------------------------------------*/
38 /* USER CODE BEGIN Macro */
39 
40 /* USER CODE END Macro */
41 
42 /* Private variables ---------------------------------------------------------*/
43 /* USER CODE BEGIN PV */
44 
45 /* USER CODE END PV */
46 
47 /* Private function prototypes -----------------------------------------------*/
48 /* USER CODE BEGIN PFP */
49 
50 /* USER CODE END PFP */
51 
52 /* External functions --------------------------------------------------------*/
53 /* USER CODE BEGIN ExternalFunctions */
54 
55 /* USER CODE END ExternalFunctions */
56 
57 /* USER CODE BEGIN 0 */
58 
59 /* USER CODE END 0 */
60 
61 void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim);
62                     /**
63   * Initializes the Global MSP.
64   */
HAL_MspInit(void)65 void HAL_MspInit(void)
66 {
67   /* USER CODE BEGIN MspInit 0 */
68 
69   /* USER CODE END MspInit 0 */
70 
71   __HAL_RCC_AFIO_CLK_ENABLE();
72   __HAL_RCC_PWR_CLK_ENABLE();
73 
74   /* System interrupt init*/
75 
76   /** NOJTAG: JTAG-DP Disabled and SW-DP Enabled
77   */
78   __HAL_AFIO_REMAP_SWJ_NOJTAG();
79 
80   /* USER CODE BEGIN MspInit 1 */
81 
82   /* USER CODE END MspInit 1 */
83 }
84 
85 /**
86 * @brief ADC MSP Initialization
87 * This function configures the hardware resources used in this example
88 * @param hadc: ADC handle pointer
89 * @retval None
90 */
HAL_ADC_MspInit(ADC_HandleTypeDef * hadc)91 void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc)
92 {
93   GPIO_InitTypeDef GPIO_InitStruct = {0};
94   if(hadc->Instance==ADC1)
95   {
96   /* USER CODE BEGIN ADC1_MspInit 0 */
97 
98   /* USER CODE END ADC1_MspInit 0 */
99     /* Peripheral clock enable */
100     __HAL_RCC_ADC1_CLK_ENABLE();
101 
102     __HAL_RCC_GPIOC_CLK_ENABLE();
103     /**ADC1 GPIO Configuration
104     PC0     ------> ADC1_IN10
105     */
106     GPIO_InitStruct.Pin = GPIO_PIN_0;
107     GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
108     HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
109 
110   /* USER CODE BEGIN ADC1_MspInit 1 */
111 
112   /* USER CODE END ADC1_MspInit 1 */
113   }
114   else if(hadc->Instance==ADC2)
115   {
116   /* USER CODE BEGIN ADC2_MspInit 0 */
117 
118   /* USER CODE END ADC2_MspInit 0 */
119     /* Peripheral clock enable */
120     __HAL_RCC_ADC2_CLK_ENABLE();
121 
122     __HAL_RCC_GPIOC_CLK_ENABLE();
123     /**ADC2 GPIO Configuration
124     PC0     ------> ADC2_IN10
125     */
126     GPIO_InitStruct.Pin = GPIO_PIN_0;
127     GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
128     HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
129 
130   /* USER CODE BEGIN ADC2_MspInit 1 */
131 
132   /* USER CODE END ADC2_MspInit 1 */
133   }
134   else if(hadc->Instance==ADC3)
135   {
136   /* USER CODE BEGIN ADC3_MspInit 0 */
137 
138   /* USER CODE END ADC3_MspInit 0 */
139     /* Peripheral clock enable */
140     __HAL_RCC_ADC3_CLK_ENABLE();
141 
142     __HAL_RCC_GPIOC_CLK_ENABLE();
143     /**ADC3 GPIO Configuration
144     PC0     ------> ADC3_IN10
145     */
146     GPIO_InitStruct.Pin = GPIO_PIN_0;
147     GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
148     HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
149 
150   /* USER CODE BEGIN ADC3_MspInit 1 */
151 
152   /* USER CODE END ADC3_MspInit 1 */
153   }
154 
155 }
156 
157 /**
158 * @brief ADC MSP De-Initialization
159 * This function freeze the hardware resources used in this example
160 * @param hadc: ADC handle pointer
161 * @retval None
162 */
HAL_ADC_MspDeInit(ADC_HandleTypeDef * hadc)163 void HAL_ADC_MspDeInit(ADC_HandleTypeDef* hadc)
164 {
165   if(hadc->Instance==ADC1)
166   {
167   /* USER CODE BEGIN ADC1_MspDeInit 0 */
168 
169   /* USER CODE END ADC1_MspDeInit 0 */
170     /* Peripheral clock disable */
171     __HAL_RCC_ADC1_CLK_DISABLE();
172 
173     /**ADC1 GPIO Configuration
174     PC0     ------> ADC1_IN10
175     */
176     HAL_GPIO_DeInit(GPIOC, GPIO_PIN_0);
177 
178   /* USER CODE BEGIN ADC1_MspDeInit 1 */
179 
180   /* USER CODE END ADC1_MspDeInit 1 */
181   }
182   else if(hadc->Instance==ADC2)
183   {
184   /* USER CODE BEGIN ADC2_MspDeInit 0 */
185 
186   /* USER CODE END ADC2_MspDeInit 0 */
187     /* Peripheral clock disable */
188     __HAL_RCC_ADC2_CLK_DISABLE();
189 
190     /**ADC2 GPIO Configuration
191     PC0     ------> ADC2_IN10
192     */
193     HAL_GPIO_DeInit(GPIOC, GPIO_PIN_0);
194 
195   /* USER CODE BEGIN ADC2_MspDeInit 1 */
196 
197   /* USER CODE END ADC2_MspDeInit 1 */
198   }
199   else if(hadc->Instance==ADC3)
200   {
201   /* USER CODE BEGIN ADC3_MspDeInit 0 */
202 
203   /* USER CODE END ADC3_MspDeInit 0 */
204     /* Peripheral clock disable */
205     __HAL_RCC_ADC3_CLK_DISABLE();
206 
207     /**ADC3 GPIO Configuration
208     PC0     ------> ADC3_IN10
209     */
210     HAL_GPIO_DeInit(GPIOC, GPIO_PIN_0);
211 
212   /* USER CODE BEGIN ADC3_MspDeInit 1 */
213 
214   /* USER CODE END ADC3_MspDeInit 1 */
215   }
216 
217 }
218 
219 /**
220 * @brief CAN MSP Initialization
221 * This function configures the hardware resources used in this example
222 * @param hcan: CAN handle pointer
223 * @retval None
224 */
HAL_CAN_MspInit(CAN_HandleTypeDef * hcan)225 void HAL_CAN_MspInit(CAN_HandleTypeDef* hcan)
226 {
227   GPIO_InitTypeDef GPIO_InitStruct = {0};
228   if(hcan->Instance==CAN1)
229   {
230   /* USER CODE BEGIN CAN1_MspInit 0 */
231 
232   /* USER CODE END CAN1_MspInit 0 */
233     /* Peripheral clock enable */
234     __HAL_RCC_CAN1_CLK_ENABLE();
235 
236     __HAL_RCC_GPIOB_CLK_ENABLE();
237     /**CAN GPIO Configuration
238     PB8     ------> CAN_RX
239     PB9     ------> CAN_TX
240     */
241     GPIO_InitStruct.Pin = GPIO_PIN_8;
242     GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
243     GPIO_InitStruct.Pull = GPIO_NOPULL;
244     HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
245 
246     GPIO_InitStruct.Pin = GPIO_PIN_9;
247     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
248     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
249     HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
250 
251     __HAL_AFIO_REMAP_CAN1_2();
252 
253   /* USER CODE BEGIN CAN1_MspInit 1 */
254 
255   /* USER CODE END CAN1_MspInit 1 */
256   }
257 
258 }
259 
260 /**
261 * @brief CAN MSP De-Initialization
262 * This function freeze the hardware resources used in this example
263 * @param hcan: CAN handle pointer
264 * @retval None
265 */
HAL_CAN_MspDeInit(CAN_HandleTypeDef * hcan)266 void HAL_CAN_MspDeInit(CAN_HandleTypeDef* hcan)
267 {
268   if(hcan->Instance==CAN1)
269   {
270   /* USER CODE BEGIN CAN1_MspDeInit 0 */
271 
272   /* USER CODE END CAN1_MspDeInit 0 */
273     /* Peripheral clock disable */
274     __HAL_RCC_CAN1_CLK_DISABLE();
275 
276     /**CAN GPIO Configuration
277     PB8     ------> CAN_RX
278     PB9     ------> CAN_TX
279     */
280     HAL_GPIO_DeInit(GPIOB, GPIO_PIN_8|GPIO_PIN_9);
281 
282   /* USER CODE BEGIN CAN1_MspDeInit 1 */
283 
284   /* USER CODE END CAN1_MspDeInit 1 */
285   }
286 
287 }
288 
289 /**
290 * @brief I2C MSP Initialization
291 * This function configures the hardware resources used in this example
292 * @param hi2c: I2C handle pointer
293 * @retval None
294 */
HAL_I2C_MspInit(I2C_HandleTypeDef * hi2c)295 void HAL_I2C_MspInit(I2C_HandleTypeDef* hi2c)
296 {
297   GPIO_InitTypeDef GPIO_InitStruct = {0};
298   if(hi2c->Instance==I2C1)
299   {
300   /* USER CODE BEGIN I2C1_MspInit 0 */
301 
302   /* USER CODE END I2C1_MspInit 0 */
303 
304     __HAL_RCC_GPIOB_CLK_ENABLE();
305     /**I2C1 GPIO Configuration
306     PB6     ------> I2C1_SCL
307     PB7     ------> I2C1_SDA
308     */
309     GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_7;
310     GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
311     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
312     HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
313 
314     /* Peripheral clock enable */
315     __HAL_RCC_I2C1_CLK_ENABLE();
316   /* USER CODE BEGIN I2C1_MspInit 1 */
317 
318   /* USER CODE END I2C1_MspInit 1 */
319   }
320 
321 }
322 
323 /**
324 * @brief I2C MSP De-Initialization
325 * This function freeze the hardware resources used in this example
326 * @param hi2c: I2C handle pointer
327 * @retval None
328 */
HAL_I2C_MspDeInit(I2C_HandleTypeDef * hi2c)329 void HAL_I2C_MspDeInit(I2C_HandleTypeDef* hi2c)
330 {
331   if(hi2c->Instance==I2C1)
332   {
333   /* USER CODE BEGIN I2C1_MspDeInit 0 */
334 
335   /* USER CODE END I2C1_MspDeInit 0 */
336     /* Peripheral clock disable */
337     __HAL_RCC_I2C1_CLK_DISABLE();
338 
339     /**I2C1 GPIO Configuration
340     PB6     ------> I2C1_SCL
341     PB7     ------> I2C1_SDA
342     */
343     HAL_GPIO_DeInit(GPIOB, GPIO_PIN_6);
344 
345     HAL_GPIO_DeInit(GPIOB, GPIO_PIN_7);
346 
347   /* USER CODE BEGIN I2C1_MspDeInit 1 */
348 
349   /* USER CODE END I2C1_MspDeInit 1 */
350   }
351 
352 }
353 
354 /**
355 * @brief RTC MSP Initialization
356 * This function configures the hardware resources used in this example
357 * @param hrtc: RTC handle pointer
358 * @retval None
359 */
HAL_RTC_MspInit(RTC_HandleTypeDef * hrtc)360 void HAL_RTC_MspInit(RTC_HandleTypeDef* hrtc)
361 {
362   if(hrtc->Instance==RTC)
363   {
364   /* USER CODE BEGIN RTC_MspInit 0 */
365 
366   /* USER CODE END RTC_MspInit 0 */
367     HAL_PWR_EnableBkUpAccess();
368     /* Enable BKP CLK enable for backup registers */
369     __HAL_RCC_BKP_CLK_ENABLE();
370     /* Peripheral clock enable */
371     __HAL_RCC_RTC_ENABLE();
372   /* USER CODE BEGIN RTC_MspInit 1 */
373 
374   /* USER CODE END RTC_MspInit 1 */
375   }
376 
377 }
378 
379 /**
380 * @brief RTC MSP De-Initialization
381 * This function freeze the hardware resources used in this example
382 * @param hrtc: RTC handle pointer
383 * @retval None
384 */
HAL_RTC_MspDeInit(RTC_HandleTypeDef * hrtc)385 void HAL_RTC_MspDeInit(RTC_HandleTypeDef* hrtc)
386 {
387   if(hrtc->Instance==RTC)
388   {
389   /* USER CODE BEGIN RTC_MspDeInit 0 */
390 
391   /* USER CODE END RTC_MspDeInit 0 */
392     /* Peripheral clock disable */
393     __HAL_RCC_RTC_DISABLE();
394   /* USER CODE BEGIN RTC_MspDeInit 1 */
395 
396   /* USER CODE END RTC_MspDeInit 1 */
397   }
398 
399 }
400 
401 /**
402 * @brief SD MSP Initialization
403 * This function configures the hardware resources used in this example
404 * @param hsd: SD handle pointer
405 * @retval None
406 */
HAL_SD_MspInit(SD_HandleTypeDef * hsd)407 void HAL_SD_MspInit(SD_HandleTypeDef* hsd)
408 {
409   GPIO_InitTypeDef GPIO_InitStruct = {0};
410   if(hsd->Instance==SDIO)
411   {
412   /* USER CODE BEGIN SDIO_MspInit 0 */
413 
414   /* USER CODE END SDIO_MspInit 0 */
415     /* Peripheral clock enable */
416     __HAL_RCC_SDIO_CLK_ENABLE();
417 
418     __HAL_RCC_GPIOC_CLK_ENABLE();
419     __HAL_RCC_GPIOD_CLK_ENABLE();
420     /**SDIO GPIO Configuration
421     PC8     ------> SDIO_D0
422     PC9     ------> SDIO_D1
423     PC10     ------> SDIO_D2
424     PC11     ------> SDIO_D3
425     PC12     ------> SDIO_CK
426     PD2     ------> SDIO_CMD
427     */
428     GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11
429                           |GPIO_PIN_12;
430     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
431     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
432     HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
433 
434     GPIO_InitStruct.Pin = GPIO_PIN_2;
435     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
436     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
437     HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
438 
439   /* USER CODE BEGIN SDIO_MspInit 1 */
440 
441   /* USER CODE END SDIO_MspInit 1 */
442   }
443 
444 }
445 
446 /**
447 * @brief SD MSP De-Initialization
448 * This function freeze the hardware resources used in this example
449 * @param hsd: SD handle pointer
450 * @retval None
451 */
HAL_SD_MspDeInit(SD_HandleTypeDef * hsd)452 void HAL_SD_MspDeInit(SD_HandleTypeDef* hsd)
453 {
454   if(hsd->Instance==SDIO)
455   {
456   /* USER CODE BEGIN SDIO_MspDeInit 0 */
457 
458   /* USER CODE END SDIO_MspDeInit 0 */
459     /* Peripheral clock disable */
460     __HAL_RCC_SDIO_CLK_DISABLE();
461 
462     /**SDIO GPIO Configuration
463     PC8     ------> SDIO_D0
464     PC9     ------> SDIO_D1
465     PC10     ------> SDIO_D2
466     PC11     ------> SDIO_D3
467     PC12     ------> SDIO_CK
468     PD2     ------> SDIO_CMD
469     */
470     HAL_GPIO_DeInit(GPIOC, GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11
471                           |GPIO_PIN_12);
472 
473     HAL_GPIO_DeInit(GPIOD, GPIO_PIN_2);
474 
475   /* USER CODE BEGIN SDIO_MspDeInit 1 */
476 
477   /* USER CODE END SDIO_MspDeInit 1 */
478   }
479 
480 }
481 
482 /**
483 * @brief SPI MSP Initialization
484 * This function configures the hardware resources used in this example
485 * @param hspi: SPI handle pointer
486 * @retval None
487 */
HAL_SPI_MspInit(SPI_HandleTypeDef * hspi)488 void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi)
489 {
490   GPIO_InitTypeDef GPIO_InitStruct = {0};
491   if(hspi->Instance==SPI1)
492   {
493   /* USER CODE BEGIN SPI1_MspInit 0 */
494 
495   /* USER CODE END SPI1_MspInit 0 */
496     /* Peripheral clock enable */
497     __HAL_RCC_SPI1_CLK_ENABLE();
498 
499     __HAL_RCC_GPIOA_CLK_ENABLE();
500     /**SPI1 GPIO Configuration
501     PA5     ------> SPI1_SCK
502     PA6     ------> SPI1_MISO
503     PA7     ------> SPI1_MOSI
504     */
505     GPIO_InitStruct.Pin = GPIO_PIN_5|GPIO_PIN_7;
506     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
507     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
508     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
509 
510     GPIO_InitStruct.Pin = GPIO_PIN_6;
511     GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
512     GPIO_InitStruct.Pull = GPIO_NOPULL;
513     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
514 
515   /* USER CODE BEGIN SPI1_MspInit 1 */
516 
517   /* USER CODE END SPI1_MspInit 1 */
518   }
519   else if(hspi->Instance==SPI2)
520   {
521   /* USER CODE BEGIN SPI2_MspInit 0 */
522 
523   /* USER CODE END SPI2_MspInit 0 */
524     /* Peripheral clock enable */
525     __HAL_RCC_SPI2_CLK_ENABLE();
526 
527     __HAL_RCC_GPIOB_CLK_ENABLE();
528     /**SPI2 GPIO Configuration
529     PB13     ------> SPI2_SCK
530     PB14     ------> SPI2_MISO
531     PB15     ------> SPI2_MOSI
532     */
533     GPIO_InitStruct.Pin = GPIO_PIN_13|GPIO_PIN_15;
534     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
535     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
536     HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
537 
538     GPIO_InitStruct.Pin = GPIO_PIN_14;
539     GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
540     GPIO_InitStruct.Pull = GPIO_NOPULL;
541     HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
542 
543   /* USER CODE BEGIN SPI2_MspInit 1 */
544 
545   /* USER CODE END SPI2_MspInit 1 */
546   }
547 
548 }
549 
550 /**
551 * @brief SPI MSP De-Initialization
552 * This function freeze the hardware resources used in this example
553 * @param hspi: SPI handle pointer
554 * @retval None
555 */
HAL_SPI_MspDeInit(SPI_HandleTypeDef * hspi)556 void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi)
557 {
558   if(hspi->Instance==SPI1)
559   {
560   /* USER CODE BEGIN SPI1_MspDeInit 0 */
561 
562   /* USER CODE END SPI1_MspDeInit 0 */
563     /* Peripheral clock disable */
564     __HAL_RCC_SPI1_CLK_DISABLE();
565 
566     /**SPI1 GPIO Configuration
567     PA5     ------> SPI1_SCK
568     PA6     ------> SPI1_MISO
569     PA7     ------> SPI1_MOSI
570     */
571     HAL_GPIO_DeInit(GPIOA, GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7);
572 
573   /* USER CODE BEGIN SPI1_MspDeInit 1 */
574 
575   /* USER CODE END SPI1_MspDeInit 1 */
576   }
577   else if(hspi->Instance==SPI2)
578   {
579   /* USER CODE BEGIN SPI2_MspDeInit 0 */
580 
581   /* USER CODE END SPI2_MspDeInit 0 */
582     /* Peripheral clock disable */
583     __HAL_RCC_SPI2_CLK_DISABLE();
584 
585     /**SPI2 GPIO Configuration
586     PB13     ------> SPI2_SCK
587     PB14     ------> SPI2_MISO
588     PB15     ------> SPI2_MOSI
589     */
590     HAL_GPIO_DeInit(GPIOB, GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15);
591 
592   /* USER CODE BEGIN SPI2_MspDeInit 1 */
593 
594   /* USER CODE END SPI2_MspDeInit 1 */
595   }
596 
597 }
598 
599 /**
600 * @brief TIM_Base MSP Initialization
601 * This function configures the hardware resources used in this example
602 * @param htim_base: TIM_Base handle pointer
603 * @retval None
604 */
HAL_TIM_Base_MspInit(TIM_HandleTypeDef * htim_base)605 void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
606 {
607   if(htim_base->Instance==TIM2)
608   {
609   /* USER CODE BEGIN TIM2_MspInit 0 */
610 
611   /* USER CODE END TIM2_MspInit 0 */
612     /* Peripheral clock enable */
613     __HAL_RCC_TIM2_CLK_ENABLE();
614   /* USER CODE BEGIN TIM2_MspInit 1 */
615 
616   /* USER CODE END TIM2_MspInit 1 */
617   }
618   else if(htim_base->Instance==TIM3)
619   {
620   /* USER CODE BEGIN TIM3_MspInit 0 */
621 
622   /* USER CODE END TIM3_MspInit 0 */
623     /* Peripheral clock enable */
624     __HAL_RCC_TIM3_CLK_ENABLE();
625   /* USER CODE BEGIN TIM3_MspInit 1 */
626 
627   /* USER CODE END TIM3_MspInit 1 */
628   }
629   else if(htim_base->Instance==TIM4)
630   {
631   /* USER CODE BEGIN TIM4_MspInit 0 */
632 
633   /* USER CODE END TIM4_MspInit 0 */
634     /* Peripheral clock enable */
635     __HAL_RCC_TIM4_CLK_ENABLE();
636   /* USER CODE BEGIN TIM4_MspInit 1 */
637 
638   /* USER CODE END TIM4_MspInit 1 */
639   }
640 
641 }
642 
HAL_TIM_MspPostInit(TIM_HandleTypeDef * htim)643 void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim)
644 {
645   GPIO_InitTypeDef GPIO_InitStruct = {0};
646   if(htim->Instance==TIM3)
647   {
648   /* USER CODE BEGIN TIM3_MspPostInit 0 */
649 
650   /* USER CODE END TIM3_MspPostInit 0 */
651 
652     __HAL_RCC_GPIOB_CLK_ENABLE();
653     /**TIM3 GPIO Configuration
654     PB0     ------> TIM3_CH3
655     PB1     ------> TIM3_CH4
656     PB5     ------> TIM3_CH2
657     */
658     GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_5;
659     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
660     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
661     HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
662 
663     __HAL_AFIO_REMAP_TIM3_PARTIAL();
664 
665   /* USER CODE BEGIN TIM3_MspPostInit 1 */
666 
667   /* USER CODE END TIM3_MspPostInit 1 */
668   }
669 
670 }
671 /**
672 * @brief TIM_Base MSP De-Initialization
673 * This function freeze the hardware resources used in this example
674 * @param htim_base: TIM_Base handle pointer
675 * @retval None
676 */
HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef * htim_base)677 void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base)
678 {
679   if(htim_base->Instance==TIM2)
680   {
681   /* USER CODE BEGIN TIM2_MspDeInit 0 */
682 
683   /* USER CODE END TIM2_MspDeInit 0 */
684     /* Peripheral clock disable */
685     __HAL_RCC_TIM2_CLK_DISABLE();
686   /* USER CODE BEGIN TIM2_MspDeInit 1 */
687 
688   /* USER CODE END TIM2_MspDeInit 1 */
689   }
690   else if(htim_base->Instance==TIM3)
691   {
692   /* USER CODE BEGIN TIM3_MspDeInit 0 */
693 
694   /* USER CODE END TIM3_MspDeInit 0 */
695     /* Peripheral clock disable */
696     __HAL_RCC_TIM3_CLK_DISABLE();
697   /* USER CODE BEGIN TIM3_MspDeInit 1 */
698 
699   /* USER CODE END TIM3_MspDeInit 1 */
700   }
701   else if(htim_base->Instance==TIM4)
702   {
703   /* USER CODE BEGIN TIM4_MspDeInit 0 */
704 
705   /* USER CODE END TIM4_MspDeInit 0 */
706     /* Peripheral clock disable */
707     __HAL_RCC_TIM4_CLK_DISABLE();
708   /* USER CODE BEGIN TIM4_MspDeInit 1 */
709 
710   /* USER CODE END TIM4_MspDeInit 1 */
711   }
712 
713 }
714 
715 /**
716 * @brief UART MSP Initialization
717 * This function configures the hardware resources used in this example
718 * @param huart: UART handle pointer
719 * @retval None
720 */
HAL_UART_MspInit(UART_HandleTypeDef * huart)721 void HAL_UART_MspInit(UART_HandleTypeDef* huart)
722 {
723   GPIO_InitTypeDef GPIO_InitStruct = {0};
724   if(huart->Instance==USART1)
725   {
726   /* USER CODE BEGIN USART1_MspInit 0 */
727 
728   /* USER CODE END USART1_MspInit 0 */
729     /* Peripheral clock enable */
730     __HAL_RCC_USART1_CLK_ENABLE();
731 
732     __HAL_RCC_GPIOA_CLK_ENABLE();
733     /**USART1 GPIO Configuration
734     PA9     ------> USART1_TX
735     PA10     ------> USART1_RX
736     */
737     GPIO_InitStruct.Pin = GPIO_PIN_9;
738     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
739     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
740     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
741 
742     GPIO_InitStruct.Pin = GPIO_PIN_10;
743     GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
744     GPIO_InitStruct.Pull = GPIO_NOPULL;
745     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
746 
747   /* USER CODE BEGIN USART1_MspInit 1 */
748 
749   /* USER CODE END USART1_MspInit 1 */
750   }
751   else if(huart->Instance==USART2)
752   {
753   /* USER CODE BEGIN USART2_MspInit 0 */
754 
755   /* USER CODE END USART2_MspInit 0 */
756     /* Peripheral clock enable */
757     __HAL_RCC_USART2_CLK_ENABLE();
758 
759     __HAL_RCC_GPIOA_CLK_ENABLE();
760     /**USART2 GPIO Configuration
761     PA2     ------> USART2_TX
762     PA3     ------> USART2_RX
763     */
764     GPIO_InitStruct.Pin = GPIO_PIN_2;
765     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
766     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
767     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
768 
769     GPIO_InitStruct.Pin = GPIO_PIN_3;
770     GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
771     GPIO_InitStruct.Pull = GPIO_NOPULL;
772     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
773 
774   /* USER CODE BEGIN USART2_MspInit 1 */
775 
776   /* USER CODE END USART2_MspInit 1 */
777   }
778   else if(huart->Instance==USART3)
779   {
780   /* USER CODE BEGIN USART3_MspInit 0 */
781 
782   /* USER CODE END USART3_MspInit 0 */
783     /* Peripheral clock enable */
784     __HAL_RCC_USART3_CLK_ENABLE();
785 
786     __HAL_RCC_GPIOB_CLK_ENABLE();
787     /**USART3 GPIO Configuration
788     PB10     ------> USART3_TX
789     PB11     ------> USART3_RX
790     */
791     GPIO_InitStruct.Pin = GPIO_PIN_10;
792     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
793     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
794     HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
795 
796     GPIO_InitStruct.Pin = GPIO_PIN_11;
797     GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
798     GPIO_InitStruct.Pull = GPIO_NOPULL;
799     HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
800 
801   /* USER CODE BEGIN USART3_MspInit 1 */
802 
803   /* USER CODE END USART3_MspInit 1 */
804   }
805 
806 }
807 
808 /**
809 * @brief UART MSP De-Initialization
810 * This function freeze the hardware resources used in this example
811 * @param huart: UART handle pointer
812 * @retval None
813 */
HAL_UART_MspDeInit(UART_HandleTypeDef * huart)814 void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
815 {
816   if(huart->Instance==USART1)
817   {
818   /* USER CODE BEGIN USART1_MspDeInit 0 */
819 
820   /* USER CODE END USART1_MspDeInit 0 */
821     /* Peripheral clock disable */
822     __HAL_RCC_USART1_CLK_DISABLE();
823 
824     /**USART1 GPIO Configuration
825     PA9     ------> USART1_TX
826     PA10     ------> USART1_RX
827     */
828     HAL_GPIO_DeInit(GPIOA, GPIO_PIN_9|GPIO_PIN_10);
829 
830   /* USER CODE BEGIN USART1_MspDeInit 1 */
831 
832   /* USER CODE END USART1_MspDeInit 1 */
833   }
834   else if(huart->Instance==USART2)
835   {
836   /* USER CODE BEGIN USART2_MspDeInit 0 */
837 
838   /* USER CODE END USART2_MspDeInit 0 */
839     /* Peripheral clock disable */
840     __HAL_RCC_USART2_CLK_DISABLE();
841 
842     /**USART2 GPIO Configuration
843     PA2     ------> USART2_TX
844     PA3     ------> USART2_RX
845     */
846     HAL_GPIO_DeInit(GPIOA, GPIO_PIN_2|GPIO_PIN_3);
847 
848   /* USER CODE BEGIN USART2_MspDeInit 1 */
849 
850   /* USER CODE END USART2_MspDeInit 1 */
851   }
852   else if(huart->Instance==USART3)
853   {
854   /* USER CODE BEGIN USART3_MspDeInit 0 */
855 
856   /* USER CODE END USART3_MspDeInit 0 */
857     /* Peripheral clock disable */
858     __HAL_RCC_USART3_CLK_DISABLE();
859 
860     /**USART3 GPIO Configuration
861     PB10     ------> USART3_TX
862     PB11     ------> USART3_RX
863     */
864     HAL_GPIO_DeInit(GPIOB, GPIO_PIN_10|GPIO_PIN_11);
865 
866   /* USER CODE BEGIN USART3_MspDeInit 1 */
867 
868   /* USER CODE END USART3_MspDeInit 1 */
869   }
870 
871 }
872 
873 static uint32_t FSMC_Initialized = 0;
874 
HAL_FSMC_MspInit(void)875 static void HAL_FSMC_MspInit(void){
876   /* USER CODE BEGIN FSMC_MspInit 0 */
877 
878   /* USER CODE END FSMC_MspInit 0 */
879   GPIO_InitTypeDef GPIO_InitStruct ={0};
880   if (FSMC_Initialized) {
881     return;
882   }
883   FSMC_Initialized = 1;
884 
885   /* Peripheral clock enable */
886   __HAL_RCC_FSMC_CLK_ENABLE();
887 
888   /** FSMC GPIO Configuration
889   PF0   ------> FSMC_A0
890   PF1   ------> FSMC_A1
891   PF2   ------> FSMC_A2
892   PF3   ------> FSMC_A3
893   PF4   ------> FSMC_A4
894   PF5   ------> FSMC_A5
895   PF12   ------> FSMC_A6
896   PF13   ------> FSMC_A7
897   PF14   ------> FSMC_A8
898   PF15   ------> FSMC_A9
899   PG0   ------> FSMC_A10
900   PG1   ------> FSMC_A11
901   PE7   ------> FSMC_D4
902   PE8   ------> FSMC_D5
903   PE9   ------> FSMC_D6
904   PE10   ------> FSMC_D7
905   PE11   ------> FSMC_D8
906   PE12   ------> FSMC_D9
907   PE13   ------> FSMC_D10
908   PE14   ------> FSMC_D11
909   PE15   ------> FSMC_D12
910   PD8   ------> FSMC_D13
911   PD9   ------> FSMC_D14
912   PD10   ------> FSMC_D15
913   PD11   ------> FSMC_A16
914   PD12   ------> FSMC_A17
915   PD13   ------> FSMC_A18
916   PD14   ------> FSMC_D0
917   PD15   ------> FSMC_D1
918   PG2   ------> FSMC_A12
919   PG3   ------> FSMC_A13
920   PG4   ------> FSMC_A14
921   PG5   ------> FSMC_A15
922   PD0   ------> FSMC_D2
923   PD1   ------> FSMC_D3
924   PD4   ------> FSMC_NOE
925   PD5   ------> FSMC_NWE
926   PG10   ------> FSMC_NE3
927   PE0   ------> FSMC_NBL0
928   PE1   ------> FSMC_NBL1
929   */
930   GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3
931                           |GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_12|GPIO_PIN_13
932                           |GPIO_PIN_14|GPIO_PIN_15;
933   GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
934   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
935   HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
936 
937   GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3
938                           |GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_10;
939   GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
940   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
941   HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
942 
943   GPIO_InitStruct.Pin = GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10
944                           |GPIO_PIN_11|GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14
945                           |GPIO_PIN_15|GPIO_PIN_0|GPIO_PIN_1;
946   GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
947   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
948   HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
949 
950   GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11
951                           |GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15
952                           |GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_4|GPIO_PIN_5;
953   GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
954   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
955   HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
956 
957   /* USER CODE BEGIN FSMC_MspInit 1 */
958 
959   /* USER CODE END FSMC_MspInit 1 */
960 }
961 
HAL_SRAM_MspInit(SRAM_HandleTypeDef * hsram)962 void HAL_SRAM_MspInit(SRAM_HandleTypeDef* hsram){
963   /* USER CODE BEGIN SRAM_MspInit 0 */
964 
965   /* USER CODE END SRAM_MspInit 0 */
966   HAL_FSMC_MspInit();
967   /* USER CODE BEGIN SRAM_MspInit 1 */
968 
969   /* USER CODE END SRAM_MspInit 1 */
970 }
971 
972 static uint32_t FSMC_DeInitialized = 0;
973 
HAL_FSMC_MspDeInit(void)974 static void HAL_FSMC_MspDeInit(void){
975   /* USER CODE BEGIN FSMC_MspDeInit 0 */
976 
977   /* USER CODE END FSMC_MspDeInit 0 */
978   if (FSMC_DeInitialized) {
979     return;
980   }
981   FSMC_DeInitialized = 1;
982   /* Peripheral clock enable */
983   __HAL_RCC_FSMC_CLK_DISABLE();
984 
985   /** FSMC GPIO Configuration
986   PF0   ------> FSMC_A0
987   PF1   ------> FSMC_A1
988   PF2   ------> FSMC_A2
989   PF3   ------> FSMC_A3
990   PF4   ------> FSMC_A4
991   PF5   ------> FSMC_A5
992   PF12   ------> FSMC_A6
993   PF13   ------> FSMC_A7
994   PF14   ------> FSMC_A8
995   PF15   ------> FSMC_A9
996   PG0   ------> FSMC_A10
997   PG1   ------> FSMC_A11
998   PE7   ------> FSMC_D4
999   PE8   ------> FSMC_D5
1000   PE9   ------> FSMC_D6
1001   PE10   ------> FSMC_D7
1002   PE11   ------> FSMC_D8
1003   PE12   ------> FSMC_D9
1004   PE13   ------> FSMC_D10
1005   PE14   ------> FSMC_D11
1006   PE15   ------> FSMC_D12
1007   PD8   ------> FSMC_D13
1008   PD9   ------> FSMC_D14
1009   PD10   ------> FSMC_D15
1010   PD11   ------> FSMC_A16
1011   PD12   ------> FSMC_A17
1012   PD13   ------> FSMC_A18
1013   PD14   ------> FSMC_D0
1014   PD15   ------> FSMC_D1
1015   PG2   ------> FSMC_A12
1016   PG3   ------> FSMC_A13
1017   PG4   ------> FSMC_A14
1018   PG5   ------> FSMC_A15
1019   PD0   ------> FSMC_D2
1020   PD1   ------> FSMC_D3
1021   PD4   ------> FSMC_NOE
1022   PD5   ------> FSMC_NWE
1023   PG10   ------> FSMC_NE3
1024   PE0   ------> FSMC_NBL0
1025   PE1   ------> FSMC_NBL1
1026   */
1027   HAL_GPIO_DeInit(GPIOF, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3
1028                           |GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_12|GPIO_PIN_13
1029                           |GPIO_PIN_14|GPIO_PIN_15);
1030 
1031   HAL_GPIO_DeInit(GPIOG, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3
1032                           |GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_10);
1033 
1034   HAL_GPIO_DeInit(GPIOE, GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10
1035                           |GPIO_PIN_11|GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14
1036                           |GPIO_PIN_15|GPIO_PIN_0|GPIO_PIN_1);
1037 
1038   HAL_GPIO_DeInit(GPIOD, GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11
1039                           |GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15
1040                           |GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_4|GPIO_PIN_5);
1041 
1042   /* USER CODE BEGIN FSMC_MspDeInit 1 */
1043 
1044   /* USER CODE END FSMC_MspDeInit 1 */
1045 }
1046 
HAL_SRAM_MspDeInit(SRAM_HandleTypeDef * hsram)1047 void HAL_SRAM_MspDeInit(SRAM_HandleTypeDef* hsram){
1048   /* USER CODE BEGIN SRAM_MspDeInit 0 */
1049 
1050   /* USER CODE END SRAM_MspDeInit 0 */
1051   HAL_FSMC_MspDeInit();
1052   /* USER CODE BEGIN SRAM_MspDeInit 1 */
1053 
1054   /* USER CODE END SRAM_MspDeInit 1 */
1055 }
1056 
1057 /* USER CODE BEGIN 1 */
1058 
1059 /* USER CODE END 1 */
1060