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>&copy; 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