1 /* USER CODE BEGIN Header */
2 /**
3 ******************************************************************************
4 * File Name : stm32f4xx_hal_msp.c
5 * Description : This file provides code for the MSP Initialization
6 * and de-Initialization codes.
7 ******************************************************************************
8 ** This notice applies to any and all portions of this file
9 * that are not between comment pairs USER CODE BEGIN and
10 * USER CODE END. Other portions of this file, whether
11 * inserted by the user or by software development tools
12 * are owned by their respective copyright owners.
13 *
14 * COPYRIGHT(c) 2018 STMicroelectronics
15 *
16 * Redistribution and use in source and binary forms, with or without modification,
17 * are permitted provided that the following conditions are met:
18 * 1. Redistributions of source code must retain the above copyright notice,
19 * this list of conditions and the following disclaimer.
20 * 2. Redistributions in binary form must reproduce the above copyright notice,
21 * this list of conditions and the following disclaimer in the documentation
22 * and/or other materials provided with the distribution.
23 * 3. Neither the name of STMicroelectronics nor the names of its contributors
24 * may be used to endorse or promote products derived from this software
25 * without specific prior written permission.
26 *
27 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
28 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
29 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
30 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
31 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
32 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
33 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
34 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
35 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
36 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37 *
38 ******************************************************************************
39 */
40 /* USER CODE END Header */
41
42 /* Includes ------------------------------------------------------------------*/
43 #include "main.h"
44 /* USER CODE BEGIN Includes */
45 #include <drv_common.h>
46 /* USER CODE END Includes */
47
48 /* Private typedef -----------------------------------------------------------*/
49 /* USER CODE BEGIN TD */
50
51 /* USER CODE END TD */
52
53 /* Private define ------------------------------------------------------------*/
54 /* USER CODE BEGIN Define */
55
56 /* USER CODE END Define */
57
58 /* Private macro -------------------------------------------------------------*/
59 /* USER CODE BEGIN Macro */
60
61 /* USER CODE END Macro */
62
63 /* Private variables ---------------------------------------------------------*/
64 /* USER CODE BEGIN PV */
65
66 /* USER CODE END PV */
67
68 /* Private function prototypes -----------------------------------------------*/
69 /* USER CODE BEGIN PFP */
70
71 /* USER CODE END PFP */
72
73 /* External functions --------------------------------------------------------*/
74 /* USER CODE BEGIN ExternalFunctions */
75
76 /* USER CODE END ExternalFunctions */
77
78 /* USER CODE BEGIN 0 */
79
80 /* USER CODE END 0 */
81
82 void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim);
83 /**
84 * Initializes the Global MSP.
85 */
HAL_MspInit(void)86 void HAL_MspInit(void)
87 {
88 /* USER CODE BEGIN MspInit 0 */
89
90 /* USER CODE END MspInit 0 */
91
92 __HAL_RCC_SYSCFG_CLK_ENABLE();
93 __HAL_RCC_PWR_CLK_ENABLE();
94
95 /* System interrupt init*/
96
97 /* USER CODE BEGIN MspInit 1 */
98
99 /* USER CODE END MspInit 1 */
100 }
101
102 /**
103 * @brief ADC MSP Initialization
104 * This function configures the hardware resources used in this example
105 * @param hadc: ADC handle pointer
106 * @retval None
107 */
HAL_ADC_MspInit(ADC_HandleTypeDef * hadc)108 void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc)
109 {
110 if(hadc->Instance==ADC1)
111 {
112 /* USER CODE BEGIN ADC1_MspInit 0 */
113
114 /* USER CODE END ADC1_MspInit 0 */
115 /* Peripheral clock enable */
116 __HAL_RCC_ADC1_CLK_ENABLE();
117 /* USER CODE BEGIN ADC1_MspInit 1 */
118
119 /* USER CODE END ADC1_MspInit 1 */
120 }
121
122 }
123
124 /**
125 * @brief ADC MSP De-Initialization
126 * This function freeze the hardware resources used in this example
127 * @param hadc: ADC handle pointer
128 * @retval None
129 */
HAL_ADC_MspDeInit(ADC_HandleTypeDef * hadc)130 void HAL_ADC_MspDeInit(ADC_HandleTypeDef* hadc)
131 {
132 if(hadc->Instance==ADC1)
133 {
134 /* USER CODE BEGIN ADC1_MspDeInit 0 */
135
136 /* USER CODE END ADC1_MspDeInit 0 */
137 /* Peripheral clock disable */
138 __HAL_RCC_ADC1_CLK_DISABLE();
139 /* USER CODE BEGIN ADC1_MspDeInit 1 */
140
141 /* USER CODE END ADC1_MspDeInit 1 */
142 }
143
144 }
145
146 static uint32_t HAL_RCC_CAN1_CLK_ENABLED=0;
147
148 /**
149 * @brief CAN MSP Initialization
150 * This function configures the hardware resources used in this example
151 * @param hcan: CAN handle pointer
152 * @retval None
153 */
HAL_CAN_MspInit(CAN_HandleTypeDef * hcan)154 void HAL_CAN_MspInit(CAN_HandleTypeDef* hcan)
155 {
156 GPIO_InitTypeDef GPIO_InitStruct = {0};
157 if(hcan->Instance==CAN1)
158 {
159 /* USER CODE BEGIN CAN1_MspInit 0 */
160
161 /* USER CODE END CAN1_MspInit 0 */
162 /* Peripheral clock enable */
163 HAL_RCC_CAN1_CLK_ENABLED++;
164 if(HAL_RCC_CAN1_CLK_ENABLED==1){
165 __HAL_RCC_CAN1_CLK_ENABLE();
166 }
167
168 __HAL_RCC_GPIOD_CLK_ENABLE();
169 /**CAN1 GPIO Configuration
170 PD0 ------> CAN1_RX
171 PD1 ------> CAN1_TX
172 */
173 GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1;
174 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
175 GPIO_InitStruct.Pull = GPIO_NOPULL;
176 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
177 GPIO_InitStruct.Alternate = GPIO_AF9_CAN1;
178 HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
179
180 /* USER CODE BEGIN CAN1_MspInit 1 */
181
182 /* USER CODE END CAN1_MspInit 1 */
183 }
184 else if(hcan->Instance==CAN2)
185 {
186 /* USER CODE BEGIN CAN2_MspInit 0 */
187
188 /* USER CODE END CAN2_MspInit 0 */
189 /* Peripheral clock enable */
190 __HAL_RCC_CAN2_CLK_ENABLE();
191 HAL_RCC_CAN1_CLK_ENABLED++;
192 if(HAL_RCC_CAN1_CLK_ENABLED==1){
193 __HAL_RCC_CAN1_CLK_ENABLE();
194 }
195
196 __HAL_RCC_GPIOB_CLK_ENABLE();
197 /**CAN2 GPIO Configuration
198 PB12 ------> CAN2_RX
199 PB13 ------> CAN2_TX
200 */
201 GPIO_InitStruct.Pin = GPIO_PIN_12|GPIO_PIN_13;
202 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
203 GPIO_InitStruct.Pull = GPIO_NOPULL;
204 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
205 GPIO_InitStruct.Alternate = GPIO_AF9_CAN2;
206 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
207
208 /* USER CODE BEGIN CAN2_MspInit 1 */
209
210 /* USER CODE END CAN2_MspInit 1 */
211 }
212
213 }
214
215 /**
216 * @brief CAN MSP De-Initialization
217 * This function freeze the hardware resources used in this example
218 * @param hcan: CAN handle pointer
219 * @retval None
220 */
HAL_CAN_MspDeInit(CAN_HandleTypeDef * hcan)221 void HAL_CAN_MspDeInit(CAN_HandleTypeDef* hcan)
222 {
223 if(hcan->Instance==CAN1)
224 {
225 /* USER CODE BEGIN CAN1_MspDeInit 0 */
226
227 /* USER CODE END CAN1_MspDeInit 0 */
228 /* Peripheral clock disable */
229 HAL_RCC_CAN1_CLK_ENABLED--;
230 if(HAL_RCC_CAN1_CLK_ENABLED==0){
231 __HAL_RCC_CAN1_CLK_DISABLE();
232 }
233
234 /**CAN1 GPIO Configuration
235 PD0 ------> CAN1_RX
236 PD1 ------> CAN1_TX
237 */
238 HAL_GPIO_DeInit(GPIOD, GPIO_PIN_0|GPIO_PIN_1);
239
240 /* USER CODE BEGIN CAN1_MspDeInit 1 */
241
242 /* USER CODE END CAN1_MspDeInit 1 */
243 }
244 else if(hcan->Instance==CAN2)
245 {
246 /* USER CODE BEGIN CAN2_MspDeInit 0 */
247
248 /* USER CODE END CAN2_MspDeInit 0 */
249 /* Peripheral clock disable */
250 __HAL_RCC_CAN2_CLK_DISABLE();
251 HAL_RCC_CAN1_CLK_ENABLED--;
252 if(HAL_RCC_CAN1_CLK_ENABLED==0){
253 __HAL_RCC_CAN1_CLK_DISABLE();
254 }
255
256 /**CAN2 GPIO Configuration
257 PB12 ------> CAN2_RX
258 PB13 ------> CAN2_TX
259 */
260 HAL_GPIO_DeInit(GPIOB, GPIO_PIN_12|GPIO_PIN_13);
261
262 /* USER CODE BEGIN CAN2_MspDeInit 1 */
263
264 /* USER CODE END CAN2_MspDeInit 1 */
265 }
266
267 }
268
269 /**
270 * @brief SD MSP Initialization
271 * This function configures the hardware resources used in this example
272 * @param hsd: SD handle pointer
273 * @retval None
274 */
HAL_SD_MspInit(SD_HandleTypeDef * hsd)275 void HAL_SD_MspInit(SD_HandleTypeDef* hsd)
276 {
277 GPIO_InitTypeDef GPIO_InitStruct = {0};
278 if(hsd->Instance==SDIO)
279 {
280 /* USER CODE BEGIN SDIO_MspInit 0 */
281
282 /* USER CODE END SDIO_MspInit 0 */
283 /* Peripheral clock enable */
284 __HAL_RCC_SDIO_CLK_ENABLE();
285
286 __HAL_RCC_GPIOC_CLK_ENABLE();
287 __HAL_RCC_GPIOD_CLK_ENABLE();
288 /**SDIO GPIO Configuration
289 PC12 ------> SDIO_CK
290 PC11 ------> SDIO_D3
291 PC10 ------> SDIO_D2
292 PD2 ------> SDIO_CMD
293 PC9 ------> SDIO_D1
294 PC8 ------> SDIO_D0
295 */
296 GPIO_InitStruct.Pin = GPIO_PIN_12|GPIO_PIN_11|GPIO_PIN_10|GPIO_PIN_9
297 |GPIO_PIN_8;
298 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
299 GPIO_InitStruct.Pull = GPIO_NOPULL;
300 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
301 GPIO_InitStruct.Alternate = GPIO_AF12_SDIO;
302 HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
303
304 GPIO_InitStruct.Pin = GPIO_PIN_2;
305 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
306 GPIO_InitStruct.Pull = GPIO_NOPULL;
307 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
308 GPIO_InitStruct.Alternate = GPIO_AF12_SDIO;
309 HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
310
311 /* USER CODE BEGIN SDIO_MspInit 1 */
312
313 /* USER CODE END SDIO_MspInit 1 */
314 }
315
316 }
317
318 /**
319 * @brief SD MSP De-Initialization
320 * This function freeze the hardware resources used in this example
321 * @param hsd: SD handle pointer
322 * @retval None
323 */
HAL_SD_MspDeInit(SD_HandleTypeDef * hsd)324 void HAL_SD_MspDeInit(SD_HandleTypeDef* hsd)
325 {
326 if(hsd->Instance==SDIO)
327 {
328 /* USER CODE BEGIN SDIO_MspDeInit 0 */
329
330 /* USER CODE END SDIO_MspDeInit 0 */
331 /* Peripheral clock disable */
332 __HAL_RCC_SDIO_CLK_DISABLE();
333
334 /**SDIO GPIO Configuration
335 PC12 ------> SDIO_CK
336 PC11 ------> SDIO_D3
337 PC10 ------> SDIO_D2
338 PD2 ------> SDIO_CMD
339 PC9 ------> SDIO_D1
340 PC8 ------> SDIO_D0
341 */
342 HAL_GPIO_DeInit(GPIOC, GPIO_PIN_12|GPIO_PIN_11|GPIO_PIN_10|GPIO_PIN_9
343 |GPIO_PIN_8);
344
345 HAL_GPIO_DeInit(GPIOD, GPIO_PIN_2);
346
347 /* USER CODE BEGIN SDIO_MspDeInit 1 */
348
349 /* USER CODE END SDIO_MspDeInit 1 */
350 }
351
352 }
353
354 /**
355 * @brief SPI MSP Initialization
356 * This function configures the hardware resources used in this example
357 * @param hspi: SPI handle pointer
358 * @retval None
359 */
HAL_SPI_MspInit(SPI_HandleTypeDef * hspi)360 void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi)
361 {
362 GPIO_InitTypeDef GPIO_InitStruct = {0};
363 if(hspi->Instance==SPI5)
364 {
365 /* USER CODE BEGIN SPI5_MspInit 0 */
366
367 /* USER CODE END SPI5_MspInit 0 */
368 /* Peripheral clock enable */
369 __HAL_RCC_SPI5_CLK_ENABLE();
370
371 __HAL_RCC_GPIOF_CLK_ENABLE();
372 /**SPI5 GPIO Configuration
373 PF7 ------> SPI5_SCK
374 PF9 ------> SPI5_MOSI
375 PF8 ------> SPI5_MISO
376 */
377 GPIO_InitStruct.Pin = GPIO_PIN_7|GPIO_PIN_9|GPIO_PIN_8;
378 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
379 GPIO_InitStruct.Pull = GPIO_NOPULL;
380 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
381 GPIO_InitStruct.Alternate = GPIO_AF5_SPI5;
382 HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
383
384 /* USER CODE BEGIN SPI5_MspInit 1 */
385
386 /* USER CODE END SPI5_MspInit 1 */
387 }
388
389 }
390
391 /**
392 * @brief SPI MSP De-Initialization
393 * This function freeze the hardware resources used in this example
394 * @param hspi: SPI handle pointer
395 * @retval None
396 */
HAL_SPI_MspDeInit(SPI_HandleTypeDef * hspi)397 void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi)
398 {
399 if(hspi->Instance==SPI5)
400 {
401 /* USER CODE BEGIN SPI5_MspDeInit 0 */
402
403 /* USER CODE END SPI5_MspDeInit 0 */
404 /* Peripheral clock disable */
405 __HAL_RCC_SPI5_CLK_DISABLE();
406
407 /**SPI5 GPIO Configuration
408 PF7 ------> SPI5_SCK
409 PF9 ------> SPI5_MOSI
410 PF8 ------> SPI5_MISO
411 */
412 HAL_GPIO_DeInit(GPIOF, GPIO_PIN_7|GPIO_PIN_9|GPIO_PIN_8);
413
414 /* USER CODE BEGIN SPI5_MspDeInit 1 */
415
416 /* USER CODE END SPI5_MspDeInit 1 */
417 }
418
419 }
420
421 /**
422 * @brief TIM_Base MSP Initialization
423 * This function configures the hardware resources used in this example
424 * @param htim_base: TIM_Base handle pointer
425 * @retval None
426 */
HAL_TIM_Base_MspInit(TIM_HandleTypeDef * htim_base)427 void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
428 {
429 if(htim_base->Instance==TIM2)
430 {
431 /* USER CODE BEGIN TIM2_MspInit 0 */
432
433 /* USER CODE END TIM2_MspInit 0 */
434 /* Peripheral clock enable */
435 __HAL_RCC_TIM2_CLK_ENABLE();
436 /* USER CODE BEGIN TIM2_MspInit 1 */
437
438 /* USER CODE END TIM2_MspInit 1 */
439 }
440 else if(htim_base->Instance==TIM4)
441 {
442 /* USER CODE BEGIN TIM4_MspInit 0 */
443
444 /* USER CODE END TIM4_MspInit 0 */
445 /* Peripheral clock enable */
446 __HAL_RCC_TIM4_CLK_ENABLE();
447 /* USER CODE BEGIN TIM4_MspInit 1 */
448
449 /* USER CODE END TIM4_MspInit 1 */
450 }
451 else if(htim_base->Instance==TIM5)
452 {
453 /* USER CODE BEGIN TIM5_MspInit 0 */
454
455 /* USER CODE END TIM5_MspInit 0 */
456 /* Peripheral clock enable */
457 __HAL_RCC_TIM5_CLK_ENABLE();
458 /* USER CODE BEGIN TIM5_MspInit 1 */
459
460 /* USER CODE END TIM5_MspInit 1 */
461 }
462 else if(htim_base->Instance==TIM8)
463 {
464 /* USER CODE BEGIN TIM8_MspInit 0 */
465
466 /* USER CODE END TIM8_MspInit 0 */
467 /* Peripheral clock enable */
468 __HAL_RCC_TIM8_CLK_ENABLE();
469 /* USER CODE BEGIN TIM8_MspInit 1 */
470
471 /* USER CODE END TIM8_MspInit 1 */
472 }
473 else if(htim_base->Instance==TIM12)
474 {
475 /* USER CODE BEGIN TIM12_MspInit 0 */
476
477 /* USER CODE END TIM12_MspInit 0 */
478 /* Peripheral clock enable */
479 __HAL_RCC_TIM12_CLK_ENABLE();
480 /* USER CODE BEGIN TIM12_MspInit 1 */
481
482 /* USER CODE END TIM12_MspInit 1 */
483 }
484
485 }
486
HAL_TIM_MspPostInit(TIM_HandleTypeDef * htim)487 void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim)
488 {
489 GPIO_InitTypeDef GPIO_InitStruct = {0};
490 if(htim->Instance==TIM2)
491 {
492 /* USER CODE BEGIN TIM2_MspPostInit 0 */
493
494 /* USER CODE END TIM2_MspPostInit 0 */
495 __HAL_RCC_GPIOA_CLK_ENABLE();
496 /**TIM2 GPIO Configuration
497 PA1 ------> TIM2_CH2
498 PA0/WKUP ------> TIM2_CH1
499 PA2 ------> TIM2_CH3
500 PA3 ------> TIM2_CH4
501 */
502 GPIO_InitStruct.Pin = GPIO_PIN_1|GPIO_PIN_0|GPIO_PIN_2|GPIO_PIN_3;
503 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
504 GPIO_InitStruct.Pull = GPIO_NOPULL;
505 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
506 GPIO_InitStruct.Alternate = GPIO_AF1_TIM2;
507 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
508
509 /* USER CODE BEGIN TIM2_MspPostInit 1 */
510
511 /* USER CODE END TIM2_MspPostInit 1 */
512 }
513 else if(htim->Instance==TIM4)
514 {
515 /* USER CODE BEGIN TIM4_MspPostInit 0 */
516
517 /* USER CODE END TIM4_MspPostInit 0 */
518
519 __HAL_RCC_GPIOD_CLK_ENABLE();
520 /**TIM4 GPIO Configuration
521 PD15 ------> TIM4_CH4
522 PD14 ------> TIM4_CH3
523 PD13 ------> TIM4_CH2
524 PD12 ------> TIM4_CH1
525 */
526 GPIO_InitStruct.Pin = GPIO_PIN_15|GPIO_PIN_14|GPIO_PIN_13|GPIO_PIN_12;
527 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
528 GPIO_InitStruct.Pull = GPIO_NOPULL;
529 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
530 GPIO_InitStruct.Alternate = GPIO_AF2_TIM4;
531 HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
532
533 /* USER CODE BEGIN TIM4_MspPostInit 1 */
534
535 /* USER CODE END TIM4_MspPostInit 1 */
536 }
537 else if(htim->Instance==TIM5)
538 {
539 /* USER CODE BEGIN TIM5_MspPostInit 0 */
540
541 /* USER CODE END TIM5_MspPostInit 0 */
542
543 __HAL_RCC_GPIOI_CLK_ENABLE();
544 __HAL_RCC_GPIOH_CLK_ENABLE();
545 /**TIM5 GPIO Configuration
546 PI0 ------> TIM5_CH4
547 PH12 ------> TIM5_CH3
548 PH11 ------> TIM5_CH2
549 PH10 ------> TIM5_CH1
550 */
551 GPIO_InitStruct.Pin = GPIO_PIN_0;
552 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
553 GPIO_InitStruct.Pull = GPIO_NOPULL;
554 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
555 GPIO_InitStruct.Alternate = GPIO_AF2_TIM5;
556 HAL_GPIO_Init(GPIOI, &GPIO_InitStruct);
557
558 GPIO_InitStruct.Pin = GPIO_PIN_12|GPIO_PIN_11|GPIO_PIN_10;
559 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
560 GPIO_InitStruct.Pull = GPIO_NOPULL;
561 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
562 GPIO_InitStruct.Alternate = GPIO_AF2_TIM5;
563 HAL_GPIO_Init(GPIOH, &GPIO_InitStruct);
564
565 /* USER CODE BEGIN TIM5_MspPostInit 1 */
566
567 /* USER CODE END TIM5_MspPostInit 1 */
568 }
569 else if(htim->Instance==TIM8)
570 {
571 /* USER CODE BEGIN TIM8_MspPostInit 0 */
572
573 /* USER CODE END TIM8_MspPostInit 0 */
574
575 __HAL_RCC_GPIOI_CLK_ENABLE();
576 /**TIM8 GPIO Configuration
577 PI7 ------> TIM8_CH3
578 PI6 ------> TIM8_CH2
579 PI5 ------> TIM8_CH1
580 PI2 ------> TIM8_CH4
581 */
582 GPIO_InitStruct.Pin = GPIO_PIN_7|GPIO_PIN_6|GPIO_PIN_5|GPIO_PIN_2;
583 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
584 GPIO_InitStruct.Pull = GPIO_NOPULL;
585 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
586 GPIO_InitStruct.Alternate = GPIO_AF3_TIM8;
587 HAL_GPIO_Init(GPIOI, &GPIO_InitStruct);
588
589 /* USER CODE BEGIN TIM8_MspPostInit 1 */
590
591 /* USER CODE END TIM8_MspPostInit 1 */
592 }
593 else if(htim->Instance==TIM12)
594 {
595 /* USER CODE BEGIN TIM12_MspPostInit 0 */
596
597 /* USER CODE END TIM12_MspPostInit 0 */
598
599 __HAL_RCC_GPIOH_CLK_ENABLE();
600 /**TIM12 GPIO Configuration
601 PH6 ------> TIM12_CH1
602 */
603 GPIO_InitStruct.Pin = GPIO_PIN_6;
604 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
605 GPIO_InitStruct.Pull = GPIO_NOPULL;
606 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
607 GPIO_InitStruct.Alternate = GPIO_AF9_TIM12;
608 HAL_GPIO_Init(GPIOH, &GPIO_InitStruct);
609
610 /* USER CODE BEGIN TIM12_MspPostInit 1 */
611
612 /* USER CODE END TIM12_MspPostInit 1 */
613 }
614
615 }
616 /**
617 * @brief TIM_Base MSP De-Initialization
618 * This function freeze the hardware resources used in this example
619 * @param htim_base: TIM_Base handle pointer
620 * @retval None
621 */
HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef * htim_base)622 void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base)
623 {
624 if(htim_base->Instance==TIM2)
625 {
626 /* USER CODE BEGIN TIM2_MspDeInit 0 */
627
628 /* USER CODE END TIM2_MspDeInit 0 */
629 /* Peripheral clock disable */
630 __HAL_RCC_TIM2_CLK_DISABLE();
631 /* USER CODE BEGIN TIM2_MspDeInit 1 */
632
633 /* USER CODE END TIM2_MspDeInit 1 */
634 }
635 else if(htim_base->Instance==TIM4)
636 {
637 /* USER CODE BEGIN TIM4_MspDeInit 0 */
638
639 /* USER CODE END TIM4_MspDeInit 0 */
640 /* Peripheral clock disable */
641 __HAL_RCC_TIM4_CLK_DISABLE();
642 /* USER CODE BEGIN TIM4_MspDeInit 1 */
643
644 /* USER CODE END TIM4_MspDeInit 1 */
645 }
646 else if(htim_base->Instance==TIM5)
647 {
648 /* USER CODE BEGIN TIM5_MspDeInit 0 */
649
650 /* USER CODE END TIM5_MspDeInit 0 */
651 /* Peripheral clock disable */
652 __HAL_RCC_TIM5_CLK_DISABLE();
653 /* USER CODE BEGIN TIM5_MspDeInit 1 */
654
655 /* USER CODE END TIM5_MspDeInit 1 */
656 }
657 else if(htim_base->Instance==TIM8)
658 {
659 /* USER CODE BEGIN TIM8_MspDeInit 0 */
660
661 /* USER CODE END TIM8_MspDeInit 0 */
662 /* Peripheral clock disable */
663 __HAL_RCC_TIM8_CLK_DISABLE();
664 /* USER CODE BEGIN TIM8_MspDeInit 1 */
665
666 /* USER CODE END TIM8_MspDeInit 1 */
667 }
668 else if(htim_base->Instance==TIM12)
669 {
670 /* USER CODE BEGIN TIM12_MspDeInit 0 */
671
672 /* USER CODE END TIM12_MspDeInit 0 */
673 /* Peripheral clock disable */
674 __HAL_RCC_TIM12_CLK_DISABLE();
675 /* USER CODE BEGIN TIM12_MspDeInit 1 */
676
677 /* USER CODE END TIM12_MspDeInit 1 */
678 }
679
680 }
681
682 /**
683 * @brief UART MSP Initialization
684 * This function configures the hardware resources used in this example
685 * @param huart: UART handle pointer
686 * @retval None
687 */
HAL_UART_MspInit(UART_HandleTypeDef * huart)688 void HAL_UART_MspInit(UART_HandleTypeDef* huart)
689 {
690 GPIO_InitTypeDef GPIO_InitStruct = {0};
691 if(huart->Instance==UART7)
692 {
693 /* USER CODE BEGIN UART7_MspInit 0 */
694
695 /* USER CODE END UART7_MspInit 0 */
696 /* Peripheral clock enable */
697 __HAL_RCC_UART7_CLK_ENABLE();
698
699 __HAL_RCC_GPIOE_CLK_ENABLE();
700 /**UART7 GPIO Configuration
701 PE8 ------> UART7_TX
702 PE7 ------> UART7_RX
703 */
704 GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_7;
705 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
706 GPIO_InitStruct.Pull = GPIO_PULLUP;
707 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
708 GPIO_InitStruct.Alternate = GPIO_AF8_UART7;
709 HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
710
711 /* USER CODE BEGIN UART7_MspInit 1 */
712
713 /* USER CODE END UART7_MspInit 1 */
714 }
715 else if(huart->Instance==UART8)
716 {
717 /* USER CODE BEGIN UART8_MspInit 0 */
718
719 /* USER CODE END UART8_MspInit 0 */
720 /* Peripheral clock enable */
721 __HAL_RCC_UART8_CLK_ENABLE();
722
723 __HAL_RCC_GPIOE_CLK_ENABLE();
724 /**UART8 GPIO Configuration
725 PE1 ------> UART8_TX
726 PE0 ------> UART8_RX
727 */
728 GPIO_InitStruct.Pin = GPIO_PIN_1|GPIO_PIN_0;
729 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
730 GPIO_InitStruct.Pull = GPIO_PULLUP;
731 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
732 GPIO_InitStruct.Alternate = GPIO_AF8_UART8;
733 HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
734
735 /* USER CODE BEGIN UART8_MspInit 1 */
736
737 /* USER CODE END UART8_MspInit 1 */
738 }
739 else if(huart->Instance==USART1)
740 {
741 /* USER CODE BEGIN USART1_MspInit 0 */
742
743 /* USER CODE END USART1_MspInit 0 */
744 /* Peripheral clock enable */
745 __HAL_RCC_USART1_CLK_ENABLE();
746
747 __HAL_RCC_GPIOB_CLK_ENABLE();
748 /**USART1 GPIO Configuration
749 PB7 ------> USART1_RX
750 PB6 ------> USART1_TX
751 */
752 GPIO_InitStruct.Pin = GPIO_PIN_7|GPIO_PIN_6;
753 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
754 GPIO_InitStruct.Pull = GPIO_PULLUP;
755 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
756 GPIO_InitStruct.Alternate = GPIO_AF7_USART1;
757 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
758
759 /* USER CODE BEGIN USART1_MspInit 1 */
760
761 /* USER CODE END USART1_MspInit 1 */
762 }
763 else if(huart->Instance==USART3)
764 {
765 /* USER CODE BEGIN USART3_MspInit 0 */
766
767 /* USER CODE END USART3_MspInit 0 */
768 /* Peripheral clock enable */
769 __HAL_RCC_USART3_CLK_ENABLE();
770
771 __HAL_RCC_GPIOD_CLK_ENABLE();
772 /**USART3 GPIO Configuration
773 PD9 ------> USART3_RX
774 PD8 ------> USART3_TX
775 */
776 GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_8;
777 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
778 GPIO_InitStruct.Pull = GPIO_PULLUP;
779 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
780 GPIO_InitStruct.Alternate = GPIO_AF7_USART3;
781 HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
782
783 /* USER CODE BEGIN USART3_MspInit 1 */
784
785 /* USER CODE END USART3_MspInit 1 */
786 }
787 else if(huart->Instance==USART6)
788 {
789 /* USER CODE BEGIN USART6_MspInit 0 */
790
791 /* USER CODE END USART6_MspInit 0 */
792 /* Peripheral clock enable */
793 __HAL_RCC_USART6_CLK_ENABLE();
794
795 __HAL_RCC_GPIOG_CLK_ENABLE();
796 /**USART6 GPIO Configuration
797 PG14 ------> USART6_TX
798 PG9 ------> USART6_RX
799 */
800 GPIO_InitStruct.Pin = GPIO_PIN_14|GPIO_PIN_9;
801 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
802 GPIO_InitStruct.Pull = GPIO_PULLUP;
803 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
804 GPIO_InitStruct.Alternate = GPIO_AF8_USART6;
805 HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
806
807 /* USART6 interrupt Init */
808 HAL_NVIC_SetPriority(USART6_IRQn, 0, 0);
809 HAL_NVIC_EnableIRQ(USART6_IRQn);
810 /* USER CODE BEGIN USART6_MspInit 1 */
811
812 /* USER CODE END USART6_MspInit 1 */
813 }
814
815 }
816
817 /**
818 * @brief UART MSP De-Initialization
819 * This function freeze the hardware resources used in this example
820 * @param huart: UART handle pointer
821 * @retval None
822 */
HAL_UART_MspDeInit(UART_HandleTypeDef * huart)823 void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
824 {
825 if(huart->Instance==UART7)
826 {
827 /* USER CODE BEGIN UART7_MspDeInit 0 */
828
829 /* USER CODE END UART7_MspDeInit 0 */
830 /* Peripheral clock disable */
831 __HAL_RCC_UART7_CLK_DISABLE();
832
833 /**UART7 GPIO Configuration
834 PE8 ------> UART7_TX
835 PE7 ------> UART7_RX
836 */
837 HAL_GPIO_DeInit(GPIOE, GPIO_PIN_8|GPIO_PIN_7);
838
839 /* USER CODE BEGIN UART7_MspDeInit 1 */
840
841 /* USER CODE END UART7_MspDeInit 1 */
842 }
843 else if(huart->Instance==UART8)
844 {
845 /* USER CODE BEGIN UART8_MspDeInit 0 */
846
847 /* USER CODE END UART8_MspDeInit 0 */
848 /* Peripheral clock disable */
849 __HAL_RCC_UART8_CLK_DISABLE();
850
851 /**UART8 GPIO Configuration
852 PE1 ------> UART8_TX
853 PE0 ------> UART8_RX
854 */
855 HAL_GPIO_DeInit(GPIOE, GPIO_PIN_1|GPIO_PIN_0);
856
857 /* USER CODE BEGIN UART8_MspDeInit 1 */
858
859 /* USER CODE END UART8_MspDeInit 1 */
860 }
861 else if(huart->Instance==USART1)
862 {
863 /* USER CODE BEGIN USART1_MspDeInit 0 */
864
865 /* USER CODE END USART1_MspDeInit 0 */
866 /* Peripheral clock disable */
867 __HAL_RCC_USART1_CLK_DISABLE();
868
869 /**USART1 GPIO Configuration
870 PB7 ------> USART1_RX
871 PB6 ------> USART1_TX
872 */
873 HAL_GPIO_DeInit(GPIOB, GPIO_PIN_7|GPIO_PIN_6);
874
875 /* USER CODE BEGIN USART1_MspDeInit 1 */
876
877 /* USER CODE END USART1_MspDeInit 1 */
878 }
879 else if(huart->Instance==USART3)
880 {
881 /* USER CODE BEGIN USART3_MspDeInit 0 */
882
883 /* USER CODE END USART3_MspDeInit 0 */
884 /* Peripheral clock disable */
885 __HAL_RCC_USART3_CLK_DISABLE();
886
887 /**USART3 GPIO Configuration
888 PD9 ------> USART3_RX
889 PD8 ------> USART3_TX
890 */
891 HAL_GPIO_DeInit(GPIOD, GPIO_PIN_9|GPIO_PIN_8);
892
893 /* USER CODE BEGIN USART3_MspDeInit 1 */
894
895 /* USER CODE END USART3_MspDeInit 1 */
896 }
897 else if(huart->Instance==USART6)
898 {
899 /* USER CODE BEGIN USART6_MspDeInit 0 */
900
901 /* USER CODE END USART6_MspDeInit 0 */
902 /* Peripheral clock disable */
903 __HAL_RCC_USART6_CLK_DISABLE();
904
905 /**USART6 GPIO Configuration
906 PG14 ------> USART6_TX
907 PG9 ------> USART6_RX
908 */
909 HAL_GPIO_DeInit(GPIOG, GPIO_PIN_14|GPIO_PIN_9);
910
911 /* USART6 interrupt DeInit */
912 HAL_NVIC_DisableIRQ(USART6_IRQn);
913 /* USER CODE BEGIN USART6_MspDeInit 1 */
914
915 /* USER CODE END USART6_MspDeInit 1 */
916 }
917
918 }
919
920 /* USER CODE BEGIN 1 */
921
922 /* USER CODE END 1 */
923
924 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
925