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) 2023 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 /**
80 * @brief ADC MSP Initialization
81 * This function configures the hardware resources used in this example
82 * @param hadc: ADC handle pointer
83 * @retval None
84 */
HAL_ADC_MspInit(ADC_HandleTypeDef * hadc)85 void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc)
86 {
87 GPIO_InitTypeDef GPIO_InitStruct = {0};
88 RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
89 if(hadc->Instance==ADC1)
90 {
91 /* USER CODE BEGIN ADC1_MspInit 0 */
92
93 /* USER CODE END ADC1_MspInit 0 */
94
95 /** Initializes the peripherals clock
96 */
97 PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_ADCDAC;
98 PeriphClkInitStruct.AdcDacClockSelection = RCC_ADCDACCLKSOURCE_HCLK;
99 if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
100 {
101 Error_Handler();
102 }
103
104 /* Peripheral clock enable */
105 __HAL_RCC_ADC_CLK_ENABLE();
106
107 __HAL_RCC_GPIOC_CLK_ENABLE();
108 __HAL_RCC_GPIOA_CLK_ENABLE();
109 __HAL_RCC_GPIOB_CLK_ENABLE();
110 /**ADC1 GPIO Configuration
111 PC0 ------> ADC1_INP10
112 PC1 ------> ADC1_INP11
113 PA0 ------> ADC1_INP0
114 PA1 ------> ADC1_INP1
115 PA2 ------> ADC1_INP14
116 PB0 ------> ADC1_INP9
117 */
118 GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1;
119 GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
120 GPIO_InitStruct.Pull = GPIO_NOPULL;
121 HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
122
123 GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2;
124 GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
125 GPIO_InitStruct.Pull = GPIO_NOPULL;
126 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
127
128 GPIO_InitStruct.Pin = GPIO_PIN_0;
129 GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
130 GPIO_InitStruct.Pull = GPIO_NOPULL;
131 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
132
133 /* USER CODE BEGIN ADC1_MspInit 1 */
134
135 /* USER CODE END ADC1_MspInit 1 */
136 }
137
138 }
139
140 /**
141 * @brief ADC MSP De-Initialization
142 * This function freeze the hardware resources used in this example
143 * @param hadc: ADC handle pointer
144 * @retval None
145 */
HAL_ADC_MspDeInit(ADC_HandleTypeDef * hadc)146 void HAL_ADC_MspDeInit(ADC_HandleTypeDef* hadc)
147 {
148 if(hadc->Instance==ADC1)
149 {
150 /* USER CODE BEGIN ADC1_MspDeInit 0 */
151
152 /* USER CODE END ADC1_MspDeInit 0 */
153 /* Peripheral clock disable */
154 __HAL_RCC_ADC_CLK_DISABLE();
155
156 /**ADC1 GPIO Configuration
157 PC0 ------> ADC1_INP10
158 PC1 ------> ADC1_INP11
159 PA0 ------> ADC1_INP0
160 PA1 ------> ADC1_INP1
161 PA2 ------> ADC1_INP14
162 PB0 ------> ADC1_INP9
163 */
164 HAL_GPIO_DeInit(GPIOC, GPIO_PIN_0|GPIO_PIN_1);
165
166 HAL_GPIO_DeInit(GPIOA, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2);
167
168 HAL_GPIO_DeInit(GPIOB, GPIO_PIN_0);
169
170 /* USER CODE BEGIN ADC1_MspDeInit 1 */
171
172 /* USER CODE END ADC1_MspDeInit 1 */
173 }
174
175 }
176
177 /**
178 * @brief TIM_Base MSP Initialization
179 * This function configures the hardware resources used in this example
180 * @param htim_base: TIM_Base handle pointer
181 * @retval None
182 */
HAL_TIM_Base_MspInit(TIM_HandleTypeDef * htim_base)183 void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
184 {
185 if(htim_base->Instance==TIM1)
186 {
187 /* USER CODE BEGIN TIM1_MspInit 0 */
188
189 /* USER CODE END TIM1_MspInit 0 */
190 /* Peripheral clock enable */
191 __HAL_RCC_TIM1_CLK_ENABLE();
192 /* USER CODE BEGIN TIM1_MspInit 1 */
193
194 /* USER CODE END TIM1_MspInit 1 */
195 }
196 else if(htim_base->Instance==TIM2)
197 {
198 /* USER CODE BEGIN TIM2_MspInit 0 */
199
200 /* USER CODE END TIM2_MspInit 0 */
201 /* Peripheral clock enable */
202 __HAL_RCC_TIM2_CLK_ENABLE();
203 /* USER CODE BEGIN TIM2_MspInit 1 */
204
205 /* USER CODE END TIM2_MspInit 1 */
206 }
207 else if(htim_base->Instance==TIM3)
208 {
209 /* USER CODE BEGIN TIM3_MspInit 0 */
210
211 /* USER CODE END TIM3_MspInit 0 */
212 /* Peripheral clock enable */
213 __HAL_RCC_TIM3_CLK_ENABLE();
214 /* USER CODE BEGIN TIM3_MspInit 1 */
215
216 /* USER CODE END TIM3_MspInit 1 */
217 }
218
219 }
220
HAL_TIM_MspPostInit(TIM_HandleTypeDef * htim)221 void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim)
222 {
223 GPIO_InitTypeDef GPIO_InitStruct = {0};
224 if(htim->Instance==TIM1)
225 {
226 /* USER CODE BEGIN TIM1_MspPostInit 0 */
227
228 /* USER CODE END TIM1_MspPostInit 0 */
229 __HAL_RCC_GPIOB_CLK_ENABLE();
230 /**TIM1 GPIO Configuration
231 PB4(NJTRST) ------> TIM1_CH2
232 */
233 GPIO_InitStruct.Pin = GPIO_PIN_4;
234 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
235 GPIO_InitStruct.Pull = GPIO_NOPULL;
236 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
237 GPIO_InitStruct.Alternate = GPIO_AF14_TIM1;
238 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
239
240 /* USER CODE BEGIN TIM1_MspPostInit 1 */
241
242 /* USER CODE END TIM1_MspPostInit 1 */
243 }
244 else if(htim->Instance==TIM2)
245 {
246 /* USER CODE BEGIN TIM2_MspPostInit 0 */
247
248 /* USER CODE END TIM2_MspPostInit 0 */
249
250 __HAL_RCC_GPIOB_CLK_ENABLE();
251 /**TIM2 GPIO Configuration
252 PB10 ------> TIM2_CH3
253 */
254 GPIO_InitStruct.Pin = GPIO_PIN_10;
255 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
256 GPIO_InitStruct.Pull = GPIO_NOPULL;
257 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
258 GPIO_InitStruct.Alternate = GPIO_AF1_TIM2;
259 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
260
261 /* USER CODE BEGIN TIM2_MspPostInit 1 */
262
263 /* USER CODE END TIM2_MspPostInit 1 */
264 }
265 else if(htim->Instance==TIM3)
266 {
267 /* USER CODE BEGIN TIM3_MspPostInit 0 */
268
269 /* USER CODE END TIM3_MspPostInit 0 */
270
271 __HAL_RCC_GPIOA_CLK_ENABLE();
272 __HAL_RCC_GPIOC_CLK_ENABLE();
273 /**TIM3 GPIO Configuration
274 PA7 ------> TIM3_CH2
275 PC6 ------> TIM3_CH1
276 PC9 ------> TIM3_CH4
277 */
278 GPIO_InitStruct.Pin = GPIO_PIN_7;
279 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
280 GPIO_InitStruct.Pull = GPIO_NOPULL;
281 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
282 GPIO_InitStruct.Alternate = GPIO_AF2_TIM3;
283 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
284
285 GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_9;
286 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
287 GPIO_InitStruct.Pull = GPIO_NOPULL;
288 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
289 GPIO_InitStruct.Alternate = GPIO_AF2_TIM3;
290 HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
291
292 /* USER CODE BEGIN TIM3_MspPostInit 1 */
293
294 /* USER CODE END TIM3_MspPostInit 1 */
295 }
296
297 }
298 /**
299 * @brief TIM_Base MSP De-Initialization
300 * This function freeze the hardware resources used in this example
301 * @param htim_base: TIM_Base handle pointer
302 * @retval None
303 */
HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef * htim_base)304 void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base)
305 {
306 if(htim_base->Instance==TIM1)
307 {
308 /* USER CODE BEGIN TIM1_MspDeInit 0 */
309
310 /* USER CODE END TIM1_MspDeInit 0 */
311 /* Peripheral clock disable */
312 __HAL_RCC_TIM1_CLK_DISABLE();
313 /* USER CODE BEGIN TIM1_MspDeInit 1 */
314
315 /* USER CODE END TIM1_MspDeInit 1 */
316 }
317 else if(htim_base->Instance==TIM2)
318 {
319 /* USER CODE BEGIN TIM2_MspDeInit 0 */
320
321 /* USER CODE END TIM2_MspDeInit 0 */
322 /* Peripheral clock disable */
323 __HAL_RCC_TIM2_CLK_DISABLE();
324 /* USER CODE BEGIN TIM2_MspDeInit 1 */
325
326 /* USER CODE END TIM2_MspDeInit 1 */
327 }
328 else if(htim_base->Instance==TIM3)
329 {
330 /* USER CODE BEGIN TIM3_MspDeInit 0 */
331
332 /* USER CODE END TIM3_MspDeInit 0 */
333 /* Peripheral clock disable */
334 __HAL_RCC_TIM3_CLK_DISABLE();
335 /* USER CODE BEGIN TIM3_MspDeInit 1 */
336
337 /* USER CODE END TIM3_MspDeInit 1 */
338 }
339
340 }
341
342 /**
343 * @brief UART MSP Initialization
344 * This function configures the hardware resources used in this example
345 * @param huart: UART handle pointer
346 * @retval None
347 */
HAL_UART_MspInit(UART_HandleTypeDef * huart)348 void HAL_UART_MspInit(UART_HandleTypeDef* huart)
349 {
350 GPIO_InitTypeDef GPIO_InitStruct = {0};
351 RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
352 if(huart->Instance==USART1)
353 {
354 /* USER CODE BEGIN USART1_MspInit 0 */
355
356 /* USER CODE END USART1_MspInit 0 */
357
358 /** Initializes the peripherals clock
359 */
360 PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_USART1;
361 PeriphClkInitStruct.Usart1ClockSelection = RCC_USART1CLKSOURCE_PCLK2;
362 if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
363 {
364 Error_Handler();
365 }
366
367 /* Peripheral clock enable */
368 __HAL_RCC_USART1_CLK_ENABLE();
369
370 __HAL_RCC_GPIOB_CLK_ENABLE();
371 /**USART1 GPIO Configuration
372 PB14 ------> USART1_TX
373 PB15 ------> USART1_RX
374 */
375 GPIO_InitStruct.Pin = ARD_D1_TX_Pin|ARD_D0_RX_Pin;
376 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
377 GPIO_InitStruct.Pull = GPIO_NOPULL;
378 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
379 GPIO_InitStruct.Alternate = GPIO_AF4_USART1;
380 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
381
382 /* USER CODE BEGIN USART1_MspInit 1 */
383
384 /* USER CODE END USART1_MspInit 1 */
385 }
386 else if(huart->Instance==USART3)
387 {
388 /* USER CODE BEGIN USART3_MspInit 0 */
389
390 /* USER CODE END USART3_MspInit 0 */
391
392 /** Initializes the peripherals clock
393 */
394 PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_USART3;
395 PeriphClkInitStruct.Usart3ClockSelection = RCC_USART3CLKSOURCE_PCLK1;
396 if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
397 {
398 Error_Handler();
399 }
400
401 /* Peripheral clock enable */
402 __HAL_RCC_USART3_CLK_ENABLE();
403
404 __HAL_RCC_GPIOA_CLK_ENABLE();
405 /**USART3 GPIO Configuration
406 PA3 ------> USART3_RX
407 PA4 ------> USART3_TX
408 */
409 GPIO_InitStruct.Pin = T_VCP_RX_Pin|T_VCP_TX_Pin;
410 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
411 GPIO_InitStruct.Pull = GPIO_NOPULL;
412 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
413 GPIO_InitStruct.Alternate = GPIO_AF13_USART3;
414 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
415
416 /* USER CODE BEGIN USART3_MspInit 1 */
417
418 /* USER CODE END USART3_MspInit 1 */
419 }
420
421 }
422
423 /**
424 * @brief UART MSP De-Initialization
425 * This function freeze the hardware resources used in this example
426 * @param huart: UART handle pointer
427 * @retval None
428 */
HAL_UART_MspDeInit(UART_HandleTypeDef * huart)429 void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
430 {
431 if(huart->Instance==USART1)
432 {
433 /* USER CODE BEGIN USART1_MspDeInit 0 */
434
435 /* USER CODE END USART1_MspDeInit 0 */
436 /* Peripheral clock disable */
437 __HAL_RCC_USART1_CLK_DISABLE();
438
439 /**USART1 GPIO Configuration
440 PB14 ------> USART1_TX
441 PB15 ------> USART1_RX
442 */
443 HAL_GPIO_DeInit(GPIOB, ARD_D1_TX_Pin|ARD_D0_RX_Pin);
444
445 /* USER CODE BEGIN USART1_MspDeInit 1 */
446
447 /* USER CODE END USART1_MspDeInit 1 */
448 }
449 else if(huart->Instance==USART3)
450 {
451 /* USER CODE BEGIN USART3_MspDeInit 0 */
452
453 /* USER CODE END USART3_MspDeInit 0 */
454 /* Peripheral clock disable */
455 __HAL_RCC_USART3_CLK_DISABLE();
456
457 /**USART3 GPIO Configuration
458 PA3 ------> USART3_RX
459 PA4 ------> USART3_TX
460 */
461 HAL_GPIO_DeInit(GPIOA, T_VCP_RX_Pin|T_VCP_TX_Pin);
462
463 /* USER CODE BEGIN USART3_MspDeInit 1 */
464
465 /* USER CODE END USART3_MspDeInit 1 */
466 }
467
468 }
469
470 /**
471 * @brief PCD MSP Initialization
472 * This function configures the hardware resources used in this example
473 * @param hpcd: PCD handle pointer
474 * @retval None
475 */
HAL_PCD_MspInit(PCD_HandleTypeDef * hpcd)476 void HAL_PCD_MspInit(PCD_HandleTypeDef* hpcd)
477 {
478 GPIO_InitTypeDef GPIO_InitStruct = {0};
479 RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
480 if(hpcd->Instance==USB_DRD_FS)
481 {
482 /* USER CODE BEGIN USB_DRD_FS_MspInit 0 */
483
484 /* USER CODE END USB_DRD_FS_MspInit 0 */
485
486 /** Initializes the peripherals clock
487 */
488 PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_USB;
489 PeriphClkInitStruct.UsbClockSelection = RCC_USBCLKSOURCE_HSI48;
490 if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
491 {
492 Error_Handler();
493 }
494
495 __HAL_RCC_GPIOA_CLK_ENABLE();
496 /**USB GPIO Configuration
497 PA11 ------> USB_DM
498 PA12 ------> USB_DP
499 */
500 GPIO_InitStruct.Pin = USB_FS_DN_Pin|USB_FS_DP_Pin;
501 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
502 GPIO_InitStruct.Pull = GPIO_NOPULL;
503 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
504 GPIO_InitStruct.Alternate = GPIO_AF10_USB;
505 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
506
507 /* Peripheral clock enable */
508 __HAL_RCC_USB_CLK_ENABLE();
509 /* USER CODE BEGIN USB_DRD_FS_MspInit 1 */
510
511 /* USER CODE END USB_DRD_FS_MspInit 1 */
512 }
513
514 }
515
516 /**
517 * @brief PCD MSP De-Initialization
518 * This function freeze the hardware resources used in this example
519 * @param hpcd: PCD handle pointer
520 * @retval None
521 */
HAL_PCD_MspDeInit(PCD_HandleTypeDef * hpcd)522 void HAL_PCD_MspDeInit(PCD_HandleTypeDef* hpcd)
523 {
524 if(hpcd->Instance==USB_DRD_FS)
525 {
526 /* USER CODE BEGIN USB_DRD_FS_MspDeInit 0 */
527
528 /* USER CODE END USB_DRD_FS_MspDeInit 0 */
529 /* Peripheral clock disable */
530 __HAL_RCC_USB_CLK_DISABLE();
531
532 /**USB GPIO Configuration
533 PA11 ------> USB_DM
534 PA12 ------> USB_DP
535 */
536 HAL_GPIO_DeInit(GPIOA, USB_FS_DN_Pin|USB_FS_DP_Pin);
537
538 /* USER CODE BEGIN USB_DRD_FS_MspDeInit 1 */
539
540 /* USER CODE END USB_DRD_FS_MspDeInit 1 */
541 }
542
543 }
544
545 /* USER CODE BEGIN 1 */
546
547 /* USER CODE END 1 */
548