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 ** 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) 2018 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 I2C MSP Initialization
104 * This function configures the hardware resources used in this example
105 * @param hi2c: I2C handle pointer
106 * @retval None
107 */
HAL_I2C_MspInit(I2C_HandleTypeDef * hi2c)108 void HAL_I2C_MspInit(I2C_HandleTypeDef* hi2c)
109 {
110
111 GPIO_InitTypeDef GPIO_InitStruct = {0};
112 if(hi2c->Instance==I2C1)
113 {
114 /* USER CODE BEGIN I2C1_MspInit 0 */
115
116 /* USER CODE END I2C1_MspInit 0 */
117
118 __HAL_RCC_GPIOB_CLK_ENABLE();
119 /**I2C1 GPIO Configuration
120 PB8 ------> I2C1_SCL
121 PB9 ------> I2C1_SDA
122 */
123 GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_9;
124 GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
125 GPIO_InitStruct.Pull = GPIO_PULLUP;
126 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
127 GPIO_InitStruct.Alternate = GPIO_AF4_I2C1;
128 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
129
130 /* Peripheral clock enable */
131 __HAL_RCC_I2C1_CLK_ENABLE();
132 /* USER CODE BEGIN I2C1_MspInit 1 */
133
134 /* USER CODE END I2C1_MspInit 1 */
135 }
136 else if(hi2c->Instance==I2C2)
137 {
138 /* USER CODE BEGIN I2C2_MspInit 0 */
139
140 /* USER CODE END I2C2_MspInit 0 */
141
142 __HAL_RCC_GPIOF_CLK_ENABLE();
143 /**I2C2 GPIO Configuration
144 PF0 ------> I2C2_SDA
145 PF1 ------> I2C2_SCL
146 */
147 GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1;
148 GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
149 GPIO_InitStruct.Pull = GPIO_PULLUP;
150 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
151 GPIO_InitStruct.Alternate = GPIO_AF4_I2C2;
152 HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
153
154 /* Peripheral clock enable */
155 __HAL_RCC_I2C2_CLK_ENABLE();
156 /* USER CODE BEGIN I2C2_MspInit 1 */
157
158 /* USER CODE END I2C2_MspInit 1 */
159 }
160
161 }
162
163 /**
164 * @brief I2C MSP De-Initialization
165 * This function freeze the hardware resources used in this example
166 * @param hi2c: I2C handle pointer
167 * @retval None
168 */
169
HAL_I2C_MspDeInit(I2C_HandleTypeDef * hi2c)170 void HAL_I2C_MspDeInit(I2C_HandleTypeDef* hi2c)
171 {
172
173 if(hi2c->Instance==I2C1)
174 {
175 /* USER CODE BEGIN I2C1_MspDeInit 0 */
176
177 /* USER CODE END I2C1_MspDeInit 0 */
178 /* Peripheral clock disable */
179 __HAL_RCC_I2C1_CLK_DISABLE();
180
181 /**I2C1 GPIO Configuration
182 PB8 ------> I2C1_SCL
183 PB9 ------> I2C1_SDA
184 */
185 HAL_GPIO_DeInit(GPIOB, GPIO_PIN_8);
186
187 HAL_GPIO_DeInit(GPIOB, GPIO_PIN_9);
188
189 /* USER CODE BEGIN I2C1_MspDeInit 1 */
190
191 /* USER CODE END I2C1_MspDeInit 1 */
192 }
193 else if(hi2c->Instance==I2C2)
194 {
195 /* USER CODE BEGIN I2C2_MspDeInit 0 */
196
197 /* USER CODE END I2C2_MspDeInit 0 */
198 /* Peripheral clock disable */
199 __HAL_RCC_I2C2_CLK_DISABLE();
200
201 /**I2C2 GPIO Configuration
202 PF0 ------> I2C2_SDA
203 PF1 ------> I2C2_SCL
204 */
205 HAL_GPIO_DeInit(GPIOF, GPIO_PIN_0);
206
207 HAL_GPIO_DeInit(GPIOF, GPIO_PIN_1);
208
209 /* USER CODE BEGIN I2C2_MspDeInit 1 */
210
211 /* USER CODE END I2C2_MspDeInit 1 */
212 }
213
214 }
215
216 /**
217 * @brief SPI MSP Initialization
218 * This function configures the hardware resources used in this example
219 * @param hspi: SPI handle pointer
220 * @retval None
221 */
HAL_SPI_MspInit(SPI_HandleTypeDef * hspi)222 void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi)
223 {
224
225 GPIO_InitTypeDef GPIO_InitStruct = {0};
226 if(hspi->Instance==SPI2)
227 {
228 /* USER CODE BEGIN SPI2_MspInit 0 */
229
230 /* USER CODE END SPI2_MspInit 0 */
231 /* Peripheral clock enable */
232 __HAL_RCC_SPI2_CLK_ENABLE();
233
234 __HAL_RCC_GPIOB_CLK_ENABLE();
235 /**SPI2 GPIO Configuration
236 PB13 ------> SPI2_SCK
237 PB14 ------> SPI2_MISO
238 PB15 ------> SPI2_MOSI
239 */
240 GPIO_InitStruct.Pin = GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15;
241 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
242 GPIO_InitStruct.Pull = GPIO_NOPULL;
243 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
244 GPIO_InitStruct.Alternate = GPIO_AF5_SPI2;
245 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
246
247 /* USER CODE BEGIN SPI2_MspInit 1 */
248
249 /* USER CODE END SPI2_MspInit 1 */
250 }
251
252 }
253
254 /**
255 * @brief SPI MSP De-Initialization
256 * This function freeze the hardware resources used in this example
257 * @param hspi: SPI handle pointer
258 * @retval None
259 */
260
HAL_SPI_MspDeInit(SPI_HandleTypeDef * hspi)261 void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi)
262 {
263
264 if(hspi->Instance==SPI2)
265 {
266 /* USER CODE BEGIN SPI2_MspDeInit 0 */
267
268 /* USER CODE END SPI2_MspDeInit 0 */
269 /* Peripheral clock disable */
270 __HAL_RCC_SPI2_CLK_DISABLE();
271
272 /**SPI2 GPIO Configuration
273 PB13 ------> SPI2_SCK
274 PB14 ------> SPI2_MISO
275 PB15 ------> SPI2_MOSI
276 */
277 HAL_GPIO_DeInit(GPIOB, GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15);
278
279 /* USER CODE BEGIN SPI2_MspDeInit 1 */
280
281 /* USER CODE END SPI2_MspDeInit 1 */
282 }
283
284 }
285
286 /**
287 * @brief TIM_Base MSP Initialization
288 * This function configures the hardware resources used in this example
289 * @param htim_base: TIM_Base handle pointer
290 * @retval None
291 */
HAL_TIM_Base_MspInit(TIM_HandleTypeDef * htim_base)292 void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
293 {
294
295 if(htim_base->Instance==TIM6)
296 {
297 /* USER CODE BEGIN TIM6_MspInit 0 */
298
299 /* USER CODE END TIM6_MspInit 0 */
300 /* Peripheral clock enable */
301 __HAL_RCC_TIM6_CLK_ENABLE();
302 /* USER CODE BEGIN TIM6_MspInit 1 */
303
304 /* USER CODE END TIM6_MspInit 1 */
305 }
306 else if(htim_base->Instance==TIM10)
307 {
308 /* USER CODE BEGIN TIM10_MspInit 0 */
309
310 /* USER CODE END TIM10_MspInit 0 */
311 /* Peripheral clock enable */
312 __HAL_RCC_TIM10_CLK_ENABLE();
313 /* USER CODE BEGIN TIM10_MspInit 1 */
314
315 /* USER CODE END TIM10_MspInit 1 */
316 }
317 else if(htim_base->Instance==TIM11)
318 {
319 /* USER CODE BEGIN TIM11_MspInit 0 */
320
321 /* USER CODE END TIM11_MspInit 0 */
322 /* Peripheral clock enable */
323 __HAL_RCC_TIM11_CLK_ENABLE();
324 /* USER CODE BEGIN TIM11_MspInit 1 */
325
326 /* USER CODE END TIM11_MspInit 1 */
327 }
328 else if(htim_base->Instance==TIM13)
329 {
330 /* USER CODE BEGIN TIM13_MspInit 0 */
331
332 /* USER CODE END TIM13_MspInit 0 */
333 /* Peripheral clock enable */
334 __HAL_RCC_TIM13_CLK_ENABLE();
335 /* USER CODE BEGIN TIM13_MspInit 1 */
336
337 /* USER CODE END TIM13_MspInit 1 */
338 }
339
340 }
341
HAL_TIM_MspPostInit(TIM_HandleTypeDef * htim)342 void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim)
343 {
344
345 GPIO_InitTypeDef GPIO_InitStruct = {0};
346 if(htim->Instance==TIM10)
347 {
348 /* USER CODE BEGIN TIM10_MspPostInit 0 */
349
350 /* USER CODE END TIM10_MspPostInit 0 */
351 __HAL_RCC_GPIOF_CLK_ENABLE();
352 /**TIM10 GPIO Configuration
353 PF6 ------> TIM10_CH1
354 */
355 GPIO_InitStruct.Pin = GPIO_PIN_6;
356 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
357 GPIO_InitStruct.Pull = GPIO_NOPULL;
358 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
359 GPIO_InitStruct.Alternate = GPIO_AF3_TIM10;
360 HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
361
362 /* USER CODE BEGIN TIM10_MspPostInit 1 */
363
364 /* USER CODE END TIM10_MspPostInit 1 */
365 }
366 else if(htim->Instance==TIM11)
367 {
368 /* USER CODE BEGIN TIM11_MspPostInit 0 */
369
370 /* USER CODE END TIM11_MspPostInit 0 */
371
372 __HAL_RCC_GPIOF_CLK_ENABLE();
373 /**TIM11 GPIO Configuration
374 PF7 ------> TIM11_CH1
375 */
376 GPIO_InitStruct.Pin = GPIO_PIN_7;
377 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
378 GPIO_InitStruct.Pull = GPIO_NOPULL;
379 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
380 GPIO_InitStruct.Alternate = GPIO_AF3_TIM11;
381 HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
382
383 /* USER CODE BEGIN TIM11_MspPostInit 1 */
384
385 /* USER CODE END TIM11_MspPostInit 1 */
386 }
387 else if(htim->Instance==TIM13)
388 {
389 /* USER CODE BEGIN TIM13_MspPostInit 0 */
390
391 /* USER CODE END TIM13_MspPostInit 0 */
392
393 __HAL_RCC_GPIOF_CLK_ENABLE();
394 /**TIM13 GPIO Configuration
395 PF8 ------> TIM13_CH1
396 */
397 GPIO_InitStruct.Pin = GPIO_PIN_8;
398 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
399 GPIO_InitStruct.Pull = GPIO_NOPULL;
400 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
401 GPIO_InitStruct.Alternate = GPIO_AF9_TIM13;
402 HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
403
404 /* USER CODE BEGIN TIM13_MspPostInit 1 */
405
406 /* USER CODE END TIM13_MspPostInit 1 */
407 }
408
409 }
410 /**
411 * @brief TIM_Base MSP De-Initialization
412 * This function freeze the hardware resources used in this example
413 * @param htim_base: TIM_Base handle pointer
414 * @retval None
415 */
416
HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef * htim_base)417 void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base)
418 {
419
420 if(htim_base->Instance==TIM6)
421 {
422 /* USER CODE BEGIN TIM6_MspDeInit 0 */
423
424 /* USER CODE END TIM6_MspDeInit 0 */
425 /* Peripheral clock disable */
426 __HAL_RCC_TIM6_CLK_DISABLE();
427 /* USER CODE BEGIN TIM6_MspDeInit 1 */
428
429 /* USER CODE END TIM6_MspDeInit 1 */
430 }
431 else if(htim_base->Instance==TIM10)
432 {
433 /* USER CODE BEGIN TIM10_MspDeInit 0 */
434
435 /* USER CODE END TIM10_MspDeInit 0 */
436 /* Peripheral clock disable */
437 __HAL_RCC_TIM10_CLK_DISABLE();
438 /* USER CODE BEGIN TIM10_MspDeInit 1 */
439
440 /* USER CODE END TIM10_MspDeInit 1 */
441 }
442 else if(htim_base->Instance==TIM11)
443 {
444 /* USER CODE BEGIN TIM11_MspDeInit 0 */
445
446 /* USER CODE END TIM11_MspDeInit 0 */
447 /* Peripheral clock disable */
448 __HAL_RCC_TIM11_CLK_DISABLE();
449 /* USER CODE BEGIN TIM11_MspDeInit 1 */
450
451 /* USER CODE END TIM11_MspDeInit 1 */
452 }
453 else if(htim_base->Instance==TIM13)
454 {
455 /* USER CODE BEGIN TIM13_MspDeInit 0 */
456
457 /* USER CODE END TIM13_MspDeInit 0 */
458 /* Peripheral clock disable */
459 __HAL_RCC_TIM13_CLK_DISABLE();
460 /* USER CODE BEGIN TIM13_MspDeInit 1 */
461
462 /* USER CODE END TIM13_MspDeInit 1 */
463 }
464
465 }
466
467 /**
468 * @brief UART MSP Initialization
469 * This function configures the hardware resources used in this example
470 * @param huart: UART handle pointer
471 * @retval None
472 */
HAL_UART_MspInit(UART_HandleTypeDef * huart)473 void HAL_UART_MspInit(UART_HandleTypeDef* huart)
474 {
475
476 GPIO_InitTypeDef GPIO_InitStruct = {0};
477 if(huart->Instance==USART1)
478 {
479 /* USER CODE BEGIN USART1_MspInit 0 */
480
481 /* USER CODE END USART1_MspInit 0 */
482 /* Peripheral clock enable */
483 __HAL_RCC_USART1_CLK_ENABLE();
484
485 __HAL_RCC_GPIOA_CLK_ENABLE();
486 /**USART1 GPIO Configuration
487 PA9 ------> USART1_TX
488 PA10 ------> USART1_RX
489 */
490 GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_10;
491 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
492 GPIO_InitStruct.Pull = GPIO_PULLUP;
493 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
494 GPIO_InitStruct.Alternate = GPIO_AF7_USART1;
495 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
496
497 /* USER CODE BEGIN USART1_MspInit 1 */
498
499 /* USER CODE END USART1_MspInit 1 */
500 }
501
502 }
503
504 /**
505 * @brief UART MSP De-Initialization
506 * This function freeze the hardware resources used in this example
507 * @param huart: UART handle pointer
508 * @retval None
509 */
510
HAL_UART_MspDeInit(UART_HandleTypeDef * huart)511 void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
512 {
513
514 if(huart->Instance==USART1)
515 {
516 /* USER CODE BEGIN USART1_MspDeInit 0 */
517
518 /* USER CODE END USART1_MspDeInit 0 */
519 /* Peripheral clock disable */
520 __HAL_RCC_USART1_CLK_DISABLE();
521
522 /**USART1 GPIO Configuration
523 PA9 ------> USART1_TX
524 PA10 ------> USART1_RX
525 */
526 HAL_GPIO_DeInit(GPIOA, GPIO_PIN_9|GPIO_PIN_10);
527
528 /* USER CODE BEGIN USART1_MspDeInit 1 */
529
530 /* USER CODE END USART1_MspDeInit 1 */
531 }
532
533 }
534
535 /* USER CODE BEGIN 1 */
536
537 /* USER CODE END 1 */
538
539 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
540