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   ** 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) 2019 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 
111   GPIO_InitTypeDef GPIO_InitStruct = {0};
112   if(hadc->Instance==ADC1)
113   {
114   /* USER CODE BEGIN ADC1_MspInit 0 */
115 
116   /* USER CODE END ADC1_MspInit 0 */
117     /* Peripheral clock enable */
118     __HAL_RCC_ADC_CLK_ENABLE();
119 
120     __HAL_RCC_GPIOA_CLK_ENABLE();
121     /**ADC1 GPIO Configuration
122     PA0     ------> ADC1_IN0
123     PA1     ------> ADC1_IN1
124     */
125     GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1;
126     GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
127     GPIO_InitStruct.Pull = GPIO_NOPULL;
128     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
129 
130   /* USER CODE BEGIN ADC1_MspInit 1 */
131 
132   /* USER CODE END ADC1_MspInit 1 */
133   }
134 
135 }
136 
137 /**
138 * @brief ADC MSP De-Initialization
139 * This function freeze the hardware resources used in this example
140 * @param hadc: ADC handle pointer
141 * @retval None
142 */
143 
HAL_ADC_MspDeInit(ADC_HandleTypeDef * hadc)144 void HAL_ADC_MspDeInit(ADC_HandleTypeDef* hadc)
145 {
146 
147   if(hadc->Instance==ADC1)
148   {
149   /* USER CODE BEGIN ADC1_MspDeInit 0 */
150 
151   /* USER CODE END ADC1_MspDeInit 0 */
152     /* Peripheral clock disable */
153     __HAL_RCC_ADC_CLK_DISABLE();
154 
155     /**ADC1 GPIO Configuration
156     PA0     ------> ADC1_IN0
157     PA1     ------> ADC1_IN1
158     */
159     HAL_GPIO_DeInit(GPIOA, GPIO_PIN_0|GPIO_PIN_1);
160 
161   /* USER CODE BEGIN ADC1_MspDeInit 1 */
162 
163   /* USER CODE END ADC1_MspDeInit 1 */
164   }
165 
166 }
167 
168 /**
169 * @brief DAC MSP Initialization
170 * This function configures the hardware resources used in this example
171 * @param hdac: DAC handle pointer
172 * @retval None
173 */
HAL_DAC_MspInit(DAC_HandleTypeDef * hdac)174 void HAL_DAC_MspInit(DAC_HandleTypeDef* hdac)
175 {
176 
177   GPIO_InitTypeDef GPIO_InitStruct = {0};
178   if(hdac->Instance==DAC1)
179   {
180   /* USER CODE BEGIN DAC1_MspInit 0 */
181 
182   /* USER CODE END DAC1_MspInit 0 */
183     /* Peripheral clock enable */
184     __HAL_RCC_DAC1_CLK_ENABLE();
185 
186     __HAL_RCC_GPIOA_CLK_ENABLE();
187     /**DAC1 GPIO Configuration
188     PA4     ------> DAC1_OUT1
189     PA5     ------> DAC1_OUT2
190     */
191     GPIO_InitStruct.Pin = GPIO_PIN_4|GPIO_PIN_5;
192     GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
193     GPIO_InitStruct.Pull = GPIO_NOPULL;
194     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
195 
196   /* USER CODE BEGIN DAC1_MspInit 1 */
197 
198   /* USER CODE END DAC1_MspInit 1 */
199   }
200 
201 }
202 
203 /**
204 * @brief DAC MSP De-Initialization
205 * This function freeze the hardware resources used in this example
206 * @param hdac: DAC handle pointer
207 * @retval None
208 */
209 
HAL_DAC_MspDeInit(DAC_HandleTypeDef * hdac)210 void HAL_DAC_MspDeInit(DAC_HandleTypeDef* hdac)
211 {
212 
213   if(hdac->Instance==DAC1)
214   {
215   /* USER CODE BEGIN DAC1_MspDeInit 0 */
216 
217   /* USER CODE END DAC1_MspDeInit 0 */
218     /* Peripheral clock disable */
219     __HAL_RCC_DAC1_CLK_DISABLE();
220 
221     /**DAC1 GPIO Configuration
222     PA4     ------> DAC1_OUT1
223     PA5     ------> DAC1_OUT2
224     */
225     HAL_GPIO_DeInit(GPIOA, GPIO_PIN_4|GPIO_PIN_5);
226 
227   /* USER CODE BEGIN DAC1_MspDeInit 1 */
228 
229   /* USER CODE END DAC1_MspDeInit 1 */
230   }
231 
232 }
233 
234 /**
235 * @brief UART MSP Initialization
236 * This function configures the hardware resources used in this example
237 * @param huart: UART handle pointer
238 * @retval None
239 */
HAL_UART_MspInit(UART_HandleTypeDef * huart)240 void HAL_UART_MspInit(UART_HandleTypeDef* huart)
241 {
242 
243   GPIO_InitTypeDef GPIO_InitStruct = {0};
244   if(huart->Instance==LPUART1)
245   {
246   /* USER CODE BEGIN LPUART1_MspInit 0 */
247 
248   /* USER CODE END LPUART1_MspInit 0 */
249     /* Peripheral clock enable */
250     __HAL_RCC_LPUART1_CLK_ENABLE();
251 
252     __HAL_RCC_GPIOA_CLK_ENABLE();
253     /**LPUART1 GPIO Configuration
254     PA2     ------> LPUART1_TX
255     PA3     ------> LPUART1_RX
256     */
257     GPIO_InitStruct.Pin = LPUART1_TX_Pin|LPUART1_RX_Pin;
258     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
259     GPIO_InitStruct.Pull = GPIO_PULLUP;
260     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
261     GPIO_InitStruct.Alternate = GPIO_AF6_LPUART1;
262     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
263 
264     /* LPUART1 interrupt Init */
265     HAL_NVIC_SetPriority(USART3_4_LPUART1_IRQn, 0, 0);
266     HAL_NVIC_EnableIRQ(USART3_4_LPUART1_IRQn);
267   /* USER CODE BEGIN LPUART1_MspInit 1 */
268 
269   /* USER CODE END LPUART1_MspInit 1 */
270   }
271   else if(huart->Instance==USART1)
272   {
273   /* USER CODE BEGIN USART1_MspInit 0 */
274 
275   /* USER CODE END USART1_MspInit 0 */
276     /* Peripheral clock enable */
277     __HAL_RCC_USART1_CLK_ENABLE();
278 
279     __HAL_RCC_GPIOC_CLK_ENABLE();
280     /**USART1 GPIO Configuration
281     PC4     ------> USART1_TX
282     PC5     ------> USART1_RX
283     */
284     GPIO_InitStruct.Pin = GPIO_PIN_4|GPIO_PIN_5;
285     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
286     GPIO_InitStruct.Pull = GPIO_PULLUP;
287     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
288     GPIO_InitStruct.Alternate = GPIO_AF1_USART1;
289     HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
290 
291   /* USER CODE BEGIN USART1_MspInit 1 */
292 
293   /* USER CODE END USART1_MspInit 1 */
294   }
295   else if(huart->Instance==USART2)
296   {
297   /* USER CODE BEGIN USART2_MspInit 0 */
298 
299   /* USER CODE END USART2_MspInit 0 */
300     /* Peripheral clock enable */
301     __HAL_RCC_USART2_CLK_ENABLE();
302 
303     __HAL_RCC_GPIOA_CLK_ENABLE();
304     __HAL_RCC_GPIOD_CLK_ENABLE();
305     /**USART2 GPIO Configuration
306     PA15     ------> USART2_RX
307     PD5     ------> USART2_TX
308     */
309     GPIO_InitStruct.Pin = GPIO_PIN_15;
310     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
311     GPIO_InitStruct.Pull = GPIO_PULLUP;
312     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
313     GPIO_InitStruct.Alternate = GPIO_AF1_USART2;
314     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
315 
316     GPIO_InitStruct.Pin = GPIO_PIN_5;
317     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
318     GPIO_InitStruct.Pull = GPIO_PULLUP;
319     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
320     GPIO_InitStruct.Alternate = GPIO_AF0_USART2;
321     HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
322 
323   /* USER CODE BEGIN USART2_MspInit 1 */
324 
325   /* USER CODE END USART2_MspInit 1 */
326   }
327   else if(huart->Instance==USART3)
328   {
329   /* USER CODE BEGIN USART3_MspInit 0 */
330 
331   /* USER CODE END USART3_MspInit 0 */
332     /* Peripheral clock enable */
333     __HAL_RCC_USART3_CLK_ENABLE();
334 
335     __HAL_RCC_GPIOC_CLK_ENABLE();
336     __HAL_RCC_GPIOB_CLK_ENABLE();
337     /**USART3 GPIO Configuration
338     PC11     ------> USART3_RX
339     PB2     ------> USART3_TX
340     */
341     GPIO_InitStruct.Pin = GPIO_PIN_11;
342     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
343     GPIO_InitStruct.Pull = GPIO_PULLUP;
344     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
345     GPIO_InitStruct.Alternate = GPIO_AF0_USART3;
346     HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
347 
348     GPIO_InitStruct.Pin = GPIO_PIN_2;
349     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
350     GPIO_InitStruct.Pull = GPIO_PULLUP;
351     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
352     GPIO_InitStruct.Alternate = GPIO_AF4_USART3;
353     HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
354 
355     /* USART3 interrupt Init */
356     HAL_NVIC_SetPriority(USART3_4_LPUART1_IRQn, 0, 0);
357     HAL_NVIC_EnableIRQ(USART3_4_LPUART1_IRQn);
358   /* USER CODE BEGIN USART3_MspInit 1 */
359 
360   /* USER CODE END USART3_MspInit 1 */
361   }
362 
363 }
364 
365 /**
366 * @brief UART MSP De-Initialization
367 * This function freeze the hardware resources used in this example
368 * @param huart: UART handle pointer
369 * @retval None
370 */
371 
HAL_UART_MspDeInit(UART_HandleTypeDef * huart)372 void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
373 {
374 
375   if(huart->Instance==LPUART1)
376   {
377   /* USER CODE BEGIN LPUART1_MspDeInit 0 */
378 
379   /* USER CODE END LPUART1_MspDeInit 0 */
380     /* Peripheral clock disable */
381     __HAL_RCC_LPUART1_CLK_DISABLE();
382 
383     /**LPUART1 GPIO Configuration
384     PA2     ------> LPUART1_TX
385     PA3     ------> LPUART1_RX
386     */
387     HAL_GPIO_DeInit(GPIOA, LPUART1_TX_Pin|LPUART1_RX_Pin);
388 
389     /* LPUART1 interrupt DeInit */
390   /* USER CODE BEGIN LPUART1:USART3_4_LPUART1_IRQn disable */
391     /**
392     * Uncomment the line below to disable the "USART3_4_LPUART1_IRQn" interrupt
393     * Be aware, disabling shared interrupt may affect other IPs
394     */
395     /* HAL_NVIC_DisableIRQ(USART3_4_LPUART1_IRQn); */
396   /* USER CODE END LPUART1:USART3_4_LPUART1_IRQn disable */
397 
398   /* USER CODE BEGIN LPUART1_MspDeInit 1 */
399 
400   /* USER CODE END LPUART1_MspDeInit 1 */
401   }
402   else if(huart->Instance==USART1)
403   {
404   /* USER CODE BEGIN USART1_MspDeInit 0 */
405 
406   /* USER CODE END USART1_MspDeInit 0 */
407     /* Peripheral clock disable */
408     __HAL_RCC_USART1_CLK_DISABLE();
409 
410     /**USART1 GPIO Configuration
411     PC4     ------> USART1_TX
412     PC5     ------> USART1_RX
413     */
414     HAL_GPIO_DeInit(GPIOC, GPIO_PIN_4|GPIO_PIN_5);
415 
416   /* USER CODE BEGIN USART1_MspDeInit 1 */
417 
418   /* USER CODE END USART1_MspDeInit 1 */
419   }
420   else if(huart->Instance==USART2)
421   {
422   /* USER CODE BEGIN USART2_MspDeInit 0 */
423 
424   /* USER CODE END USART2_MspDeInit 0 */
425     /* Peripheral clock disable */
426     __HAL_RCC_USART2_CLK_DISABLE();
427 
428     /**USART2 GPIO Configuration
429     PA15     ------> USART2_RX
430     PD5     ------> USART2_TX
431     */
432     HAL_GPIO_DeInit(GPIOA, GPIO_PIN_15);
433 
434     HAL_GPIO_DeInit(GPIOD, GPIO_PIN_5);
435 
436   /* USER CODE BEGIN USART2_MspDeInit 1 */
437 
438   /* USER CODE END USART2_MspDeInit 1 */
439   }
440   else if(huart->Instance==USART3)
441   {
442   /* USER CODE BEGIN USART3_MspDeInit 0 */
443 
444   /* USER CODE END USART3_MspDeInit 0 */
445     /* Peripheral clock disable */
446     __HAL_RCC_USART3_CLK_DISABLE();
447 
448     /**USART3 GPIO Configuration
449     PC11     ------> USART3_RX
450     PB2     ------> USART3_TX
451     */
452     HAL_GPIO_DeInit(GPIOC, GPIO_PIN_11);
453 
454     HAL_GPIO_DeInit(GPIOB, GPIO_PIN_2);
455 
456     /* USART3 interrupt DeInit */
457   /* USER CODE BEGIN USART3:USART3_4_LPUART1_IRQn disable */
458     /**
459     * Uncomment the line below to disable the "USART3_4_LPUART1_IRQn" interrupt
460     * Be aware, disabling shared interrupt may affect other IPs
461     */
462     /* HAL_NVIC_DisableIRQ(USART3_4_LPUART1_IRQn); */
463   /* USER CODE END USART3:USART3_4_LPUART1_IRQn disable */
464 
465   /* USER CODE BEGIN USART3_MspDeInit 1 */
466 
467   /* USER CODE END USART3_MspDeInit 1 */
468   }
469 
470 }
471 
472 /**
473 * @brief SPI MSP Initialization
474 * This function configures the hardware resources used in this example
475 * @param hspi: SPI handle pointer
476 * @retval None
477 */
HAL_SPI_MspInit(SPI_HandleTypeDef * hspi)478 void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi)
479 {
480 
481   GPIO_InitTypeDef GPIO_InitStruct = {0};
482   if(hspi->Instance==SPI1)
483   {
484   /* USER CODE BEGIN SPI1_MspInit 0 */
485 
486   /* USER CODE END SPI1_MspInit 0 */
487     /* Peripheral clock enable */
488     __HAL_RCC_SPI1_CLK_ENABLE();
489 
490     __HAL_RCC_GPIOA_CLK_ENABLE();
491     __HAL_RCC_GPIOD_CLK_ENABLE();
492     /**SPI1 GPIO Configuration
493     PA6     ------> SPI1_MISO
494     PA7     ------> SPI1_MOSI
495     PD8     ------> SPI1_SCK
496     */
497     GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_7;
498     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
499     GPIO_InitStruct.Pull = GPIO_NOPULL;
500     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
501     GPIO_InitStruct.Alternate = GPIO_AF0_SPI1;
502     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
503 
504     GPIO_InitStruct.Pin = GPIO_PIN_8;
505     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
506     GPIO_InitStruct.Pull = GPIO_NOPULL;
507     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
508     GPIO_InitStruct.Alternate = GPIO_AF1_SPI1;
509     HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
510 
511   /* USER CODE BEGIN SPI1_MspInit 1 */
512 
513   /* USER CODE END SPI1_MspInit 1 */
514   }
515   else if(hspi->Instance==SPI2)
516   {
517   /* USER CODE BEGIN SPI2_MspInit 0 */
518 
519   /* USER CODE END SPI2_MspInit 0 */
520     /* Peripheral clock enable */
521     __HAL_RCC_SPI2_CLK_ENABLE();
522 
523     __HAL_RCC_GPIOC_CLK_ENABLE();
524     __HAL_RCC_GPIOB_CLK_ENABLE();
525     /**SPI2 GPIO Configuration
526     PC2     ------> SPI2_MISO
527     PC3     ------> SPI2_MOSI
528     PB13     ------> SPI2_SCK
529     */
530     GPIO_InitStruct.Pin = GPIO_PIN_2|GPIO_PIN_3;
531     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
532     GPIO_InitStruct.Pull = GPIO_NOPULL;
533     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
534     GPIO_InitStruct.Alternate = GPIO_AF1_SPI2;
535     HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
536 
537     GPIO_InitStruct.Pin = GPIO_PIN_13;
538     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
539     GPIO_InitStruct.Pull = GPIO_NOPULL;
540     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
541     GPIO_InitStruct.Alternate = GPIO_AF0_SPI2;
542     HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
543 
544   /* USER CODE BEGIN SPI2_MspInit 1 */
545 
546   /* USER CODE END SPI2_MspInit 1 */
547   }
548 
549 }
550 
551 /**
552 * @brief SPI MSP De-Initialization
553 * This function freeze the hardware resources used in this example
554 * @param hspi: SPI handle pointer
555 * @retval None
556 */
557 
HAL_SPI_MspDeInit(SPI_HandleTypeDef * hspi)558 void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi)
559 {
560 
561   if(hspi->Instance==SPI1)
562   {
563   /* USER CODE BEGIN SPI1_MspDeInit 0 */
564 
565   /* USER CODE END SPI1_MspDeInit 0 */
566     /* Peripheral clock disable */
567     __HAL_RCC_SPI1_CLK_DISABLE();
568 
569     /**SPI1 GPIO Configuration
570     PA6     ------> SPI1_MISO
571     PA7     ------> SPI1_MOSI
572     PD8     ------> SPI1_SCK
573     */
574     HAL_GPIO_DeInit(GPIOA, GPIO_PIN_6|GPIO_PIN_7);
575 
576     HAL_GPIO_DeInit(GPIOD, GPIO_PIN_8);
577 
578   /* USER CODE BEGIN SPI1_MspDeInit 1 */
579 
580   /* USER CODE END SPI1_MspDeInit 1 */
581   }
582   else if(hspi->Instance==SPI2)
583   {
584   /* USER CODE BEGIN SPI2_MspDeInit 0 */
585 
586   /* USER CODE END SPI2_MspDeInit 0 */
587     /* Peripheral clock disable */
588     __HAL_RCC_SPI2_CLK_DISABLE();
589 
590     /**SPI2 GPIO Configuration
591     PC2     ------> SPI2_MISO
592     PC3     ------> SPI2_MOSI
593     PB13     ------> SPI2_SCK
594     */
595     HAL_GPIO_DeInit(GPIOC, GPIO_PIN_2|GPIO_PIN_3);
596 
597     HAL_GPIO_DeInit(GPIOB, GPIO_PIN_13);
598 
599   /* USER CODE BEGIN SPI2_MspDeInit 1 */
600 
601   /* USER CODE END SPI2_MspDeInit 1 */
602   }
603 
604 }
605 
606 /**
607 * @brief TIM_Base MSP Initialization
608 * This function configures the hardware resources used in this example
609 * @param htim_base: TIM_Base handle pointer
610 * @retval None
611 */
HAL_TIM_Base_MspInit(TIM_HandleTypeDef * htim_base)612 void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
613 {
614 
615   if(htim_base->Instance==TIM2)
616   {
617   /* USER CODE BEGIN TIM2_MspInit 0 */
618 
619   /* USER CODE END TIM2_MspInit 0 */
620     /* Peripheral clock enable */
621     __HAL_RCC_TIM2_CLK_ENABLE();
622   /* USER CODE BEGIN TIM2_MspInit 1 */
623 
624   /* USER CODE END TIM2_MspInit 1 */
625   }
626   else if(htim_base->Instance==TIM3)
627   {
628   /* USER CODE BEGIN TIM3_MspInit 0 */
629 
630   /* USER CODE END TIM3_MspInit 0 */
631     /* Peripheral clock enable */
632     __HAL_RCC_TIM3_CLK_ENABLE();
633   /* USER CODE BEGIN TIM3_MspInit 1 */
634 
635   /* USER CODE END TIM3_MspInit 1 */
636   }
637 
638 }
639 
HAL_TIM_MspPostInit(TIM_HandleTypeDef * htim)640 void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim)
641 {
642 
643   GPIO_InitTypeDef GPIO_InitStruct = {0};
644   if(htim->Instance==TIM3)
645   {
646   /* USER CODE BEGIN TIM3_MspPostInit 0 */
647 
648   /* USER CODE END TIM3_MspPostInit 0 */
649 
650     __HAL_RCC_GPIOB_CLK_ENABLE();
651     __HAL_RCC_GPIOC_CLK_ENABLE();
652     /**TIM3 GPIO Configuration
653     PB0     ------> TIM3_CH3
654     PB1     ------> TIM3_CH4
655     PC6     ------> TIM3_CH1
656     PC7     ------> TIM3_CH2
657     */
658     GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1;
659     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
660     GPIO_InitStruct.Pull = GPIO_NOPULL;
661     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
662     GPIO_InitStruct.Alternate = GPIO_AF1_TIM3;
663     HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
664 
665     GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_7;
666     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
667     GPIO_InitStruct.Pull = GPIO_NOPULL;
668     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
669     GPIO_InitStruct.Alternate = GPIO_AF1_TIM3;
670     HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
671 
672   /* USER CODE BEGIN TIM3_MspPostInit 1 */
673 
674   /* USER CODE END TIM3_MspPostInit 1 */
675   }
676 
677 }
678 /**
679 * @brief TIM_Base MSP De-Initialization
680 * This function freeze the hardware resources used in this example
681 * @param htim_base: TIM_Base handle pointer
682 * @retval None
683 */
684 
HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef * htim_base)685 void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base)
686 {
687 
688   if(htim_base->Instance==TIM2)
689   {
690   /* USER CODE BEGIN TIM2_MspDeInit 0 */
691 
692   /* USER CODE END TIM2_MspDeInit 0 */
693     /* Peripheral clock disable */
694     __HAL_RCC_TIM2_CLK_DISABLE();
695   /* USER CODE BEGIN TIM2_MspDeInit 1 */
696 
697   /* USER CODE END TIM2_MspDeInit 1 */
698   }
699   else if(htim_base->Instance==TIM3)
700   {
701   /* USER CODE BEGIN TIM3_MspDeInit 0 */
702 
703   /* USER CODE END TIM3_MspDeInit 0 */
704     /* Peripheral clock disable */
705     __HAL_RCC_TIM3_CLK_DISABLE();
706   /* USER CODE BEGIN TIM3_MspDeInit 1 */
707 
708   /* USER CODE END TIM3_MspDeInit 1 */
709   }
710 
711 }
712 
713 /* USER CODE BEGIN 1 */
714 
715 /* USER CODE END 1 */
716 
717 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
718