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