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   * @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   HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_0);
76 
77   /* System interrupt init*/
78 
79   /* USER CODE BEGIN MspInit 1 */
80 
81   /* USER CODE END MspInit 1 */
82 }
83 
84 /**
85 * @brief ADC MSP Initialization
86 * This function configures the hardware resources used in this example
87 * @param hadc: ADC handle pointer
88 * @retval None
89 */
HAL_ADC_MspInit(ADC_HandleTypeDef * hadc)90 void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc)
91 {
92   GPIO_InitTypeDef GPIO_InitStruct = {0};
93   if(hadc->Instance==ADC1)
94   {
95   /* USER CODE BEGIN ADC1_MspInit 0 */
96 
97   /* USER CODE END ADC1_MspInit 0 */
98     /* Peripheral clock enable */
99     __HAL_RCC_ADC1_CLK_ENABLE();
100 
101     __HAL_RCC_GPIOC_CLK_ENABLE();
102     __HAL_RCC_GPIOA_CLK_ENABLE();
103     __HAL_RCC_GPIOB_CLK_ENABLE();
104     /**ADC1 GPIO Configuration
105     PC0     ------> ADC1_IN10
106     PC1     ------> ADC1_IN11
107     PA0-WKUP     ------> ADC1_IN0
108     PA1     ------> ADC1_IN1
109     PA4     ------> ADC1_IN4
110     PB0     ------> ADC1_IN8
111     */
112     GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1;
113     GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
114     GPIO_InitStruct.Pull = GPIO_NOPULL;
115     HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
116 
117     GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_4;
118     GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
119     GPIO_InitStruct.Pull = GPIO_NOPULL;
120     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
121 
122     GPIO_InitStruct.Pin = GPIO_PIN_0;
123     GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
124     GPIO_InitStruct.Pull = GPIO_NOPULL;
125     HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
126 
127   /* USER CODE BEGIN ADC1_MspInit 1 */
128 
129   /* USER CODE END ADC1_MspInit 1 */
130   }
131 
132 }
133 
134 /**
135 * @brief ADC MSP De-Initialization
136 * This function freeze the hardware resources used in this example
137 * @param hadc: ADC handle pointer
138 * @retval None
139 */
HAL_ADC_MspDeInit(ADC_HandleTypeDef * hadc)140 void HAL_ADC_MspDeInit(ADC_HandleTypeDef* hadc)
141 {
142   if(hadc->Instance==ADC1)
143   {
144   /* USER CODE BEGIN ADC1_MspDeInit 0 */
145 
146   /* USER CODE END ADC1_MspDeInit 0 */
147     /* Peripheral clock disable */
148     __HAL_RCC_ADC1_CLK_DISABLE();
149 
150     /**ADC1 GPIO Configuration
151     PC0     ------> ADC1_IN10
152     PC1     ------> ADC1_IN11
153     PA0-WKUP     ------> ADC1_IN0
154     PA1     ------> ADC1_IN1
155     PA4     ------> ADC1_IN4
156     PB0     ------> ADC1_IN8
157     */
158     HAL_GPIO_DeInit(GPIOC, GPIO_PIN_0|GPIO_PIN_1);
159 
160     HAL_GPIO_DeInit(GPIOA, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_4);
161 
162     HAL_GPIO_DeInit(GPIOB, GPIO_PIN_0);
163 
164   /* USER CODE BEGIN ADC1_MspDeInit 1 */
165 
166   /* USER CODE END ADC1_MspDeInit 1 */
167   }
168 
169 }
170 
171 /**
172 * @brief TIM_Base MSP Initialization
173 * This function configures the hardware resources used in this example
174 * @param htim_base: TIM_Base handle pointer
175 * @retval None
176 */
HAL_TIM_Base_MspInit(TIM_HandleTypeDef * htim_base)177 void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
178 {
179   if(htim_base->Instance==TIM1)
180   {
181   /* USER CODE BEGIN TIM1_MspInit 0 */
182 
183   /* USER CODE END TIM1_MspInit 0 */
184     /* Peripheral clock enable */
185     __HAL_RCC_TIM1_CLK_ENABLE();
186   /* USER CODE BEGIN TIM1_MspInit 1 */
187 
188   /* USER CODE END TIM1_MspInit 1 */
189   }
190 
191 }
192 
HAL_TIM_MspPostInit(TIM_HandleTypeDef * htim)193 void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim)
194 {
195   GPIO_InitTypeDef GPIO_InitStruct = {0};
196   if(htim->Instance==TIM1)
197   {
198   /* USER CODE BEGIN TIM1_MspPostInit 0 */
199 
200   /* USER CODE END TIM1_MspPostInit 0 */
201 
202     __HAL_RCC_GPIOA_CLK_ENABLE();
203     /**TIM1 GPIO Configuration
204     PA7     ------> TIM1_CH1N
205     PA9     ------> TIM1_CH2
206     PA10     ------> TIM1_CH3
207     */
208     GPIO_InitStruct.Pin = GPIO_PIN_7|GPIO_PIN_9|GPIO_PIN_10;
209     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
210     GPIO_InitStruct.Pull = GPIO_NOPULL;
211     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
212     GPIO_InitStruct.Alternate = GPIO_AF1_TIM1;
213     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
214 
215   /* USER CODE BEGIN TIM1_MspPostInit 1 */
216 
217   /* USER CODE END TIM1_MspPostInit 1 */
218   }
219 
220 }
221 /**
222 * @brief TIM_Base MSP De-Initialization
223 * This function freeze the hardware resources used in this example
224 * @param htim_base: TIM_Base handle pointer
225 * @retval None
226 */
HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef * htim_base)227 void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base)
228 {
229   if(htim_base->Instance==TIM1)
230   {
231   /* USER CODE BEGIN TIM1_MspDeInit 0 */
232 
233   /* USER CODE END TIM1_MspDeInit 0 */
234     /* Peripheral clock disable */
235     __HAL_RCC_TIM1_CLK_DISABLE();
236   /* USER CODE BEGIN TIM1_MspDeInit 1 */
237 
238   /* USER CODE END TIM1_MspDeInit 1 */
239   }
240 
241 }
242 
243 /**
244 * @brief UART MSP Initialization
245 * This function configures the hardware resources used in this example
246 * @param huart: UART handle pointer
247 * @retval None
248 */
HAL_UART_MspInit(UART_HandleTypeDef * huart)249 void HAL_UART_MspInit(UART_HandleTypeDef* huart)
250 {
251   GPIO_InitTypeDef GPIO_InitStruct = {0};
252   if(huart->Instance==USART1)
253   {
254   /* USER CODE BEGIN USART1_MspInit 0 */
255 
256   /* USER CODE END USART1_MspInit 0 */
257     /* Peripheral clock enable */
258     __HAL_RCC_USART1_CLK_ENABLE();
259 
260     __HAL_RCC_GPIOB_CLK_ENABLE();
261     /**USART1 GPIO Configuration
262     PB3     ------> USART1_RX
263     PB6     ------> USART1_TX
264     */
265     GPIO_InitStruct.Pin = GPIO_PIN_3|GPIO_PIN_6;
266     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
267     GPIO_InitStruct.Pull = GPIO_NOPULL;
268     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
269     GPIO_InitStruct.Alternate = GPIO_AF7_USART1;
270     HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
271 
272   /* USER CODE BEGIN USART1_MspInit 1 */
273 
274   /* USER CODE END USART1_MspInit 1 */
275   }
276   else if(huart->Instance==USART2)
277   {
278   /* USER CODE BEGIN USART2_MspInit 0 */
279 
280   /* USER CODE END USART2_MspInit 0 */
281     /* Peripheral clock enable */
282     __HAL_RCC_USART2_CLK_ENABLE();
283 
284     __HAL_RCC_GPIOA_CLK_ENABLE();
285     /**USART2 GPIO Configuration
286     PA2     ------> USART2_TX
287     PA3     ------> USART2_RX
288     */
289     GPIO_InitStruct.Pin = GPIO_PIN_2|GPIO_PIN_3;
290     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
291     GPIO_InitStruct.Pull = GPIO_PULLUP;
292     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
293     GPIO_InitStruct.Alternate = GPIO_AF7_USART2;
294     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
295 
296   /* USER CODE BEGIN USART2_MspInit 1 */
297 
298   /* USER CODE END USART2_MspInit 1 */
299   }
300 
301 }
302 
303 /**
304 * @brief UART MSP De-Initialization
305 * This function freeze the hardware resources used in this example
306 * @param huart: UART handle pointer
307 * @retval None
308 */
HAL_UART_MspDeInit(UART_HandleTypeDef * huart)309 void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
310 {
311   if(huart->Instance==USART1)
312   {
313   /* USER CODE BEGIN USART1_MspDeInit 0 */
314 
315   /* USER CODE END USART1_MspDeInit 0 */
316     /* Peripheral clock disable */
317     __HAL_RCC_USART1_CLK_DISABLE();
318 
319     /**USART1 GPIO Configuration
320     PB3     ------> USART1_RX
321     PB6     ------> USART1_TX
322     */
323     HAL_GPIO_DeInit(GPIOB, GPIO_PIN_3|GPIO_PIN_6);
324 
325   /* USER CODE BEGIN USART1_MspDeInit 1 */
326 
327   /* USER CODE END USART1_MspDeInit 1 */
328   }
329   else if(huart->Instance==USART2)
330   {
331   /* USER CODE BEGIN USART2_MspDeInit 0 */
332 
333   /* USER CODE END USART2_MspDeInit 0 */
334     /* Peripheral clock disable */
335     __HAL_RCC_USART2_CLK_DISABLE();
336 
337     /**USART2 GPIO Configuration
338     PA2     ------> USART2_TX
339     PA3     ------> USART2_RX
340     */
341     HAL_GPIO_DeInit(GPIOA, GPIO_PIN_2|GPIO_PIN_3);
342 
343   /* USER CODE BEGIN USART2_MspDeInit 1 */
344 
345   /* USER CODE END USART2_MspDeInit 1 */
346   }
347 
348 }
349 
350 /* USER CODE BEGIN 1 */
351 
352 /* USER CODE END 1 */
353