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 HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_0);
96
97 /* System interrupt init*/
98
99 /* USER CODE BEGIN MspInit 1 */
100
101 /* USER CODE END MspInit 1 */
102 }
103
104 /**
105 * @brief ADC MSP Initialization
106 * This function configures the hardware resources used in this example
107 * @param hadc: ADC handle pointer
108 * @retval None
109 */
HAL_ADC_MspInit(ADC_HandleTypeDef * hadc)110 void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc)
111 {
112 GPIO_InitTypeDef GPIO_InitStruct = {0};
113 if(hadc->Instance==ADC1)
114 {
115 /* USER CODE BEGIN ADC1_MspInit 0 */
116
117 /* USER CODE END ADC1_MspInit 0 */
118 /* Peripheral clock enable */
119 __HAL_RCC_ADC1_CLK_ENABLE();
120
121 __HAL_RCC_GPIOC_CLK_ENABLE();
122 __HAL_RCC_GPIOA_CLK_ENABLE();
123 __HAL_RCC_GPIOB_CLK_ENABLE();
124 /**ADC1 GPIO Configuration
125 PC0 ------> ADC1_IN10
126 PC1 ------> ADC1_IN11
127 PA0-WKUP ------> ADC1_IN0
128 PA1 ------> ADC1_IN1
129 PA4 ------> ADC1_IN4
130 PB0 ------> ADC1_IN8
131 */
132 GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1;
133 GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
134 GPIO_InitStruct.Pull = GPIO_NOPULL;
135 HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
136
137 GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_4;
138 GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
139 GPIO_InitStruct.Pull = GPIO_NOPULL;
140 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
141
142 GPIO_InitStruct.Pin = GPIO_PIN_0;
143 GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
144 GPIO_InitStruct.Pull = GPIO_NOPULL;
145 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
146
147 /* USER CODE BEGIN ADC1_MspInit 1 */
148
149 /* USER CODE END ADC1_MspInit 1 */
150 }
151
152 }
153
154 /**
155 * @brief ADC MSP De-Initialization
156 * This function freeze the hardware resources used in this example
157 * @param hadc: ADC handle pointer
158 * @retval None
159 */
HAL_ADC_MspDeInit(ADC_HandleTypeDef * hadc)160 void HAL_ADC_MspDeInit(ADC_HandleTypeDef* hadc)
161 {
162 if(hadc->Instance==ADC1)
163 {
164 /* USER CODE BEGIN ADC1_MspDeInit 0 */
165
166 /* USER CODE END ADC1_MspDeInit 0 */
167 /* Peripheral clock disable */
168 __HAL_RCC_ADC1_CLK_DISABLE();
169
170 /**ADC1 GPIO Configuration
171 PC0 ------> ADC1_IN10
172 PC1 ------> ADC1_IN11
173 PA0-WKUP ------> ADC1_IN0
174 PA1 ------> ADC1_IN1
175 PA4 ------> ADC1_IN4
176 PB0 ------> ADC1_IN8
177 */
178 HAL_GPIO_DeInit(GPIOC, GPIO_PIN_0|GPIO_PIN_1);
179
180 HAL_GPIO_DeInit(GPIOA, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_4);
181
182 HAL_GPIO_DeInit(GPIOB, GPIO_PIN_0);
183
184 /* USER CODE BEGIN ADC1_MspDeInit 1 */
185
186 /* USER CODE END ADC1_MspDeInit 1 */
187 }
188
189 }
190
191 /**
192 * @brief RTC MSP Initialization
193 * This function configures the hardware resources used in this example
194 * @param hrtc: RTC handle pointer
195 * @retval None
196 */
HAL_RTC_MspInit(RTC_HandleTypeDef * hrtc)197 void HAL_RTC_MspInit(RTC_HandleTypeDef* hrtc)
198 {
199 RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
200 if(hrtc->Instance==RTC)
201 {
202 /* USER CODE BEGIN RTC_MspInit 0 */
203
204 /* USER CODE END RTC_MspInit 0 */
205
206 /** Initializes the peripherals clock
207 */
208 PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_RTC;
209 PeriphClkInitStruct.RTCClockSelection = RCC_RTCCLKSOURCE_LSI;
210 if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
211 {
212 Error_Handler();
213 }
214
215 /* Peripheral clock enable */
216 __HAL_RCC_RTC_ENABLE();
217 /* USER CODE BEGIN RTC_MspInit 1 */
218
219 /* USER CODE END RTC_MspInit 1 */
220 }
221
222 }
223
224 /**
225 * @brief RTC MSP De-Initialization
226 * This function freeze the hardware resources used in this example
227 * @param hrtc: RTC handle pointer
228 * @retval None
229 */
HAL_RTC_MspDeInit(RTC_HandleTypeDef * hrtc)230 void HAL_RTC_MspDeInit(RTC_HandleTypeDef* hrtc)
231 {
232 if(hrtc->Instance==RTC)
233 {
234 /* USER CODE BEGIN RTC_MspDeInit 0 */
235
236 /* USER CODE END RTC_MspDeInit 0 */
237 /* Peripheral clock disable */
238 __HAL_RCC_RTC_DISABLE();
239 /* USER CODE BEGIN RTC_MspDeInit 1 */
240
241 /* USER CODE END RTC_MspDeInit 1 */
242 }
243
244 }
245
246 /**
247 * @brief SPI MSP Initialization
248 * This function configures the hardware resources used in this example
249 * @param hspi: SPI handle pointer
250 * @retval None
251 */
HAL_SPI_MspInit(SPI_HandleTypeDef * hspi)252 void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi)
253 {
254 GPIO_InitTypeDef GPIO_InitStruct = {0};
255 if(hspi->Instance==SPI3)
256 {
257 /* USER CODE BEGIN SPI3_MspInit 0 */
258
259 /* USER CODE END SPI3_MspInit 0 */
260 /* Peripheral clock enable */
261 __HAL_RCC_SPI3_CLK_ENABLE();
262
263 __HAL_RCC_GPIOB_CLK_ENABLE();
264 __HAL_RCC_GPIOC_CLK_ENABLE();
265 /**SPI3 GPIO Configuration
266 PB12 ------> SPI3_SCK
267 PC11 ------> SPI3_MISO
268 PC12 ------> SPI3_MOSI
269 */
270 GPIO_InitStruct.Pin = GPIO_PIN_12;
271 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
272 GPIO_InitStruct.Pull = GPIO_NOPULL;
273 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
274 GPIO_InitStruct.Alternate = GPIO_AF7_SPI3;
275 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
276
277 GPIO_InitStruct.Pin = GPIO_PIN_11|GPIO_PIN_12;
278 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
279 GPIO_InitStruct.Pull = GPIO_NOPULL;
280 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
281 GPIO_InitStruct.Alternate = GPIO_AF6_SPI3;
282 HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
283
284 /* USER CODE BEGIN SPI3_MspInit 1 */
285
286 /* USER CODE END SPI3_MspInit 1 */
287 }
288
289 }
290
291 /**
292 * @brief SPI MSP De-Initialization
293 * This function freeze the hardware resources used in this example
294 * @param hspi: SPI handle pointer
295 * @retval None
296 */
HAL_SPI_MspDeInit(SPI_HandleTypeDef * hspi)297 void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi)
298 {
299 if(hspi->Instance==SPI3)
300 {
301 /* USER CODE BEGIN SPI3_MspDeInit 0 */
302
303 /* USER CODE END SPI3_MspDeInit 0 */
304 /* Peripheral clock disable */
305 __HAL_RCC_SPI3_CLK_DISABLE();
306
307 /**SPI3 GPIO Configuration
308 PB12 ------> SPI3_SCK
309 PC11 ------> SPI3_MISO
310 PC12 ------> SPI3_MOSI
311 */
312 HAL_GPIO_DeInit(GPIOB, GPIO_PIN_12);
313
314 HAL_GPIO_DeInit(GPIOC, GPIO_PIN_11|GPIO_PIN_12);
315
316 /* USER CODE BEGIN SPI3_MspDeInit 1 */
317
318 /* USER CODE END SPI3_MspDeInit 1 */
319 }
320
321 }
322
323 /**
324 * @brief TIM_Base MSP Initialization
325 * This function configures the hardware resources used in this example
326 * @param htim_base: TIM_Base handle pointer
327 * @retval None
328 */
HAL_TIM_Base_MspInit(TIM_HandleTypeDef * htim_base)329 void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
330 {
331 if(htim_base->Instance==TIM1)
332 {
333 /* USER CODE BEGIN TIM1_MspInit 0 */
334
335 /* USER CODE END TIM1_MspInit 0 */
336 /* Peripheral clock enable */
337 __HAL_RCC_TIM1_CLK_ENABLE();
338 /* USER CODE BEGIN TIM1_MspInit 1 */
339
340 /* USER CODE END TIM1_MspInit 1 */
341 }
342 else if(htim_base->Instance==TIM2)
343 {
344 /* USER CODE BEGIN TIM2_MspInit 0 */
345
346 /* USER CODE END TIM2_MspInit 0 */
347 /* Peripheral clock enable */
348 __HAL_RCC_TIM2_CLK_ENABLE();
349 /* USER CODE BEGIN TIM2_MspInit 1 */
350
351 /* USER CODE END TIM2_MspInit 1 */
352 }
353 else if(htim_base->Instance==TIM3)
354 {
355 /* USER CODE BEGIN TIM3_MspInit 0 */
356
357 /* USER CODE END TIM3_MspInit 0 */
358 /* Peripheral clock enable */
359 __HAL_RCC_TIM3_CLK_ENABLE();
360 /* USER CODE BEGIN TIM3_MspInit 1 */
361
362 /* USER CODE END TIM3_MspInit 1 */
363 }
364 else if(htim_base->Instance==TIM4)
365 {
366 /* USER CODE BEGIN TIM4_MspInit 0 */
367
368 /* USER CODE END TIM4_MspInit 0 */
369 /* Peripheral clock enable */
370 __HAL_RCC_TIM4_CLK_ENABLE();
371 /* USER CODE BEGIN TIM4_MspInit 1 */
372
373 /* USER CODE END TIM4_MspInit 1 */
374 }
375 else if(htim_base->Instance==TIM9)
376 {
377 /* USER CODE BEGIN TIM9_MspInit 0 */
378
379 /* USER CODE END TIM9_MspInit 0 */
380 /* Peripheral clock enable */
381 __HAL_RCC_TIM9_CLK_ENABLE();
382 /* USER CODE BEGIN TIM9_MspInit 1 */
383
384 /* USER CODE END TIM9_MspInit 1 */
385 }
386
387 }
388
HAL_TIM_MspPostInit(TIM_HandleTypeDef * htim)389 void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim)
390 {
391 GPIO_InitTypeDef GPIO_InitStruct = {0};
392 if(htim->Instance==TIM1)
393 {
394 /* USER CODE BEGIN TIM1_MspPostInit 0 */
395
396 /* USER CODE END TIM1_MspPostInit 0 */
397 __HAL_RCC_GPIOA_CLK_ENABLE();
398 /**TIM1 GPIO Configuration
399 PA7 ------> TIM1_CH1N
400 */
401 GPIO_InitStruct.Pin = GPIO_PIN_7;
402 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
403 GPIO_InitStruct.Pull = GPIO_NOPULL;
404 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
405 GPIO_InitStruct.Alternate = GPIO_AF1_TIM1;
406 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
407
408 /* USER CODE BEGIN TIM1_MspPostInit 1 */
409
410 /* USER CODE END TIM1_MspPostInit 1 */
411 }
412 else if(htim->Instance==TIM2)
413 {
414 /* USER CODE BEGIN TIM2_MspPostInit 0 */
415
416 /* USER CODE END TIM2_MspPostInit 0 */
417
418 __HAL_RCC_GPIOB_CLK_ENABLE();
419 /**TIM2 GPIO Configuration
420 PB10 ------> TIM2_CH3
421 PB3 ------> TIM2_CH2
422 */
423 GPIO_InitStruct.Pin = GPIO_PIN_10|GPIO_PIN_3;
424 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
425 GPIO_InitStruct.Pull = GPIO_NOPULL;
426 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
427 GPIO_InitStruct.Alternate = GPIO_AF1_TIM2;
428 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
429
430 /* USER CODE BEGIN TIM2_MspPostInit 1 */
431
432 /* USER CODE END TIM2_MspPostInit 1 */
433 }
434 else if(htim->Instance==TIM3)
435 {
436 /* USER CODE BEGIN TIM3_MspPostInit 0 */
437
438 /* USER CODE END TIM3_MspPostInit 0 */
439
440 __HAL_RCC_GPIOB_CLK_ENABLE();
441 __HAL_RCC_GPIOC_CLK_ENABLE();
442 /**TIM3 GPIO Configuration
443 PB1 ------> TIM3_CH4
444 PC7 ------> TIM3_CH2
445 PB4 ------> TIM3_CH1
446 */
447 GPIO_InitStruct.Pin = GPIO_PIN_1|GPIO_PIN_4;
448 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
449 GPIO_InitStruct.Pull = GPIO_NOPULL;
450 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
451 GPIO_InitStruct.Alternate = GPIO_AF2_TIM3;
452 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
453
454 GPIO_InitStruct.Pin = GPIO_PIN_7;
455 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
456 GPIO_InitStruct.Pull = GPIO_NOPULL;
457 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
458 GPIO_InitStruct.Alternate = GPIO_AF2_TIM3;
459 HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
460
461 /* USER CODE BEGIN TIM3_MspPostInit 1 */
462
463 /* USER CODE END TIM3_MspPostInit 1 */
464 }
465 else if(htim->Instance==TIM4)
466 {
467 /* USER CODE BEGIN TIM4_MspPostInit 0 */
468
469 /* USER CODE END TIM4_MspPostInit 0 */
470
471 __HAL_RCC_GPIOB_CLK_ENABLE();
472 /**TIM4 GPIO Configuration
473 PB6 ------> TIM4_CH1
474 */
475 GPIO_InitStruct.Pin = GPIO_PIN_6;
476 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
477 GPIO_InitStruct.Pull = GPIO_NOPULL;
478 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
479 GPIO_InitStruct.Alternate = GPIO_AF2_TIM4;
480 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
481
482 /* USER CODE BEGIN TIM4_MspPostInit 1 */
483
484 /* USER CODE END TIM4_MspPostInit 1 */
485 }
486
487 }
488 /**
489 * @brief TIM_Base MSP De-Initialization
490 * This function freeze the hardware resources used in this example
491 * @param htim_base: TIM_Base handle pointer
492 * @retval None
493 */
HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef * htim_base)494 void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base)
495 {
496 if(htim_base->Instance==TIM1)
497 {
498 /* USER CODE BEGIN TIM1_MspDeInit 0 */
499
500 /* USER CODE END TIM1_MspDeInit 0 */
501 /* Peripheral clock disable */
502 __HAL_RCC_TIM1_CLK_DISABLE();
503 /* USER CODE BEGIN TIM1_MspDeInit 1 */
504
505 /* USER CODE END TIM1_MspDeInit 1 */
506 }
507 else if(htim_base->Instance==TIM2)
508 {
509 /* USER CODE BEGIN TIM2_MspDeInit 0 */
510
511 /* USER CODE END TIM2_MspDeInit 0 */
512 /* Peripheral clock disable */
513 __HAL_RCC_TIM2_CLK_DISABLE();
514 /* USER CODE BEGIN TIM2_MspDeInit 1 */
515
516 /* USER CODE END TIM2_MspDeInit 1 */
517 }
518 else if(htim_base->Instance==TIM3)
519 {
520 /* USER CODE BEGIN TIM3_MspDeInit 0 */
521
522 /* USER CODE END TIM3_MspDeInit 0 */
523 /* Peripheral clock disable */
524 __HAL_RCC_TIM3_CLK_DISABLE();
525 /* USER CODE BEGIN TIM3_MspDeInit 1 */
526
527 /* USER CODE END TIM3_MspDeInit 1 */
528 }
529 else if(htim_base->Instance==TIM4)
530 {
531 /* USER CODE BEGIN TIM4_MspDeInit 0 */
532
533 /* USER CODE END TIM4_MspDeInit 0 */
534 /* Peripheral clock disable */
535 __HAL_RCC_TIM4_CLK_DISABLE();
536 /* USER CODE BEGIN TIM4_MspDeInit 1 */
537
538 /* USER CODE END TIM4_MspDeInit 1 */
539 }
540 else if(htim_base->Instance==TIM9)
541 {
542 /* USER CODE BEGIN TIM9_MspDeInit 0 */
543
544 /* USER CODE END TIM9_MspDeInit 0 */
545 /* Peripheral clock disable */
546 __HAL_RCC_TIM9_CLK_DISABLE();
547 /* USER CODE BEGIN TIM9_MspDeInit 1 */
548
549 /* USER CODE END TIM9_MspDeInit 1 */
550 }
551
552 }
553
554 /**
555 * @brief UART MSP Initialization
556 * This function configures the hardware resources used in this example
557 * @param huart: UART handle pointer
558 * @retval None
559 */
HAL_UART_MspInit(UART_HandleTypeDef * huart)560 void HAL_UART_MspInit(UART_HandleTypeDef* huart)
561 {
562 GPIO_InitTypeDef GPIO_InitStruct = {0};
563 if(huart->Instance==USART2)
564 {
565 /* USER CODE BEGIN USART2_MspInit 0 */
566
567 /* USER CODE END USART2_MspInit 0 */
568 /* Peripheral clock enable */
569 __HAL_RCC_USART2_CLK_ENABLE();
570
571 __HAL_RCC_GPIOA_CLK_ENABLE();
572 /**USART2 GPIO Configuration
573 PA2 ------> USART2_TX
574 PA3 ------> USART2_RX
575 */
576 GPIO_InitStruct.Pin = GPIO_PIN_2|GPIO_PIN_3;
577 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
578 GPIO_InitStruct.Pull = GPIO_NOPULL;
579 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
580 GPIO_InitStruct.Alternate = GPIO_AF7_USART2;
581 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
582
583 /* USER CODE BEGIN USART2_MspInit 1 */
584
585 /* USER CODE END USART2_MspInit 1 */
586 }
587 else if(huart->Instance==USART6)
588 {
589 /* USER CODE BEGIN USART6_MspInit 0 */
590
591 /* USER CODE END USART6_MspInit 0 */
592 /* Peripheral clock enable */
593 __HAL_RCC_USART6_CLK_ENABLE();
594
595 __HAL_RCC_GPIOA_CLK_ENABLE();
596 /**USART6 GPIO Configuration
597 PA11 ------> USART6_TX
598 PA12 ------> USART6_RX
599 */
600 GPIO_InitStruct.Pin = GPIO_PIN_11|GPIO_PIN_12;
601 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
602 GPIO_InitStruct.Pull = GPIO_NOPULL;
603 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
604 GPIO_InitStruct.Alternate = GPIO_AF8_USART6;
605 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
606
607 /* USER CODE BEGIN USART6_MspInit 1 */
608
609 /* USER CODE END USART6_MspInit 1 */
610 }
611
612 }
613
614 /**
615 * @brief UART MSP De-Initialization
616 * This function freeze the hardware resources used in this example
617 * @param huart: UART handle pointer
618 * @retval None
619 */
HAL_UART_MspDeInit(UART_HandleTypeDef * huart)620 void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
621 {
622 if(huart->Instance==USART2)
623 {
624 /* USER CODE BEGIN USART2_MspDeInit 0 */
625
626 /* USER CODE END USART2_MspDeInit 0 */
627 /* Peripheral clock disable */
628 __HAL_RCC_USART2_CLK_DISABLE();
629
630 /**USART2 GPIO Configuration
631 PA2 ------> USART2_TX
632 PA3 ------> USART2_RX
633 */
634 HAL_GPIO_DeInit(GPIOA, GPIO_PIN_2|GPIO_PIN_3);
635
636 /* USER CODE BEGIN USART2_MspDeInit 1 */
637
638 /* USER CODE END USART2_MspDeInit 1 */
639 }
640 else if(huart->Instance==USART6)
641 {
642 /* USER CODE BEGIN USART6_MspDeInit 0 */
643
644 /* USER CODE END USART6_MspDeInit 0 */
645 /* Peripheral clock disable */
646 __HAL_RCC_USART6_CLK_DISABLE();
647
648 /**USART6 GPIO Configuration
649 PA11 ------> USART6_TX
650 PA12 ------> USART6_RX
651 */
652 HAL_GPIO_DeInit(GPIOA, GPIO_PIN_11|GPIO_PIN_12);
653
654 /* USER CODE BEGIN USART6_MspDeInit 1 */
655
656 /* USER CODE END USART6_MspDeInit 1 */
657 }
658
659 }
660
661 /* USER CODE BEGIN 1 */
662
663 /* USER CODE END 1 */
664