1 /* USER CODE BEGIN Header */
2 /**
3 ******************************************************************************
4 * File Name : stm32f1xx_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) 2019 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 /* USER CODE BEGIN MspInit 0 */
69
70 /* USER CODE END MspInit 0 */
71
72 __HAL_RCC_AFIO_CLK_ENABLE();
73 __HAL_RCC_PWR_CLK_ENABLE();
74
75 /* System interrupt init*/
76
77 /** NOJTAG: JTAG-DP Disabled and SW-DP Enabled
78 */
79 __HAL_AFIO_REMAP_SWJ_NOJTAG();
80
81 /* USER CODE BEGIN MspInit 1 */
82
83 /* USER CODE END MspInit 1 */
84 }
85
86 /**
87 * @brief ADC MSP Initialization
88 * This function configures the hardware resources used in this example
89 * @param hadc: ADC handle pointer
90 * @retval None
91 */
HAL_ADC_MspInit(ADC_HandleTypeDef * hadc)92 void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc)
93 {
94 GPIO_InitTypeDef GPIO_InitStruct = {0};
95 if(hadc->Instance==ADC1)
96 {
97 /* USER CODE BEGIN ADC1_MspInit 0 */
98
99 /* USER CODE END ADC1_MspInit 0 */
100 /* Peripheral clock enable */
101 __HAL_RCC_ADC1_CLK_ENABLE();
102
103 __HAL_RCC_GPIOA_CLK_ENABLE();
104 /**ADC1 GPIO Configuration
105 PA1 ------> ADC1_IN1
106 PA4 ------> ADC1_IN4
107 PA5 ------> ADC1_IN5
108 PA6 ------> ADC1_IN6
109 PA7 ------> ADC1_IN7
110 */
111 GPIO_InitStruct.Pin = GPIO_PIN_1|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6
112 |GPIO_PIN_7;
113 GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
114 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
115
116 /* USER CODE BEGIN ADC1_MspInit 1 */
117
118 /* USER CODE END ADC1_MspInit 1 */
119 }
120
121 }
122
123 /**
124 * @brief ADC MSP De-Initialization
125 * This function freeze the hardware resources used in this example
126 * @param hadc: ADC handle pointer
127 * @retval None
128 */
HAL_ADC_MspDeInit(ADC_HandleTypeDef * hadc)129 void HAL_ADC_MspDeInit(ADC_HandleTypeDef* hadc)
130 {
131 if(hadc->Instance==ADC1)
132 {
133 /* USER CODE BEGIN ADC1_MspDeInit 0 */
134
135 /* USER CODE END ADC1_MspDeInit 0 */
136 /* Peripheral clock disable */
137 __HAL_RCC_ADC1_CLK_DISABLE();
138
139 /**ADC1 GPIO Configuration
140 PA1 ------> ADC1_IN1
141 PA4 ------> ADC1_IN4
142 PA5 ------> ADC1_IN5
143 PA6 ------> ADC1_IN6
144 PA7 ------> ADC1_IN7
145 */
146 HAL_GPIO_DeInit(GPIOA, GPIO_PIN_1|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6
147 |GPIO_PIN_7);
148
149 /* USER CODE BEGIN ADC1_MspDeInit 1 */
150
151 /* USER CODE END ADC1_MspDeInit 1 */
152 }
153
154 }
155
156 /**
157 * @brief RTC MSP Initialization
158 * This function configures the hardware resources used in this example
159 * @param hrtc: RTC handle pointer
160 * @retval None
161 */
HAL_RTC_MspInit(RTC_HandleTypeDef * hrtc)162 void HAL_RTC_MspInit(RTC_HandleTypeDef* hrtc)
163 {
164 if(hrtc->Instance==RTC)
165 {
166 /* USER CODE BEGIN RTC_MspInit 0 */
167
168 /* USER CODE END RTC_MspInit 0 */
169 HAL_PWR_EnableBkUpAccess();
170 /* Enable BKP CLK enable for backup registers */
171 __HAL_RCC_BKP_CLK_ENABLE();
172 /* Peripheral clock enable */
173 __HAL_RCC_RTC_ENABLE();
174 /* USER CODE BEGIN RTC_MspInit 1 */
175
176 /* USER CODE END RTC_MspInit 1 */
177 }
178
179 }
180
181 /**
182 * @brief RTC MSP De-Initialization
183 * This function freeze the hardware resources used in this example
184 * @param hrtc: RTC handle pointer
185 * @retval None
186 */
HAL_RTC_MspDeInit(RTC_HandleTypeDef * hrtc)187 void HAL_RTC_MspDeInit(RTC_HandleTypeDef* hrtc)
188 {
189 if(hrtc->Instance==RTC)
190 {
191 /* USER CODE BEGIN RTC_MspDeInit 0 */
192
193 /* USER CODE END RTC_MspDeInit 0 */
194 /* Peripheral clock disable */
195 __HAL_RCC_RTC_DISABLE();
196 /* USER CODE BEGIN RTC_MspDeInit 1 */
197
198 /* USER CODE END RTC_MspDeInit 1 */
199 }
200
201 }
202
203 /**
204 * @brief SPI MSP Initialization
205 * This function configures the hardware resources used in this example
206 * @param hspi: SPI handle pointer
207 * @retval None
208 */
HAL_SPI_MspInit(SPI_HandleTypeDef * hspi)209 void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi)
210 {
211 GPIO_InitTypeDef GPIO_InitStruct = {0};
212 if(hspi->Instance==SPI2)
213 {
214 /* USER CODE BEGIN SPI2_MspInit 0 */
215
216 /* USER CODE END SPI2_MspInit 0 */
217 /* Peripheral clock enable */
218 __HAL_RCC_SPI2_CLK_ENABLE();
219
220 __HAL_RCC_GPIOB_CLK_ENABLE();
221 /**SPI2 GPIO Configuration
222 PB13 ------> SPI2_SCK
223 PB14 ------> SPI2_MISO
224 PB15 ------> SPI2_MOSI
225 */
226 GPIO_InitStruct.Pin = GPIO_PIN_13|GPIO_PIN_15;
227 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
228 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
229 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
230
231 GPIO_InitStruct.Pin = GPIO_PIN_14;
232 GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
233 GPIO_InitStruct.Pull = GPIO_NOPULL;
234 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
235
236 /* USER CODE BEGIN SPI2_MspInit 1 */
237
238 /* USER CODE END SPI2_MspInit 1 */
239 }
240
241 }
242
243 /**
244 * @brief SPI MSP De-Initialization
245 * This function freeze the hardware resources used in this example
246 * @param hspi: SPI handle pointer
247 * @retval None
248 */
HAL_SPI_MspDeInit(SPI_HandleTypeDef * hspi)249 void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi)
250 {
251 if(hspi->Instance==SPI2)
252 {
253 /* USER CODE BEGIN SPI2_MspDeInit 0 */
254
255 /* USER CODE END SPI2_MspDeInit 0 */
256 /* Peripheral clock disable */
257 __HAL_RCC_SPI2_CLK_DISABLE();
258
259 /**SPI2 GPIO Configuration
260 PB13 ------> SPI2_SCK
261 PB14 ------> SPI2_MISO
262 PB15 ------> SPI2_MOSI
263 */
264 HAL_GPIO_DeInit(GPIOB, GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15);
265
266 /* USER CODE BEGIN SPI2_MspDeInit 1 */
267
268 /* USER CODE END SPI2_MspDeInit 1 */
269 }
270
271 }
272
273 /**
274 * @brief TIM_Base MSP Initialization
275 * This function configures the hardware resources used in this example
276 * @param htim_base: TIM_Base handle pointer
277 * @retval None
278 */
HAL_TIM_Base_MspInit(TIM_HandleTypeDef * htim_base)279 void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
280 {
281 if(htim_base->Instance==TIM2)
282 {
283 /* USER CODE BEGIN TIM2_MspInit 0 */
284
285 /* USER CODE END TIM2_MspInit 0 */
286 /* Peripheral clock enable */
287 __HAL_RCC_TIM2_CLK_ENABLE();
288 /* USER CODE BEGIN TIM2_MspInit 1 */
289
290 /* USER CODE END TIM2_MspInit 1 */
291 }
292 else if(htim_base->Instance==TIM3)
293 {
294 /* USER CODE BEGIN TIM3_MspInit 0 */
295
296 /* USER CODE END TIM3_MspInit 0 */
297 /* Peripheral clock enable */
298 __HAL_RCC_TIM3_CLK_ENABLE();
299 /* USER CODE BEGIN TIM3_MspInit 1 */
300
301 /* USER CODE END TIM3_MspInit 1 */
302 }
303
304 }
305
HAL_TIM_MspPostInit(TIM_HandleTypeDef * htim)306 void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim)
307 {
308 GPIO_InitTypeDef GPIO_InitStruct = {0};
309 if(htim->Instance==TIM2)
310 {
311 /* USER CODE BEGIN TIM2_MspPostInit 0 */
312
313 /* USER CODE END TIM2_MspPostInit 0 */
314 __HAL_RCC_GPIOA_CLK_ENABLE();
315 __HAL_RCC_GPIOB_CLK_ENABLE();
316 /**TIM2 GPIO Configuration
317 PA15 ------> TIM2_CH1
318 PB3 ------> TIM2_CH2
319 */
320 GPIO_InitStruct.Pin = GPIO_PIN_15;
321 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
322 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
323 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
324
325 GPIO_InitStruct.Pin = GPIO_PIN_3;
326 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
327 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
328 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
329
330 __HAL_AFIO_REMAP_TIM2_PARTIAL_1();
331
332 /* USER CODE BEGIN TIM2_MspPostInit 1 */
333
334 /* USER CODE END TIM2_MspPostInit 1 */
335 }
336 else if(htim->Instance==TIM3)
337 {
338 /* USER CODE BEGIN TIM3_MspPostInit 0 */
339
340 /* USER CODE END TIM3_MspPostInit 0 */
341
342 __HAL_RCC_GPIOB_CLK_ENABLE();
343 /**TIM3 GPIO Configuration
344 PB0 ------> TIM3_CH3
345 PB1 ------> TIM3_CH4
346 PB4 ------> TIM3_CH1
347 PB5 ------> TIM3_CH2
348 */
349 GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_4|GPIO_PIN_5;
350 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
351 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
352 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
353
354 __HAL_AFIO_REMAP_TIM3_PARTIAL();
355
356 /* USER CODE BEGIN TIM3_MspPostInit 1 */
357
358 /* USER CODE END TIM3_MspPostInit 1 */
359 }
360
361 }
362 /**
363 * @brief TIM_Base MSP De-Initialization
364 * This function freeze the hardware resources used in this example
365 * @param htim_base: TIM_Base handle pointer
366 * @retval None
367 */
HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef * htim_base)368 void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base)
369 {
370 if(htim_base->Instance==TIM2)
371 {
372 /* USER CODE BEGIN TIM2_MspDeInit 0 */
373
374 /* USER CODE END TIM2_MspDeInit 0 */
375 /* Peripheral clock disable */
376 __HAL_RCC_TIM2_CLK_DISABLE();
377 /* USER CODE BEGIN TIM2_MspDeInit 1 */
378
379 /* USER CODE END TIM2_MspDeInit 1 */
380 }
381 else if(htim_base->Instance==TIM3)
382 {
383 /* USER CODE BEGIN TIM3_MspDeInit 0 */
384
385 /* USER CODE END TIM3_MspDeInit 0 */
386 /* Peripheral clock disable */
387 __HAL_RCC_TIM3_CLK_DISABLE();
388 /* USER CODE BEGIN TIM3_MspDeInit 1 */
389
390 /* USER CODE END TIM3_MspDeInit 1 */
391 }
392
393 }
394
395 /**
396 * @brief UART MSP Initialization
397 * This function configures the hardware resources used in this example
398 * @param huart: UART handle pointer
399 * @retval None
400 */
HAL_UART_MspInit(UART_HandleTypeDef * huart)401 void HAL_UART_MspInit(UART_HandleTypeDef* huart)
402 {
403 GPIO_InitTypeDef GPIO_InitStruct = {0};
404 if(huart->Instance==USART1)
405 {
406 /* USER CODE BEGIN USART1_MspInit 0 */
407
408 /* USER CODE END USART1_MspInit 0 */
409 /* Peripheral clock enable */
410 __HAL_RCC_USART1_CLK_ENABLE();
411
412 __HAL_RCC_GPIOA_CLK_ENABLE();
413 /**USART1 GPIO Configuration
414 PA9 ------> USART1_TX
415 PA10 ------> USART1_RX
416 */
417 GPIO_InitStruct.Pin = GPIO_PIN_9;
418 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
419 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
420 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
421
422 GPIO_InitStruct.Pin = GPIO_PIN_10;
423 GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
424 GPIO_InitStruct.Pull = GPIO_PULLUP;
425 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
426
427 /* USER CODE BEGIN USART1_MspInit 1 */
428
429 /* USER CODE END USART1_MspInit 1 */
430 }
431 else if(huart->Instance==USART2)
432 {
433 /* USER CODE BEGIN USART2_MspInit 0 */
434
435 /* USER CODE END USART2_MspInit 0 */
436 /* Peripheral clock enable */
437 __HAL_RCC_USART2_CLK_ENABLE();
438
439 __HAL_RCC_GPIOA_CLK_ENABLE();
440 /**USART2 GPIO Configuration
441 PA2 ------> USART2_TX
442 PA3 ------> USART2_RX
443 */
444 GPIO_InitStruct.Pin = GPIO_PIN_2;
445 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
446 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
447 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
448
449 GPIO_InitStruct.Pin = GPIO_PIN_3;
450 GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
451 GPIO_InitStruct.Pull = GPIO_PULLUP;
452 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
453
454 /* USER CODE BEGIN USART2_MspInit 1 */
455
456 /* USER CODE END USART2_MspInit 1 */
457 }
458 else if(huart->Instance==USART3)
459 {
460 /* USER CODE BEGIN USART3_MspInit 0 */
461
462 /* USER CODE END USART3_MspInit 0 */
463 /* Peripheral clock enable */
464 __HAL_RCC_USART3_CLK_ENABLE();
465
466 __HAL_RCC_GPIOB_CLK_ENABLE();
467 /**USART3 GPIO Configuration
468 PB10 ------> USART3_TX
469 PB11 ------> USART3_RX
470 */
471 GPIO_InitStruct.Pin = GPIO_PIN_10;
472 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
473 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
474 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
475
476 GPIO_InitStruct.Pin = GPIO_PIN_11;
477 GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
478 GPIO_InitStruct.Pull = GPIO_NOPULL;
479 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
480
481 /* USER CODE BEGIN USART3_MspInit 1 */
482
483 /* USER CODE END USART3_MspInit 1 */
484 }
485
486 }
487
488 /**
489 * @brief UART MSP De-Initialization
490 * This function freeze the hardware resources used in this example
491 * @param huart: UART handle pointer
492 * @retval None
493 */
HAL_UART_MspDeInit(UART_HandleTypeDef * huart)494 void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
495 {
496 if(huart->Instance==USART1)
497 {
498 /* USER CODE BEGIN USART1_MspDeInit 0 */
499
500 /* USER CODE END USART1_MspDeInit 0 */
501 /* Peripheral clock disable */
502 __HAL_RCC_USART1_CLK_DISABLE();
503
504 /**USART1 GPIO Configuration
505 PA9 ------> USART1_TX
506 PA10 ------> USART1_RX
507 */
508 HAL_GPIO_DeInit(GPIOA, GPIO_PIN_9|GPIO_PIN_10);
509
510 /* USER CODE BEGIN USART1_MspDeInit 1 */
511
512 /* USER CODE END USART1_MspDeInit 1 */
513 }
514 else if(huart->Instance==USART2)
515 {
516 /* USER CODE BEGIN USART2_MspDeInit 0 */
517
518 /* USER CODE END USART2_MspDeInit 0 */
519 /* Peripheral clock disable */
520 __HAL_RCC_USART2_CLK_DISABLE();
521
522 /**USART2 GPIO Configuration
523 PA2 ------> USART2_TX
524 PA3 ------> USART2_RX
525 */
526 HAL_GPIO_DeInit(GPIOA, GPIO_PIN_2|GPIO_PIN_3);
527
528 /* USER CODE BEGIN USART2_MspDeInit 1 */
529
530 /* USER CODE END USART2_MspDeInit 1 */
531 }
532 else if(huart->Instance==USART3)
533 {
534 /* USER CODE BEGIN USART3_MspDeInit 0 */
535
536 /* USER CODE END USART3_MspDeInit 0 */
537 /* Peripheral clock disable */
538 __HAL_RCC_USART3_CLK_DISABLE();
539
540 /**USART3 GPIO Configuration
541 PB10 ------> USART3_TX
542 PB11 ------> USART3_RX
543 */
544 HAL_GPIO_DeInit(GPIOB, GPIO_PIN_10|GPIO_PIN_11);
545
546 /* USER CODE BEGIN USART3_MspDeInit 1 */
547
548 /* USER CODE END USART3_MspDeInit 1 */
549 }
550
551 }
552
553 /**
554 * @brief PCD MSP Initialization
555 * This function configures the hardware resources used in this example
556 * @param hpcd: PCD handle pointer
557 * @retval None
558 */
HAL_PCD_MspInit(PCD_HandleTypeDef * hpcd)559 void HAL_PCD_MspInit(PCD_HandleTypeDef* hpcd)
560 {
561 if(hpcd->Instance==USB)
562 {
563 /* USER CODE BEGIN USB_MspInit 0 */
564
565 /* USER CODE END USB_MspInit 0 */
566 /* Peripheral clock enable */
567 __HAL_RCC_USB_CLK_ENABLE();
568 /* USER CODE BEGIN USB_MspInit 1 */
569
570 /* USER CODE END USB_MspInit 1 */
571 }
572
573 }
574
575 /**
576 * @brief PCD MSP De-Initialization
577 * This function freeze the hardware resources used in this example
578 * @param hpcd: PCD handle pointer
579 * @retval None
580 */
HAL_PCD_MspDeInit(PCD_HandleTypeDef * hpcd)581 void HAL_PCD_MspDeInit(PCD_HandleTypeDef* hpcd)
582 {
583 if(hpcd->Instance==USB)
584 {
585 /* USER CODE BEGIN USB_MspDeInit 0 */
586
587 /* USER CODE END USB_MspDeInit 0 */
588 /* Peripheral clock disable */
589 __HAL_RCC_USB_CLK_DISABLE();
590 /* USER CODE BEGIN USB_MspDeInit 1 */
591
592 /* USER CODE END USB_MspDeInit 1 */
593 }
594
595 }
596
597 /* USER CODE BEGIN 1 */
598
599 /* USER CODE END 1 */
600