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>© 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