1 /* USER CODE BEGIN Header */
2 /**
3 ******************************************************************************
4 * @file stm32h5xx_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) 2024 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
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 /* USER CODE BEGIN MspInit 0 */
69
70 /* USER CODE END MspInit 0 */
71
72 /* System interrupt init*/
73
74 /* USER CODE BEGIN MspInit 1 */
75
76 /* USER CODE END MspInit 1 */
77 }
78
79 static uint32_t HAL_RCC_ADC_CLK_ENABLED=0;
80
81 /**
82 * @brief ADC MSP Initialization
83 * This function configures the hardware resources used in this example
84 * @param hadc: ADC handle pointer
85 * @retval None
86 */
HAL_ADC_MspInit(ADC_HandleTypeDef * hadc)87 void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc)
88 {
89 GPIO_InitTypeDef GPIO_InitStruct = {0};
90 RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
91 if(hadc->Instance==ADC1)
92 {
93 /* USER CODE BEGIN ADC1_MspInit 0 */
94
95 /* USER CODE END ADC1_MspInit 0 */
96
97 /** Initializes the peripherals clock
98 */
99 PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_ADCDAC;
100 PeriphClkInitStruct.AdcDacClockSelection = RCC_ADCDACCLKSOURCE_HCLK;
101 if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
102 {
103 Error_Handler();
104 }
105
106 /* Peripheral clock enable */
107 HAL_RCC_ADC_CLK_ENABLED++;
108 if(HAL_RCC_ADC_CLK_ENABLED==1){
109 __HAL_RCC_ADC_CLK_ENABLE();
110 }
111
112 __HAL_RCC_GPIOA_CLK_ENABLE();
113 __HAL_RCC_GPIOF_CLK_ENABLE();
114 /**ADC1 GPIO Configuration
115 PA4 ------> ADC1_INP18
116 PF11 ------> ADC1_INP2
117 */
118 GPIO_InitStruct.Pin = VBUS_SENSE_Pin;
119 GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
120 GPIO_InitStruct.Pull = GPIO_NOPULL;
121 HAL_GPIO_Init(VBUS_SENSE_GPIO_Port, &GPIO_InitStruct);
122
123 GPIO_InitStruct.Pin = GPIO_PIN_11;
124 GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
125 GPIO_InitStruct.Pull = GPIO_NOPULL;
126 HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
127
128 /* USER CODE BEGIN ADC1_MspInit 1 */
129
130 /* USER CODE END ADC1_MspInit 1 */
131 }
132 else if(hadc->Instance==ADC2)
133 {
134 /* USER CODE BEGIN ADC2_MspInit 0 */
135
136 /* USER CODE END ADC2_MspInit 0 */
137
138 /** Initializes the peripherals clock
139 */
140 PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_ADCDAC;
141 PeriphClkInitStruct.AdcDacClockSelection = RCC_ADCDACCLKSOURCE_HCLK;
142 if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
143 {
144 Error_Handler();
145 }
146
147 /* Peripheral clock enable */
148 HAL_RCC_ADC_CLK_ENABLED++;
149 if(HAL_RCC_ADC_CLK_ENABLED==1){
150 __HAL_RCC_ADC_CLK_ENABLE();
151 }
152
153 __HAL_RCC_GPIOC_CLK_ENABLE();
154 __HAL_RCC_GPIOA_CLK_ENABLE();
155 __HAL_RCC_GPIOB_CLK_ENABLE();
156 /**ADC2 GPIO Configuration
157 PC0 ------> ADC2_INP10
158 PC2 ------> ADC2_INP12
159 PC3 ------> ADC2_INP13
160 PA6 ------> ADC2_INP3
161 PB1 ------> ADC2_INP5
162 */
163 GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_2|GPIO_PIN_3;
164 GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
165 GPIO_InitStruct.Pull = GPIO_NOPULL;
166 HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
167
168 GPIO_InitStruct.Pin = GPIO_PIN_6;
169 GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
170 GPIO_InitStruct.Pull = GPIO_NOPULL;
171 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
172
173 GPIO_InitStruct.Pin = GPIO_PIN_1;
174 GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
175 GPIO_InitStruct.Pull = GPIO_NOPULL;
176 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
177
178 /* USER CODE BEGIN ADC2_MspInit 1 */
179
180 /* USER CODE END ADC2_MspInit 1 */
181 }
182
183 }
184
185 /**
186 * @brief ADC MSP De-Initialization
187 * This function freeze the hardware resources used in this example
188 * @param hadc: ADC handle pointer
189 * @retval None
190 */
HAL_ADC_MspDeInit(ADC_HandleTypeDef * hadc)191 void HAL_ADC_MspDeInit(ADC_HandleTypeDef* hadc)
192 {
193 if(hadc->Instance==ADC1)
194 {
195 /* USER CODE BEGIN ADC1_MspDeInit 0 */
196
197 /* USER CODE END ADC1_MspDeInit 0 */
198 /* Peripheral clock disable */
199 HAL_RCC_ADC_CLK_ENABLED--;
200 if(HAL_RCC_ADC_CLK_ENABLED==0){
201 __HAL_RCC_ADC_CLK_DISABLE();
202 }
203
204 /**ADC1 GPIO Configuration
205 PA4 ------> ADC1_INP18
206 PF11 ------> ADC1_INP2
207 */
208 HAL_GPIO_DeInit(VBUS_SENSE_GPIO_Port, VBUS_SENSE_Pin);
209
210 HAL_GPIO_DeInit(GPIOF, GPIO_PIN_11);
211
212 /* USER CODE BEGIN ADC1_MspDeInit 1 */
213
214 /* USER CODE END ADC1_MspDeInit 1 */
215 }
216 else if(hadc->Instance==ADC2)
217 {
218 /* USER CODE BEGIN ADC2_MspDeInit 0 */
219
220 /* USER CODE END ADC2_MspDeInit 0 */
221 /* Peripheral clock disable */
222 HAL_RCC_ADC_CLK_ENABLED--;
223 if(HAL_RCC_ADC_CLK_ENABLED==0){
224 __HAL_RCC_ADC_CLK_DISABLE();
225 }
226
227 /**ADC2 GPIO Configuration
228 PC0 ------> ADC2_INP10
229 PC2 ------> ADC2_INP12
230 PC3 ------> ADC2_INP13
231 PA6 ------> ADC2_INP3
232 PB1 ------> ADC2_INP5
233 */
234 HAL_GPIO_DeInit(GPIOC, GPIO_PIN_0|GPIO_PIN_2|GPIO_PIN_3);
235
236 HAL_GPIO_DeInit(GPIOA, GPIO_PIN_6);
237
238 HAL_GPIO_DeInit(GPIOB, GPIO_PIN_1);
239
240 /* USER CODE BEGIN ADC2_MspDeInit 1 */
241
242 /* USER CODE END ADC2_MspDeInit 1 */
243 }
244
245 }
246
247 /**
248 * @brief ETH MSP Initialization
249 * This function configures the hardware resources used in this example
250 * @param heth: ETH handle pointer
251 * @retval None
252 */
HAL_ETH_MspInit(ETH_HandleTypeDef * heth)253 void HAL_ETH_MspInit(ETH_HandleTypeDef* heth)
254 {
255 GPIO_InitTypeDef GPIO_InitStruct = {0};
256 if(heth->Instance==ETH)
257 {
258 /* USER CODE BEGIN ETH_MspInit 0 */
259
260 /* USER CODE END ETH_MspInit 0 */
261 /* Peripheral clock enable */
262 __HAL_RCC_ETH_CLK_ENABLE();
263 __HAL_RCC_ETHTX_CLK_ENABLE();
264 __HAL_RCC_ETHRX_CLK_ENABLE();
265
266 __HAL_RCC_GPIOC_CLK_ENABLE();
267 __HAL_RCC_GPIOA_CLK_ENABLE();
268 __HAL_RCC_GPIOB_CLK_ENABLE();
269 __HAL_RCC_GPIOG_CLK_ENABLE();
270 /**ETH GPIO Configuration
271 PC1 ------> ETH_MDC
272 PA1 ------> ETH_REF_CLK
273 PA2 ------> ETH_MDIO
274 PA7 ------> ETH_CRS_DV
275 PC4 ------> ETH_RXD0
276 PC5 ------> ETH_RXD1
277 PB15 ------> ETH_TXD1
278 PG11 ------> ETH_TX_EN
279 PG13 ------> ETH_TXD0
280 */
281 GPIO_InitStruct.Pin = RMII_MDC_Pin|RMII_RXD0_Pin|RMII_RXD1_Pin;
282 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
283 GPIO_InitStruct.Pull = GPIO_NOPULL;
284 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
285 GPIO_InitStruct.Alternate = GPIO_AF11_ETH;
286 HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
287
288 GPIO_InitStruct.Pin = RMII_REF_CLK_Pin|RMII_MDIO_Pin|RMII_CRS_DV_Pin;
289 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
290 GPIO_InitStruct.Pull = GPIO_NOPULL;
291 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
292 GPIO_InitStruct.Alternate = GPIO_AF11_ETH;
293 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
294
295 GPIO_InitStruct.Pin = RMII_TXD1_Pin;
296 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
297 GPIO_InitStruct.Pull = GPIO_NOPULL;
298 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
299 GPIO_InitStruct.Alternate = GPIO_AF11_ETH;
300 HAL_GPIO_Init(RMII_TXD1_GPIO_Port, &GPIO_InitStruct);
301
302 GPIO_InitStruct.Pin = RMII_TXT_EN_Pin|RMI_TXD0_Pin;
303 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
304 GPIO_InitStruct.Pull = GPIO_NOPULL;
305 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
306 GPIO_InitStruct.Alternate = GPIO_AF11_ETH;
307 HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
308
309 /* USER CODE BEGIN ETH_MspInit 1 */
310
311 /* USER CODE END ETH_MspInit 1 */
312 }
313
314 }
315
316 /**
317 * @brief ETH MSP De-Initialization
318 * This function freeze the hardware resources used in this example
319 * @param heth: ETH handle pointer
320 * @retval None
321 */
HAL_ETH_MspDeInit(ETH_HandleTypeDef * heth)322 void HAL_ETH_MspDeInit(ETH_HandleTypeDef* heth)
323 {
324 if(heth->Instance==ETH)
325 {
326 /* USER CODE BEGIN ETH_MspDeInit 0 */
327
328 /* USER CODE END ETH_MspDeInit 0 */
329 /* Peripheral clock disable */
330 __HAL_RCC_ETH_CLK_DISABLE();
331 __HAL_RCC_ETHTX_CLK_DISABLE();
332 __HAL_RCC_ETHRX_CLK_DISABLE();
333
334 /**ETH GPIO Configuration
335 PC1 ------> ETH_MDC
336 PA1 ------> ETH_REF_CLK
337 PA2 ------> ETH_MDIO
338 PA7 ------> ETH_CRS_DV
339 PC4 ------> ETH_RXD0
340 PC5 ------> ETH_RXD1
341 PB15 ------> ETH_TXD1
342 PG11 ------> ETH_TX_EN
343 PG13 ------> ETH_TXD0
344 */
345 HAL_GPIO_DeInit(GPIOC, RMII_MDC_Pin|RMII_RXD0_Pin|RMII_RXD1_Pin);
346
347 HAL_GPIO_DeInit(GPIOA, RMII_REF_CLK_Pin|RMII_MDIO_Pin|RMII_CRS_DV_Pin);
348
349 HAL_GPIO_DeInit(RMII_TXD1_GPIO_Port, RMII_TXD1_Pin);
350
351 HAL_GPIO_DeInit(GPIOG, RMII_TXT_EN_Pin|RMI_TXD0_Pin);
352
353 /* USER CODE BEGIN ETH_MspDeInit 1 */
354
355 /* USER CODE END ETH_MspDeInit 1 */
356 }
357
358 }
359
360 /**
361 * @brief UART MSP Initialization
362 * This function configures the hardware resources used in this example
363 * @param huart: UART handle pointer
364 * @retval None
365 */
HAL_UART_MspInit(UART_HandleTypeDef * huart)366 void HAL_UART_MspInit(UART_HandleTypeDef* huart)
367 {
368 GPIO_InitTypeDef GPIO_InitStruct = {0};
369 RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
370 if(huart->Instance==LPUART1)
371 {
372 /* USER CODE BEGIN LPUART1_MspInit 0 */
373
374 /* USER CODE END LPUART1_MspInit 0 */
375
376 /** Initializes the peripherals clock
377 */
378 PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_LPUART1;
379 PeriphClkInitStruct.Lpuart1ClockSelection = RCC_LPUART1CLKSOURCE_PCLK3;
380 if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
381 {
382 Error_Handler();
383 }
384
385 /* Peripheral clock enable */
386 __HAL_RCC_LPUART1_CLK_ENABLE();
387
388 __HAL_RCC_GPIOB_CLK_ENABLE();
389 /**LPUART1 GPIO Configuration
390 PB6 ------> LPUART1_TX
391 PB7 ------> LPUART1_RX
392 */
393 GPIO_InitStruct.Pin = ARD_D1_TX_Pin|ARD_D0_RX_Pin;
394 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
395 GPIO_InitStruct.Pull = GPIO_NOPULL;
396 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
397 GPIO_InitStruct.Alternate = GPIO_AF8_LPUART1;
398 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
399
400 /* USER CODE BEGIN LPUART1_MspInit 1 */
401
402 /* USER CODE END LPUART1_MspInit 1 */
403 }
404 else if(huart->Instance==USART3)
405 {
406 /* USER CODE BEGIN USART3_MspInit 0 */
407
408 /* USER CODE END USART3_MspInit 0 */
409
410 /** Initializes the peripherals clock
411 */
412 PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_USART3;
413 PeriphClkInitStruct.Usart3ClockSelection = RCC_USART3CLKSOURCE_PCLK1;
414 if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
415 {
416 Error_Handler();
417 }
418
419 /* Peripheral clock enable */
420 __HAL_RCC_USART3_CLK_ENABLE();
421
422 __HAL_RCC_GPIOD_CLK_ENABLE();
423 /**USART3 GPIO Configuration
424 PD8 ------> USART3_TX
425 PD9 ------> USART3_RX
426 */
427 GPIO_InitStruct.Pin = T_VCP_TX_Pin|T_VCP_RX_Pin;
428 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
429 GPIO_InitStruct.Pull = GPIO_NOPULL;
430 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
431 GPIO_InitStruct.Alternate = GPIO_AF7_USART3;
432 HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
433
434 /* USER CODE BEGIN USART3_MspInit 1 */
435
436 /* USER CODE END USART3_MspInit 1 */
437 }
438
439 }
440
441 /**
442 * @brief UART MSP De-Initialization
443 * This function freeze the hardware resources used in this example
444 * @param huart: UART handle pointer
445 * @retval None
446 */
HAL_UART_MspDeInit(UART_HandleTypeDef * huart)447 void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
448 {
449 if(huart->Instance==LPUART1)
450 {
451 /* USER CODE BEGIN LPUART1_MspDeInit 0 */
452
453 /* USER CODE END LPUART1_MspDeInit 0 */
454 /* Peripheral clock disable */
455 __HAL_RCC_LPUART1_CLK_DISABLE();
456
457 /**LPUART1 GPIO Configuration
458 PB6 ------> LPUART1_TX
459 PB7 ------> LPUART1_RX
460 */
461 HAL_GPIO_DeInit(GPIOB, ARD_D1_TX_Pin|ARD_D0_RX_Pin);
462
463 /* USER CODE BEGIN LPUART1_MspDeInit 1 */
464
465 /* USER CODE END LPUART1_MspDeInit 1 */
466 }
467 else if(huart->Instance==USART3)
468 {
469 /* USER CODE BEGIN USART3_MspDeInit 0 */
470
471 /* USER CODE END USART3_MspDeInit 0 */
472 /* Peripheral clock disable */
473 __HAL_RCC_USART3_CLK_DISABLE();
474
475 /**USART3 GPIO Configuration
476 PD8 ------> USART3_TX
477 PD9 ------> USART3_RX
478 */
479 HAL_GPIO_DeInit(GPIOD, T_VCP_TX_Pin|T_VCP_RX_Pin);
480
481 /* USER CODE BEGIN USART3_MspDeInit 1 */
482
483 /* USER CODE END USART3_MspDeInit 1 */
484 }
485
486 }
487
488 /**
489 * @brief TIM_PWM MSP Initialization
490 * This function configures the hardware resources used in this example
491 * @param htim_pwm: TIM_PWM handle pointer
492 * @retval None
493 */
HAL_TIM_PWM_MspInit(TIM_HandleTypeDef * htim_pwm)494 void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef* htim_pwm)
495 {
496 if(htim_pwm->Instance==TIM1)
497 {
498 /* USER CODE BEGIN TIM1_MspInit 0 */
499
500 /* USER CODE END TIM1_MspInit 0 */
501 /* Peripheral clock enable */
502 __HAL_RCC_TIM1_CLK_ENABLE();
503 /* USER CODE BEGIN TIM1_MspInit 1 */
504
505 /* USER CODE END TIM1_MspInit 1 */
506 }
507 else if(htim_pwm->Instance==TIM3)
508 {
509 /* USER CODE BEGIN TIM3_MspInit 0 */
510
511 /* USER CODE END TIM3_MspInit 0 */
512 /* Peripheral clock enable */
513 __HAL_RCC_TIM3_CLK_ENABLE();
514 /* USER CODE BEGIN TIM3_MspInit 1 */
515
516 /* USER CODE END TIM3_MspInit 1 */
517 }
518 else if(htim_pwm->Instance==TIM4)
519 {
520 /* USER CODE BEGIN TIM4_MspInit 0 */
521
522 /* USER CODE END TIM4_MspInit 0 */
523 /* Peripheral clock enable */
524 __HAL_RCC_TIM4_CLK_ENABLE();
525 /* USER CODE BEGIN TIM4_MspInit 1 */
526
527 /* USER CODE END TIM4_MspInit 1 */
528 }
529
530 }
531
HAL_TIM_MspPostInit(TIM_HandleTypeDef * htim)532 void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim)
533 {
534 GPIO_InitTypeDef GPIO_InitStruct = {0};
535 if(htim->Instance==TIM1)
536 {
537 /* USER CODE BEGIN TIM1_MspPostInit 0 */
538
539 /* USER CODE END TIM1_MspPostInit 0 */
540 __HAL_RCC_GPIOE_CLK_ENABLE();
541 /**TIM1 GPIO Configuration
542 PE9 ------> TIM1_CH1
543 PE11 ------> TIM1_CH2
544 PE13 ------> TIM1_CH3
545 */
546 GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_11|GPIO_PIN_13;
547 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
548 GPIO_InitStruct.Pull = GPIO_NOPULL;
549 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
550 GPIO_InitStruct.Alternate = GPIO_AF1_TIM1;
551 HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
552
553 /* USER CODE BEGIN TIM1_MspPostInit 1 */
554
555 /* USER CODE END TIM1_MspPostInit 1 */
556 }
557 else if(htim->Instance==TIM3)
558 {
559 /* USER CODE BEGIN TIM3_MspPostInit 0 */
560
561 /* USER CODE END TIM3_MspPostInit 0 */
562
563 __HAL_RCC_GPIOB_CLK_ENABLE();
564 /**TIM3 GPIO Configuration
565 PB5 ------> TIM3_CH2
566 */
567 GPIO_InitStruct.Pin = GPIO_PIN_5;
568 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
569 GPIO_InitStruct.Pull = GPIO_NOPULL;
570 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
571 GPIO_InitStruct.Alternate = GPIO_AF2_TIM3;
572 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
573
574 /* USER CODE BEGIN TIM3_MspPostInit 1 */
575
576 /* USER CODE END TIM3_MspPostInit 1 */
577 }
578 else if(htim->Instance==TIM4)
579 {
580 /* USER CODE BEGIN TIM4_MspPostInit 0 */
581
582 /* USER CODE END TIM4_MspPostInit 0 */
583
584 __HAL_RCC_GPIOD_CLK_ENABLE();
585 /**TIM4 GPIO Configuration
586 PD14 ------> TIM4_CH3
587 PD15 ------> TIM4_CH4
588 */
589 GPIO_InitStruct.Pin = GPIO_PIN_14|GPIO_PIN_15;
590 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
591 GPIO_InitStruct.Pull = GPIO_NOPULL;
592 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
593 GPIO_InitStruct.Alternate = GPIO_AF2_TIM4;
594 HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
595
596 /* USER CODE BEGIN TIM4_MspPostInit 1 */
597
598 /* USER CODE END TIM4_MspPostInit 1 */
599 }
600
601 }
602 /**
603 * @brief TIM_PWM MSP De-Initialization
604 * This function freeze the hardware resources used in this example
605 * @param htim_pwm: TIM_PWM handle pointer
606 * @retval None
607 */
HAL_TIM_PWM_MspDeInit(TIM_HandleTypeDef * htim_pwm)608 void HAL_TIM_PWM_MspDeInit(TIM_HandleTypeDef* htim_pwm)
609 {
610 if(htim_pwm->Instance==TIM1)
611 {
612 /* USER CODE BEGIN TIM1_MspDeInit 0 */
613
614 /* USER CODE END TIM1_MspDeInit 0 */
615 /* Peripheral clock disable */
616 __HAL_RCC_TIM1_CLK_DISABLE();
617 /* USER CODE BEGIN TIM1_MspDeInit 1 */
618
619 /* USER CODE END TIM1_MspDeInit 1 */
620 }
621 else if(htim_pwm->Instance==TIM3)
622 {
623 /* USER CODE BEGIN TIM3_MspDeInit 0 */
624
625 /* USER CODE END TIM3_MspDeInit 0 */
626 /* Peripheral clock disable */
627 __HAL_RCC_TIM3_CLK_DISABLE();
628 /* USER CODE BEGIN TIM3_MspDeInit 1 */
629
630 /* USER CODE END TIM3_MspDeInit 1 */
631 }
632 else if(htim_pwm->Instance==TIM4)
633 {
634 /* USER CODE BEGIN TIM4_MspDeInit 0 */
635
636 /* USER CODE END TIM4_MspDeInit 0 */
637 /* Peripheral clock disable */
638 __HAL_RCC_TIM4_CLK_DISABLE();
639 /* USER CODE BEGIN TIM4_MspDeInit 1 */
640
641 /* USER CODE END TIM4_MspDeInit 1 */
642 }
643
644 }
645
646 /**
647 * @brief PCD MSP Initialization
648 * This function configures the hardware resources used in this example
649 * @param hpcd: PCD handle pointer
650 * @retval None
651 */
HAL_PCD_MspInit(PCD_HandleTypeDef * hpcd)652 void HAL_PCD_MspInit(PCD_HandleTypeDef* hpcd)
653 {
654 GPIO_InitTypeDef GPIO_InitStruct = {0};
655 RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
656 if(hpcd->Instance==USB_DRD_FS)
657 {
658 /* USER CODE BEGIN USB_DRD_FS_MspInit 0 */
659
660 /* USER CODE END USB_DRD_FS_MspInit 0 */
661
662 /** Initializes the peripherals clock
663 */
664 PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_USB;
665 PeriphClkInitStruct.UsbClockSelection = RCC_USBCLKSOURCE_HSI48;
666 if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
667 {
668 Error_Handler();
669 }
670
671 __HAL_RCC_GPIOA_CLK_ENABLE();
672 /**USB GPIO Configuration
673 PA11 ------> USB_DM
674 PA12 ------> USB_DP
675 */
676 GPIO_InitStruct.Pin = USB_FS_N_Pin|USB_FS_P_Pin;
677 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
678 GPIO_InitStruct.Pull = GPIO_NOPULL;
679 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
680 GPIO_InitStruct.Alternate = GPIO_AF10_USB;
681 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
682
683 /* Peripheral clock enable */
684 __HAL_RCC_USB_CLK_ENABLE();
685 /* USER CODE BEGIN USB_DRD_FS_MspInit 1 */
686
687 /* USER CODE END USB_DRD_FS_MspInit 1 */
688 }
689
690 }
691
692 /**
693 * @brief PCD MSP De-Initialization
694 * This function freeze the hardware resources used in this example
695 * @param hpcd: PCD handle pointer
696 * @retval None
697 */
HAL_PCD_MspDeInit(PCD_HandleTypeDef * hpcd)698 void HAL_PCD_MspDeInit(PCD_HandleTypeDef* hpcd)
699 {
700 if(hpcd->Instance==USB_DRD_FS)
701 {
702 /* USER CODE BEGIN USB_DRD_FS_MspDeInit 0 */
703
704 /* USER CODE END USB_DRD_FS_MspDeInit 0 */
705 /* Peripheral clock disable */
706 __HAL_RCC_USB_CLK_DISABLE();
707
708 /**USB GPIO Configuration
709 PA11 ------> USB_DM
710 PA12 ------> USB_DP
711 */
712 HAL_GPIO_DeInit(GPIOA, USB_FS_N_Pin|USB_FS_P_Pin);
713
714 /* USER CODE BEGIN USB_DRD_FS_MspDeInit 1 */
715
716 /* USER CODE END USB_DRD_FS_MspDeInit 1 */
717 }
718
719 }
720
721 /* USER CODE BEGIN 1 */
722
723 /* USER CODE END 1 */
724