1 /* USER CODE BEGIN Header */
2 /**
3 ******************************************************************************
4 * File Name : stm32l4xx_hal_msp.c
5 * Description : This file provides code for the MSP Initialization
6 * and de-Initialization codes.
7 ******************************************************************************
8 * @attention
9 *
10 * <h2><center>© Copyright (c) 2020 STMicroelectronics.
11 * All rights reserved.</center></h2>
12 *
13 * This software component is licensed by ST under BSD 3-Clause license,
14 * the "License"; You may not use this file except in compliance with the
15 * License. You may obtain a copy of the License at:
16 * opensource.org/licenses/BSD-3-Clause
17 *
18 ******************************************************************************
19 */
20 /* USER CODE END Header */
21
22 /* Includes ------------------------------------------------------------------*/
23 #include "main.h"
24 /* USER CODE BEGIN Includes */
25 #include <drv_common.h>
26 /* USER CODE END Includes */
27
28 /* Private typedef -----------------------------------------------------------*/
29 /* USER CODE BEGIN TD */
30
31 /* USER CODE END TD */
32
33 /* Private define ------------------------------------------------------------*/
34 /* USER CODE BEGIN Define */
35
36 /* USER CODE END Define */
37
38 /* Private macro -------------------------------------------------------------*/
39 /* USER CODE BEGIN Macro */
40
41 /* USER CODE END Macro */
42
43 /* Private variables ---------------------------------------------------------*/
44 /* USER CODE BEGIN PV */
45
46 /* USER CODE END PV */
47
48 /* Private function prototypes -----------------------------------------------*/
49 /* USER CODE BEGIN PFP */
50
51 /* USER CODE END PFP */
52
53 /* External functions --------------------------------------------------------*/
54 /* USER CODE BEGIN ExternalFunctions */
55
56 /* USER CODE END ExternalFunctions */
57
58 /* USER CODE BEGIN 0 */
59
60 /* USER CODE END 0 */
61
62 void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim);
63 /**
64 * Initializes the Global MSP.
65 */
HAL_MspInit(void)66 void HAL_MspInit(void)
67 {
68
69 /* USER CODE BEGIN MspInit 0 */
70
71 /* USER CODE END MspInit 0 */
72
73 __HAL_RCC_SYSCFG_CLK_ENABLE();
74 __HAL_RCC_PWR_CLK_ENABLE();
75
76 /* System interrupt init*/
77
78 /* USER CODE BEGIN MspInit 1 */
79
80 /* USER CODE END MspInit 1 */
81 }
82
83 /**
84 * @brief ADC MSP Initialization
85 * This function configures the hardware resources used in this example
86 * @param hadc: ADC handle pointer
87 * @retval None
88 */
HAL_ADC_MspInit(ADC_HandleTypeDef * hadc)89 void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc)
90 {
91 GPIO_InitTypeDef GPIO_InitStruct = {0};
92 if(hadc->Instance==ADC1)
93 {
94 /* USER CODE BEGIN ADC1_MspInit 0 */
95
96 /* USER CODE END ADC1_MspInit 0 */
97 /* Peripheral clock enable */
98 __HAL_RCC_ADC_CLK_ENABLE();
99
100 __HAL_RCC_GPIOC_CLK_ENABLE();
101 /**ADC1 GPIO Configuration
102 PC0 ------> ADC1_IN1
103 PC1 ------> ADC1_IN2
104 */
105 GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1;
106 GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
107 GPIO_InitStruct.Pull = GPIO_NOPULL;
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 }
115
116 }
117
118 /**
119 * @brief ADC MSP De-Initialization
120 * This function freeze the hardware resources used in this example
121 * @param hadc: ADC handle pointer
122 * @retval None
123 */
HAL_ADC_MspDeInit(ADC_HandleTypeDef * hadc)124 void HAL_ADC_MspDeInit(ADC_HandleTypeDef* hadc)
125 {
126 if(hadc->Instance==ADC1)
127 {
128 /* USER CODE BEGIN ADC1_MspDeInit 0 */
129
130 /* USER CODE END ADC1_MspDeInit 0 */
131 /* Peripheral clock disable */
132 __HAL_RCC_ADC_CLK_DISABLE();
133
134 /**ADC1 GPIO Configuration
135 PC0 ------> ADC1_IN1
136 PC1 ------> ADC1_IN2
137 */
138 HAL_GPIO_DeInit(GPIOC, GPIO_PIN_0|GPIO_PIN_1);
139
140 /* USER CODE BEGIN ADC1_MspDeInit 1 */
141
142 /* USER CODE END ADC1_MspDeInit 1 */
143 }
144
145 }
146
147 /**
148 * @brief CAN MSP Initialization
149 * This function configures the hardware resources used in this example
150 * @param hcan: CAN handle pointer
151 * @retval None
152 */
HAL_CAN_MspInit(CAN_HandleTypeDef * hcan)153 void HAL_CAN_MspInit(CAN_HandleTypeDef* hcan)
154 {
155 GPIO_InitTypeDef GPIO_InitStruct = {0};
156 if(hcan->Instance==CAN1)
157 {
158 /* USER CODE BEGIN CAN1_MspInit 0 */
159
160 /* USER CODE END CAN1_MspInit 0 */
161 /* Peripheral clock enable */
162 __HAL_RCC_CAN1_CLK_ENABLE();
163
164 __HAL_RCC_GPIOD_CLK_ENABLE();
165 /**CAN1 GPIO Configuration
166 PD0 ------> CAN1_RX
167 PD1 ------> CAN1_TX
168 */
169 GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1;
170 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
171 GPIO_InitStruct.Pull = GPIO_NOPULL;
172 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
173 GPIO_InitStruct.Alternate = GPIO_AF9_CAN1;
174 HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
175
176 /* USER CODE BEGIN CAN1_MspInit 1 */
177
178 /* USER CODE END CAN1_MspInit 1 */
179
180 }
181
182 }
183
184 /**
185 * @brief CAN MSP De-Initialization
186 * This function freeze the hardware resources used in this example
187 * @param hcan: CAN handle pointer
188 * @retval None
189 */
HAL_CAN_MspDeInit(CAN_HandleTypeDef * hcan)190 void HAL_CAN_MspDeInit(CAN_HandleTypeDef* hcan)
191 {
192 if(hcan->Instance==CAN1)
193 {
194 /* USER CODE BEGIN CAN1_MspDeInit 0 */
195
196 /* USER CODE END CAN1_MspDeInit 0 */
197 /* Peripheral clock disable */
198 __HAL_RCC_CAN1_CLK_DISABLE();
199
200 /**CAN1 GPIO Configuration
201 PD0 ------> CAN1_RX
202 PD1 ------> CAN1_TX
203 */
204 HAL_GPIO_DeInit(GPIOD, GPIO_PIN_0|GPIO_PIN_1);
205
206 /* USER CODE BEGIN CAN1_MspDeInit 1 */
207
208 /* USER CODE END CAN1_MspDeInit 1 */
209 }
210
211 }
212
213 /**
214 * @brief DAC MSP Initialization
215 * This function configures the hardware resources used in this example
216 * @param hdac: DAC handle pointer
217 * @retval None
218 */
HAL_DAC_MspInit(DAC_HandleTypeDef * hdac)219 void HAL_DAC_MspInit(DAC_HandleTypeDef* hdac)
220 {
221 GPIO_InitTypeDef GPIO_InitStruct = {0};
222 if(hdac->Instance==DAC1)
223 {
224 /* USER CODE BEGIN DAC1_MspInit 0 */
225
226 /* USER CODE END DAC1_MspInit 0 */
227 /* Peripheral clock enable */
228 __HAL_RCC_DAC1_CLK_ENABLE();
229
230 __HAL_RCC_GPIOA_CLK_ENABLE();
231 /**DAC1 GPIO Configuration
232 PA4 ------> DAC1_OUT1
233 */
234 GPIO_InitStruct.Pin = GPIO_PIN_4;
235 GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
236 GPIO_InitStruct.Pull = GPIO_NOPULL;
237 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
238
239 /* USER CODE BEGIN DAC1_MspInit 1 */
240
241 /* USER CODE END DAC1_MspInit 1 */
242
243 }
244
245 }
246
247 /**
248 * @brief DAC MSP De-Initialization
249 * This function freeze the hardware resources used in this example
250 * @param hdac: DAC handle pointer
251 * @retval None
252 */
HAL_DAC_MspDeInit(DAC_HandleTypeDef * hdac)253 void HAL_DAC_MspDeInit(DAC_HandleTypeDef* hdac)
254 {
255 if(hdac->Instance==DAC1)
256 {
257 /* USER CODE BEGIN DAC1_MspDeInit 0 */
258
259 /* USER CODE END DAC1_MspDeInit 0 */
260 /* Peripheral clock disable */
261 __HAL_RCC_DAC1_CLK_DISABLE();
262
263 /**DAC1 GPIO Configuration
264 PA4 ------> DAC1_OUT1
265 */
266 HAL_GPIO_DeInit(GPIOA, GPIO_PIN_4);
267
268 /* USER CODE BEGIN DAC1_MspDeInit 1 */
269
270 /* USER CODE END DAC1_MspDeInit 1 */
271 }
272
273 }
274
275 /**
276 * @brief I2C MSP Initialization
277 * This function configures the hardware resources used in this example
278 * @param hi2c: I2C handle pointer
279 * @retval None
280 */
HAL_I2C_MspInit(I2C_HandleTypeDef * hi2c)281 void HAL_I2C_MspInit(I2C_HandleTypeDef* hi2c)
282 {
283 GPIO_InitTypeDef GPIO_InitStruct = {0};
284 RCC_PeriphCLKInitTypeDef PeriphClkInit = {0};
285 if(hi2c->Instance==I2C1)
286 {
287 /* USER CODE BEGIN I2C1_MspInit 0 */
288
289 /* USER CODE END I2C1_MspInit 0 */
290
291 /** Initializes the peripherals clock
292 */
293 PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_I2C1;
294 PeriphClkInit.I2c1ClockSelection = RCC_I2C1CLKSOURCE_PCLK1;
295 if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
296 {
297 Error_Handler();
298 }
299
300 __HAL_RCC_GPIOG_CLK_ENABLE();
301 HAL_PWREx_EnableVddIO2();
302 /**I2C1 GPIO Configuration
303 PG13 ------> I2C1_SDA
304 PG14 ------> I2C1_SCL
305 */
306 GPIO_InitStruct.Pin = GPIO_PIN_13|GPIO_PIN_14;
307 GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
308 GPIO_InitStruct.Pull = GPIO_NOPULL;
309 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
310 GPIO_InitStruct.Alternate = GPIO_AF4_I2C1;
311 HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
312
313 /* Peripheral clock enable */
314 __HAL_RCC_I2C1_CLK_ENABLE();
315 /* USER CODE BEGIN I2C1_MspInit 1 */
316
317 /* USER CODE END I2C1_MspInit 1 */
318
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 PG13 ------> I2C1_SDA
341 PG14 ------> I2C1_SCL
342 */
343 HAL_GPIO_DeInit(GPIOG, GPIO_PIN_13);
344
345 HAL_GPIO_DeInit(GPIOG, GPIO_PIN_14);
346
347 /* USER CODE BEGIN I2C1_MspDeInit 1 */
348
349 /* USER CODE END I2C1_MspDeInit 1 */
350 }
351
352 }
353
354 /**
355 * @brief UART MSP Initialization
356 * This function configures the hardware resources used in this example
357 * @param huart: UART handle pointer
358 * @retval None
359 */
HAL_UART_MspInit(UART_HandleTypeDef * huart)360 void HAL_UART_MspInit(UART_HandleTypeDef* huart)
361 {
362 GPIO_InitTypeDef GPIO_InitStruct = {0};
363 RCC_PeriphCLKInitTypeDef PeriphClkInit = {0};
364 if(huart->Instance==LPUART1)
365 {
366 /* USER CODE BEGIN LPUART1_MspInit 0 */
367
368 /* USER CODE END LPUART1_MspInit 0 */
369
370 /** Initializes the peripherals clock
371 */
372 PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_LPUART1;
373 PeriphClkInit.Lpuart1ClockSelection = RCC_LPUART1CLKSOURCE_PCLK1;
374 if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
375 {
376 Error_Handler();
377 }
378
379 /* Peripheral clock enable */
380 __HAL_RCC_LPUART1_CLK_ENABLE();
381
382 __HAL_RCC_GPIOG_CLK_ENABLE();
383 HAL_PWREx_EnableVddIO2();
384 /**LPUART1 GPIO Configuration
385 PG7 ------> LPUART1_TX
386 PG8 ------> LPUART1_RX
387 */
388 GPIO_InitStruct.Pin = STLK_RX_Pin|STLK_TX_Pin;
389 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
390 GPIO_InitStruct.Pull = GPIO_NOPULL;
391 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
392 GPIO_InitStruct.Alternate = GPIO_AF8_LPUART1;
393 HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
394
395 /* USER CODE BEGIN LPUART1_MspInit 1 */
396
397 /* USER CODE END LPUART1_MspInit 1 */
398 }
399 else if(huart->Instance==USART2)
400 {
401 /* USER CODE BEGIN USART2_MspInit 0 */
402
403 /* USER CODE END USART2_MspInit 0 */
404
405 /** Initializes the peripherals clock
406 */
407 PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_USART2;
408 PeriphClkInit.Usart2ClockSelection = RCC_USART2CLKSOURCE_PCLK1;
409 if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
410 {
411 Error_Handler();
412 }
413
414 /* Peripheral clock enable */
415 __HAL_RCC_USART2_CLK_ENABLE();
416
417 __HAL_RCC_GPIOD_CLK_ENABLE();
418 /**USART2 GPIO Configuration
419 PD4 ------> USART2_RTS
420 PD5 ------> USART2_TX
421 PD6 ------> USART2_RX
422 */
423 GPIO_InitStruct.Pin = GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6;
424 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
425 GPIO_InitStruct.Pull = GPIO_NOPULL;
426 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
427 GPIO_InitStruct.Alternate = GPIO_AF7_USART2;
428 HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
429
430 /* USART2 interrupt Init */
431 HAL_NVIC_SetPriority(USART2_IRQn, 0, 0);
432 HAL_NVIC_EnableIRQ(USART2_IRQn);
433 /* USER CODE BEGIN USART2_MspInit 1 */
434
435 /* USER CODE END USART2_MspInit 1 */
436 }
437
438 }
439
440 /**
441 * @brief UART MSP De-Initialization
442 * This function freeze the hardware resources used in this example
443 * @param huart: UART handle pointer
444 * @retval None
445 */
HAL_UART_MspDeInit(UART_HandleTypeDef * huart)446 void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
447 {
448 if(huart->Instance==LPUART1)
449 {
450 /* USER CODE BEGIN LPUART1_MspDeInit 0 */
451
452 /* USER CODE END LPUART1_MspDeInit 0 */
453 /* Peripheral clock disable */
454 __HAL_RCC_LPUART1_CLK_DISABLE();
455
456 /**LPUART1 GPIO Configuration
457 PG7 ------> LPUART1_TX
458 PG8 ------> LPUART1_RX
459 */
460 HAL_GPIO_DeInit(GPIOG, STLK_RX_Pin|STLK_TX_Pin);
461
462 /* USER CODE BEGIN LPUART1_MspDeInit 1 */
463
464 /* USER CODE END LPUART1_MspDeInit 1 */
465 }
466 else if(huart->Instance==USART2)
467 {
468 /* USER CODE BEGIN USART2_MspDeInit 0 */
469
470 /* USER CODE END USART2_MspDeInit 0 */
471 /* Peripheral clock disable */
472 __HAL_RCC_USART2_CLK_DISABLE();
473
474 /**USART2 GPIO Configuration
475 PD4 ------> USART2_RTS
476 PD5 ------> USART2_TX
477 PD6 ------> USART2_RX
478 */
479 HAL_GPIO_DeInit(GPIOD, GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6);
480
481 /* USART2 interrupt DeInit */
482 HAL_NVIC_DisableIRQ(USART2_IRQn);
483 /* USER CODE BEGIN USART2_MspDeInit 1 */
484
485 /* USER CODE END USART2_MspDeInit 1 */
486 }
487
488 }
489
490 /**
491 * @brief QSPI MSP Initialization
492 * This function configures the hardware resources used in this example
493 * @param hqspi: QSPI handle pointer
494 * @retval None
495 */
HAL_QSPI_MspInit(QSPI_HandleTypeDef * hqspi)496 void HAL_QSPI_MspInit(QSPI_HandleTypeDef* hqspi)
497 {
498 GPIO_InitTypeDef GPIO_InitStruct = {0};
499 if(hqspi->Instance==QUADSPI)
500 {
501 /* USER CODE BEGIN QUADSPI_MspInit 0 */
502
503 /* USER CODE END QUADSPI_MspInit 0 */
504 /* Peripheral clock enable */
505 __HAL_RCC_QSPI_CLK_ENABLE();
506
507 __HAL_RCC_GPIOF_CLK_ENABLE();
508 __HAL_RCC_GPIOE_CLK_ENABLE();
509 /**QUADSPI GPIO Configuration
510 PF8 ------> QUADSPI_BK1_IO0
511 PF9 ------> QUADSPI_BK1_IO1
512 PF10 ------> QUADSPI_CLK
513 PE11 ------> QUADSPI_BK1_NCS
514 */
515 GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_9;
516 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
517 GPIO_InitStruct.Pull = GPIO_NOPULL;
518 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
519 GPIO_InitStruct.Alternate = GPIO_AF10_QUADSPI;
520 HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
521
522 GPIO_InitStruct.Pin = GPIO_PIN_10;
523 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
524 GPIO_InitStruct.Pull = GPIO_NOPULL;
525 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
526 GPIO_InitStruct.Alternate = GPIO_AF3_QUADSPI;
527 HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
528
529 GPIO_InitStruct.Pin = GPIO_PIN_11;
530 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
531 GPIO_InitStruct.Pull = GPIO_NOPULL;
532 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
533 GPIO_InitStruct.Alternate = GPIO_AF10_QUADSPI;
534 HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
535
536 /* USER CODE BEGIN QUADSPI_MspInit 1 */
537
538 /* USER CODE END QUADSPI_MspInit 1 */
539
540 }
541
542 }
543
544 /**
545 * @brief QSPI MSP De-Initialization
546 * This function freeze the hardware resources used in this example
547 * @param hqspi: QSPI handle pointer
548 * @retval None
549 */
HAL_QSPI_MspDeInit(QSPI_HandleTypeDef * hqspi)550 void HAL_QSPI_MspDeInit(QSPI_HandleTypeDef* hqspi)
551 {
552 if(hqspi->Instance==QUADSPI)
553 {
554 /* USER CODE BEGIN QUADSPI_MspDeInit 0 */
555
556 /* USER CODE END QUADSPI_MspDeInit 0 */
557 /* Peripheral clock disable */
558 __HAL_RCC_QSPI_CLK_DISABLE();
559
560 /**QUADSPI GPIO Configuration
561 PF8 ------> QUADSPI_BK1_IO0
562 PF9 ------> QUADSPI_BK1_IO1
563 PF10 ------> QUADSPI_CLK
564 PE11 ------> QUADSPI_BK1_NCS
565 */
566 HAL_GPIO_DeInit(GPIOF, GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10);
567
568 HAL_GPIO_DeInit(GPIOE, GPIO_PIN_11);
569
570 /* USER CODE BEGIN QUADSPI_MspDeInit 1 */
571
572 /* USER CODE END QUADSPI_MspDeInit 1 */
573 }
574
575 }
576
577 /**
578 * @brief RTC MSP Initialization
579 * This function configures the hardware resources used in this example
580 * @param hrtc: RTC handle pointer
581 * @retval None
582 */
HAL_RTC_MspInit(RTC_HandleTypeDef * hrtc)583 void HAL_RTC_MspInit(RTC_HandleTypeDef* hrtc)
584 {
585 RCC_PeriphCLKInitTypeDef PeriphClkInit = {0};
586 if(hrtc->Instance==RTC)
587 {
588 /* USER CODE BEGIN RTC_MspInit 0 */
589
590 /* USER CODE END RTC_MspInit 0 */
591
592 /** Initializes the peripherals clock
593 */
594 PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_RTC;
595 PeriphClkInit.RTCClockSelection = RCC_RTCCLKSOURCE_LSI;
596 if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
597 {
598 Error_Handler();
599 }
600
601 /* Peripheral clock enable */
602 __HAL_RCC_RTC_ENABLE();
603 /* USER CODE BEGIN RTC_MspInit 1 */
604
605 /* USER CODE END RTC_MspInit 1 */
606
607 }
608
609 }
610
611 /**
612 * @brief RTC MSP De-Initialization
613 * This function freeze the hardware resources used in this example
614 * @param hrtc: RTC handle pointer
615 * @retval None
616 */
HAL_RTC_MspDeInit(RTC_HandleTypeDef * hrtc)617 void HAL_RTC_MspDeInit(RTC_HandleTypeDef* hrtc)
618 {
619 if(hrtc->Instance==RTC)
620 {
621 /* USER CODE BEGIN RTC_MspDeInit 0 */
622
623 /* USER CODE END RTC_MspDeInit 0 */
624 /* Peripheral clock disable */
625 __HAL_RCC_RTC_DISABLE();
626 /* USER CODE BEGIN RTC_MspDeInit 1 */
627
628 /* USER CODE END RTC_MspDeInit 1 */
629 }
630
631 }
632
633 /**
634 * @brief SPI MSP Initialization
635 * This function configures the hardware resources used in this example
636 * @param hspi: SPI handle pointer
637 * @retval None
638 */
HAL_SPI_MspInit(SPI_HandleTypeDef * hspi)639 void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi)
640 {
641 GPIO_InitTypeDef GPIO_InitStruct = {0};
642 if(hspi->Instance==SPI1)
643 {
644 /* USER CODE BEGIN SPI1_MspInit 0 */
645
646 /* USER CODE END SPI1_MspInit 0 */
647 /* Peripheral clock enable */
648 __HAL_RCC_SPI1_CLK_ENABLE();
649
650 __HAL_RCC_GPIOA_CLK_ENABLE();
651 /**SPI1 GPIO Configuration
652 PA1 ------> SPI1_SCK
653 PA6 ------> SPI1_MISO
654 PA7 ------> SPI1_MOSI
655 */
656 GPIO_InitStruct.Pin = GPIO_PIN_1|GPIO_PIN_6|GPIO_PIN_7;
657 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
658 GPIO_InitStruct.Pull = GPIO_NOPULL;
659 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
660 GPIO_InitStruct.Alternate = GPIO_AF5_SPI1;
661 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
662
663 /* USER CODE BEGIN SPI1_MspInit 1 */
664
665 /* USER CODE END SPI1_MspInit 1 */
666
667 }
668
669 }
670
671 /**
672 * @brief SPI MSP De-Initialization
673 * This function freeze the hardware resources used in this example
674 * @param hspi: SPI handle pointer
675 * @retval None
676 */
HAL_SPI_MspDeInit(SPI_HandleTypeDef * hspi)677 void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi)
678 {
679 if(hspi->Instance==SPI1)
680 {
681 /* USER CODE BEGIN SPI1_MspDeInit 0 */
682
683 /* USER CODE END SPI1_MspDeInit 0 */
684 /* Peripheral clock disable */
685 __HAL_RCC_SPI1_CLK_DISABLE();
686
687 /**SPI1 GPIO Configuration
688 PA1 ------> SPI1_SCK
689 PA6 ------> SPI1_MISO
690 PA7 ------> SPI1_MOSI
691 */
692 HAL_GPIO_DeInit(GPIOA, GPIO_PIN_1|GPIO_PIN_6|GPIO_PIN_7);
693
694 /* USER CODE BEGIN SPI1_MspDeInit 1 */
695
696 /* USER CODE END SPI1_MspDeInit 1 */
697 }
698
699 }
700
701 /**
702 * @brief TIM_PWM MSP Initialization
703 * This function configures the hardware resources used in this example
704 * @param htim_pwm: TIM_PWM handle pointer
705 * @retval None
706 */
HAL_TIM_PWM_MspInit(TIM_HandleTypeDef * htim_pwm)707 void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef* htim_pwm)
708 {
709 if(htim_pwm->Instance==TIM2)
710 {
711 /* USER CODE BEGIN TIM2_MspInit 0 */
712
713 /* USER CODE END TIM2_MspInit 0 */
714 /* Peripheral clock enable */
715 __HAL_RCC_TIM2_CLK_ENABLE();
716 /* USER CODE BEGIN TIM2_MspInit 1 */
717
718 /* USER CODE END TIM2_MspInit 1 */
719 }
720 else if(htim_pwm->Instance==TIM4)
721 {
722 /* USER CODE BEGIN TIM4_MspInit 0 */
723
724 /* USER CODE END TIM4_MspInit 0 */
725 /* Peripheral clock enable */
726 __HAL_RCC_TIM4_CLK_ENABLE();
727 /* USER CODE BEGIN TIM4_MspInit 1 */
728
729 /* USER CODE END TIM4_MspInit 1 */
730 }
731
732 }
733
HAL_TIM_MspPostInit(TIM_HandleTypeDef * htim)734 void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim)
735 {
736 GPIO_InitTypeDef GPIO_InitStruct = {0};
737 if(htim->Instance==TIM2)
738 {
739 /* USER CODE BEGIN TIM2_MspPostInit 0 */
740
741 /* USER CODE END TIM2_MspPostInit 0 */
742 __HAL_RCC_GPIOA_CLK_ENABLE();
743 /**TIM2 GPIO Configuration
744 PA2 ------> TIM2_CH3
745 PA3 ------> TIM2_CH4
746 */
747 GPIO_InitStruct.Pin = GPIO_PIN_2|GPIO_PIN_3;
748 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
749 GPIO_InitStruct.Pull = GPIO_NOPULL;
750 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
751 GPIO_InitStruct.Alternate = GPIO_AF1_TIM2;
752 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
753
754 /* USER CODE BEGIN TIM2_MspPostInit 1 */
755
756 /* USER CODE END TIM2_MspPostInit 1 */
757 }
758 else if(htim->Instance==TIM4)
759 {
760 /* USER CODE BEGIN TIM4_MspPostInit 0 */
761
762 /* USER CODE END TIM4_MspPostInit 0 */
763
764 __HAL_RCC_GPIOD_CLK_ENABLE();
765 /**TIM4 GPIO Configuration
766 PD12 ------> TIM4_CH1
767 PD13 ------> TIM4_CH2
768 PD14 ------> TIM4_CH3
769 PD15 ------> TIM4_CH4
770 */
771 GPIO_InitStruct.Pin = GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15;
772 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
773 GPIO_InitStruct.Pull = GPIO_NOPULL;
774 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
775 GPIO_InitStruct.Alternate = GPIO_AF2_TIM4;
776 HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
777
778 /* USER CODE BEGIN TIM4_MspPostInit 1 */
779
780 /* USER CODE END TIM4_MspPostInit 1 */
781 }
782
783 }
784 /**
785 * @brief TIM_PWM MSP De-Initialization
786 * This function freeze the hardware resources used in this example
787 * @param htim_pwm: TIM_PWM handle pointer
788 * @retval None
789 */
HAL_TIM_PWM_MspDeInit(TIM_HandleTypeDef * htim_pwm)790 void HAL_TIM_PWM_MspDeInit(TIM_HandleTypeDef* htim_pwm)
791 {
792 if(htim_pwm->Instance==TIM2)
793 {
794 /* USER CODE BEGIN TIM2_MspDeInit 0 */
795
796 /* USER CODE END TIM2_MspDeInit 0 */
797 /* Peripheral clock disable */
798 __HAL_RCC_TIM2_CLK_DISABLE();
799 /* USER CODE BEGIN TIM2_MspDeInit 1 */
800
801 /* USER CODE END TIM2_MspDeInit 1 */
802 }
803 else if(htim_pwm->Instance==TIM4)
804 {
805 /* USER CODE BEGIN TIM4_MspDeInit 0 */
806
807 /* USER CODE END TIM4_MspDeInit 0 */
808 /* Peripheral clock disable */
809 __HAL_RCC_TIM4_CLK_DISABLE();
810 /* USER CODE BEGIN TIM4_MspDeInit 1 */
811
812 /* USER CODE END TIM4_MspDeInit 1 */
813 }
814
815 }
816
817 /**
818 * @brief PCD MSP Initialization
819 * This function configures the hardware resources used in this example
820 * @param hpcd: PCD handle pointer
821 * @retval None
822 */
HAL_PCD_MspInit(PCD_HandleTypeDef * hpcd)823 void HAL_PCD_MspInit(PCD_HandleTypeDef* hpcd)
824 {
825 GPIO_InitTypeDef GPIO_InitStruct = {0};
826 if(hpcd->Instance==USB_OTG_FS)
827 {
828 /* USER CODE BEGIN USB_OTG_FS_MspInit 0 */
829
830 /* USER CODE END USB_OTG_FS_MspInit 0 */
831
832 __HAL_RCC_GPIOA_CLK_ENABLE();
833 /**USB_OTG_FS GPIO Configuration
834 PA8 ------> USB_OTG_FS_SOF
835 PA9 ------> USB_OTG_FS_VBUS
836 PA10 ------> USB_OTG_FS_ID
837 PA11 ------> USB_OTG_FS_DM
838 PA12 ------> USB_OTG_FS_DP
839 */
840 GPIO_InitStruct.Pin = USB_SOF_Pin|USB_ID_Pin|USB_DM_Pin|USB_DP_Pin;
841 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
842 GPIO_InitStruct.Pull = GPIO_NOPULL;
843 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
844 GPIO_InitStruct.Alternate = GPIO_AF10_OTG_FS;
845 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
846
847 GPIO_InitStruct.Pin = USB_VBUS_Pin;
848 GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
849 GPIO_InitStruct.Pull = GPIO_NOPULL;
850 HAL_GPIO_Init(USB_VBUS_GPIO_Port, &GPIO_InitStruct);
851
852 /* Peripheral clock enable */
853 __HAL_RCC_USB_OTG_FS_CLK_ENABLE();
854
855 /* Enable VDDUSB */
856 if(__HAL_RCC_PWR_IS_CLK_DISABLED())
857 {
858 __HAL_RCC_PWR_CLK_ENABLE();
859 HAL_PWREx_EnableVddUSB();
860 __HAL_RCC_PWR_CLK_DISABLE();
861 }
862 else
863 {
864 HAL_PWREx_EnableVddUSB();
865 }
866 /* USB_OTG_FS interrupt Init */
867 HAL_NVIC_SetPriority(OTG_FS_IRQn, 0, 0);
868 HAL_NVIC_EnableIRQ(OTG_FS_IRQn);
869 /* USER CODE BEGIN USB_OTG_FS_MspInit 1 */
870
871 /* USER CODE END USB_OTG_FS_MspInit 1 */
872
873 }
874
875 }
876
877 /**
878 * @brief PCD MSP De-Initialization
879 * This function freeze the hardware resources used in this example
880 * @param hpcd: PCD handle pointer
881 * @retval None
882 */
HAL_PCD_MspDeInit(PCD_HandleTypeDef * hpcd)883 void HAL_PCD_MspDeInit(PCD_HandleTypeDef* hpcd)
884 {
885 if(hpcd->Instance==USB_OTG_FS)
886 {
887 /* USER CODE BEGIN USB_OTG_FS_MspDeInit 0 */
888
889 /* USER CODE END USB_OTG_FS_MspDeInit 0 */
890 /* Peripheral clock disable */
891 __HAL_RCC_USB_OTG_FS_CLK_DISABLE();
892
893 /**USB_OTG_FS GPIO Configuration
894 PA8 ------> USB_OTG_FS_SOF
895 PA9 ------> USB_OTG_FS_VBUS
896 PA10 ------> USB_OTG_FS_ID
897 PA11 ------> USB_OTG_FS_DM
898 PA12 ------> USB_OTG_FS_DP
899 */
900 HAL_GPIO_DeInit(GPIOA, USB_SOF_Pin|USB_VBUS_Pin|USB_ID_Pin|USB_DM_Pin
901 |USB_DP_Pin);
902
903 /* Disable VDDUSB */
904 if(__HAL_RCC_PWR_IS_CLK_DISABLED())
905 {
906 __HAL_RCC_PWR_CLK_ENABLE();
907 HAL_PWREx_DisableVddUSB();
908 __HAL_RCC_PWR_CLK_DISABLE();
909 }
910 else
911 {
912 HAL_PWREx_DisableVddUSB();
913 }
914
915 /* USB_OTG_FS interrupt DeInit */
916 HAL_NVIC_DisableIRQ(OTG_FS_IRQn);
917 /* USER CODE BEGIN USB_OTG_FS_MspDeInit 1 */
918
919 /* USER CODE END USB_OTG_FS_MspDeInit 1 */
920 }
921
922 }
923
924 static uint32_t SAI1_client =0;
925
HAL_SAI_MspInit(SAI_HandleTypeDef * hsai)926 void HAL_SAI_MspInit(SAI_HandleTypeDef* hsai)
927 {
928
929 GPIO_InitTypeDef GPIO_InitStruct;
930 /* SAI1 */
931 if(hsai->Instance==SAI1_Block_A)
932 {
933 /* Peripheral clock enable */
934 if (SAI1_client == 0)
935 {
936 __HAL_RCC_SAI1_CLK_ENABLE();
937 }
938 SAI1_client ++;
939
940 /**SAI1_A_Block_A GPIO Configuration
941 PE4 ------> SAI1_FS_A
942 PE5 ------> SAI1_SCK_A
943 PE6 ------> SAI1_SD_A
944 */
945 GPIO_InitStruct.Pin = GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6;
946 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
947 GPIO_InitStruct.Pull = GPIO_NOPULL;
948 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
949 GPIO_InitStruct.Alternate = GPIO_AF13_SAI1;
950 HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
951
952 }
953 }
954
HAL_SAI_MspDeInit(SAI_HandleTypeDef * hsai)955 void HAL_SAI_MspDeInit(SAI_HandleTypeDef* hsai)
956 {
957 /* SAI1 */
958 if(hsai->Instance==SAI1_Block_A)
959 {
960 SAI1_client --;
961 if (SAI1_client == 0)
962 {
963 /* Peripheral clock disable */
964 __HAL_RCC_SAI1_CLK_DISABLE();
965 }
966
967 /**SAI1_A_Block_A GPIO Configuration
968 PE4 ------> SAI1_FS_A
969 PE5 ------> SAI1_SCK_A
970 PE6 ------> SAI1_SD_A
971 */
972 HAL_GPIO_DeInit(GPIOE, GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6);
973
974 }
975 }
976
977 /* USER CODE BEGIN 1 */
978
979 /* USER CODE END 1 */
980