1 /* USER CODE BEGIN Header */
2 /**
3   ******************************************************************************
4   * @file         stm32f3xx_hal_msp.c
5   * @brief        This file provides code for the MSP Initialization
6   *               and de-Initialization codes.
7   ******************************************************************************
8   * @attention
9   *
10   * <h2><center>&copy; Copyright (c) 2021 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   * Initializes the Global MSP.
63   */
HAL_MspInit(void)64 void HAL_MspInit(void)
65 {
66   /* USER CODE BEGIN MspInit 0 */
67 
68   /* USER CODE END MspInit 0 */
69 
70   __HAL_RCC_SYSCFG_CLK_ENABLE();
71   __HAL_RCC_PWR_CLK_ENABLE();
72 
73   /* System interrupt init*/
74 
75   /* USER CODE BEGIN MspInit 1 */
76 
77   /* USER CODE END MspInit 1 */
78 }
79 
80 /**
81 * @brief UART MSP Initialization
82 * This function configures the hardware resources used in this example
83 * @param huart: UART handle pointer
84 * @retval None
85 */
86 
87 void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim);
88 
HAL_TIM_Base_MspInit(TIM_HandleTypeDef * htim_base)89 void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
90 {
91   if(htim_base->Instance==TIM1)
92   {
93   /* USER CODE BEGIN TIM1_MspInit 0 */
94 
95   /* USER CODE END TIM1_MspInit 0 */
96     /* Peripheral clock enable */
97     __HAL_RCC_TIM1_CLK_ENABLE();
98   /* USER CODE BEGIN TIM1_MspInit 1 */
99 
100   /* USER CODE END TIM1_MspInit 1 */
101   }
102 }
103 
HAL_TIM_MspPostInit(TIM_HandleTypeDef * htim)104 void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim)
105 {
106   GPIO_InitTypeDef GPIO_InitStruct = {0};
107   if(htim->Instance==TIM1)
108   {
109   /* USER CODE BEGIN TIM1_MspPostInit 0 */
110 
111   /* USER CODE END TIM1_MspPostInit 0 */
112     __HAL_RCC_GPIOC_CLK_ENABLE();
113     __HAL_RCC_GPIOB_CLK_ENABLE();
114     /**TIM1 GPIO Configuration
115     PC0     ------> TIM1_CH1
116     PB13     ------> TIM1_CH1N
117     */
118     GPIO_InitStruct.Pin = GPIO_PIN_0;
119     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
120     GPIO_InitStruct.Pull = GPIO_NOPULL;
121     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
122     GPIO_InitStruct.Alternate = GPIO_AF2_TIM1;
123     HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
124 
125     GPIO_InitStruct.Pin = GPIO_PIN_13;
126     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
127     GPIO_InitStruct.Pull = GPIO_NOPULL;
128     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
129     GPIO_InitStruct.Alternate = GPIO_AF6_TIM1;
130     HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
131 
132   /* USER CODE BEGIN TIM1_MspPostInit 1 */
133 
134   /* USER CODE END TIM1_MspPostInit 1 */
135   }
136 
137 }
138 /**
139 * @brief TIM_Base MSP De-Initialization
140 * This function freeze the hardware resources used in this example
141 * @param htim_base: TIM_Base handle pointer
142 * @retval None
143 */
HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef * htim_base)144 void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base)
145 {
146   if(htim_base->Instance==TIM1)
147   {
148   /* USER CODE BEGIN TIM1_MspDeInit 0 */
149 
150   /* USER CODE END TIM1_MspDeInit 0 */
151     /* Peripheral clock disable */
152     __HAL_RCC_TIM1_CLK_DISABLE();
153   /* USER CODE BEGIN TIM1_MspDeInit 1 */
154 
155   /* USER CODE END TIM1_MspDeInit 1 */
156   }
157 
158 }
159 
HAL_UART_MspInit(UART_HandleTypeDef * huart)160 void HAL_UART_MspInit(UART_HandleTypeDef* huart)
161 {
162   GPIO_InitTypeDef GPIO_InitStruct = {0};
163   if(huart->Instance==USART1)
164   {
165   /* USER CODE BEGIN USART1_MspInit 0 */
166 
167   /* USER CODE END USART1_MspInit 0 */
168     /* Peripheral clock enable */
169     __HAL_RCC_USART1_CLK_ENABLE();
170 
171     __HAL_RCC_GPIOC_CLK_ENABLE();
172     /**USART1 GPIO Configuration
173     PC4     ------> USART1_TX
174     PC5     ------> USART1_RX
175     */
176     GPIO_InitStruct.Pin = GPIO_PIN_4|GPIO_PIN_5;
177     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
178     GPIO_InitStruct.Pull = GPIO_NOPULL;
179     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
180     GPIO_InitStruct.Alternate = GPIO_AF7_USART1;
181     HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
182 
183   /* USER CODE BEGIN USART1_MspInit 1 */
184 
185   /* USER CODE END USART1_MspInit 1 */
186   }
187 
188   if(huart->Instance==USART2)
189   {
190   /* USER CODE BEGIN USART2_MspInit 0 */
191 
192   /* USER CODE END USART2_MspInit 0 */
193     /* Peripheral clock enable */
194     __HAL_RCC_USART2_CLK_ENABLE();
195 
196     __HAL_RCC_GPIOA_CLK_ENABLE();
197     /**USART2 GPIO Configuration
198     PA2     ------> USART2_TX
199     PA3     ------> USART2_RX
200     */
201     GPIO_InitStruct.Pin = GPIO_PIN_2|GPIO_PIN_3;
202     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
203     GPIO_InitStruct.Pull = GPIO_NOPULL;
204     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
205     GPIO_InitStruct.Alternate = GPIO_AF7_USART2;
206     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
207 
208   /* USER CODE BEGIN USART2_MspInit 1 */
209 
210   /* USER CODE END USART2_MspInit 1 */
211   }
212 
213   if(huart->Instance==USART3)
214   {
215   /* USER CODE BEGIN USART3_MspInit 0 */
216 
217   /* USER CODE END USART3_MspInit 0 */
218     /* Peripheral clock enable */
219     __HAL_RCC_USART3_CLK_ENABLE();
220 
221     __HAL_RCC_GPIOB_CLK_ENABLE();
222     /**USART3 GPIO Configuration
223     PB10     ------> USART2_TX
224     PB11     ------> USART2_RX
225     */
226     GPIO_InitStruct.Pin = GPIO_PIN_10|GPIO_PIN_11;
227     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
228     GPIO_InitStruct.Pull = GPIO_NOPULL;
229     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
230     GPIO_InitStruct.Alternate = GPIO_AF7_USART3;
231     HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
232 
233   /* USER CODE BEGIN USART3_MspInit 1 */
234 
235   /* USER CODE END USART3_MspInit 1 */
236   }
237 }
238 
239 /**
240 * @brief UART MSP De-Initialization
241 * This function freeze the hardware resources used in this example
242 * @param huart: UART handle pointer
243 * @retval None
244 */
245 
HAL_UART_MspDeInit(UART_HandleTypeDef * huart)246 void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
247 {
248   if(huart->Instance==USART1)
249   {
250   /* USER CODE BEGIN USART1_MspDeInit 0 */
251 
252   /* USER CODE END USART1_MspDeInit 0 */
253     /* Peripheral clock disable */
254     __HAL_RCC_USART1_CLK_DISABLE();
255 
256     /**USART1 GPIO Configuration
257     PC4     ------> USART1_TX
258     PC5     ------> USART1_RX
259     */
260     HAL_GPIO_DeInit(GPIOC, GPIO_PIN_4|GPIO_PIN_5);
261 
262   /* USER CODE BEGIN USART1_MspDeInit 1 */
263 
264   /* USER CODE END USART1_MspDeInit 1 */
265   }
266   if(huart->Instance==USART2)
267   {
268   /* USER CODE BEGIN USART2_MspDeInit 0 */
269 
270   /* USER CODE END USART2_MspDeInit 0 */
271     /* Peripheral clock disable */
272     __HAL_RCC_USART2_CLK_DISABLE();
273 
274     /**USART2 GPIO Configuration
275     PA2     ------> USART2_TX
276     PA3     ------> USART2_RX
277     */
278     HAL_GPIO_DeInit(GPIOA, GPIO_PIN_2|GPIO_PIN_3);
279 
280   /* USER CODE BEGIN USART2_MspDeInit 1 */
281 
282   /* USER CODE END USART2_MspDeInit 1 */
283   }
284   if(huart->Instance==USART3)
285   {
286   /* USER CODE BEGIN USART3_MspDeInit 0 */
287 
288   /* USER CODE END USART3_MspDeInit 0 */
289     /* Peripheral clock disable */
290     __HAL_RCC_USART3_CLK_DISABLE();
291 
292     /**USART1 GPIO Configuration
293     PB10     ------> USART3_TX
294     PB11     ------> USART3_RX
295     */
296     HAL_GPIO_DeInit(GPIOB, GPIO_PIN_10|GPIO_PIN_11);
297 
298   /* USER CODE BEGIN USART3_MspDeInit 1 */
299 
300   /* USER CODE END USART3_MspDeInit 1 */
301   }
302 
303 }
304 
305 /* USER CODE BEGIN 1 */
306 
307 /* USER CODE END 1 */
308 
309 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
310