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