1 /* USER CODE BEGIN Header */
2 /**
3   ******************************************************************************
4   * @file         stm32f4xx_hal_msp.c
5   * @brief        This file provides code for the MSP Initialization
6   *               and de-Initialization codes.
7   ******************************************************************************
8   * @attention
9   *
10   * Copyright (c) 2023 STMicroelectronics.
11   * All rights reserved.
12   *
13   * This software is licensed under terms that can be found in the LICENSE file
14   * in the root directory of this software component.
15   * If no LICENSE file comes with this software, it is provided AS-IS.
16   *
17   ******************************************************************************
18   */
19 /* USER CODE END Header */
20 
21 /* Includes ------------------------------------------------------------------*/
22 #include "main.h"
23 /* USER CODE BEGIN Includes */
24 
25 /* USER CODE END Includes */
26 
27 /* Private typedef -----------------------------------------------------------*/
28 /* USER CODE BEGIN TD */
29 
30 /* USER CODE END TD */
31 
32 /* Private define ------------------------------------------------------------*/
33 /* USER CODE BEGIN Define */
34 
35 /* USER CODE END Define */
36 
37 /* Private macro -------------------------------------------------------------*/
38 /* USER CODE BEGIN Macro */
39 
40 /* USER CODE END Macro */
41 
42 /* Private variables ---------------------------------------------------------*/
43 /* USER CODE BEGIN PV */
44 
45 /* USER CODE END PV */
46 
47 /* Private function prototypes -----------------------------------------------*/
48 /* USER CODE BEGIN PFP */
49 
50 /* USER CODE END PFP */
51 
52 /* External functions --------------------------------------------------------*/
53 /* USER CODE BEGIN ExternalFunctions */
54 
55 /* USER CODE END ExternalFunctions */
56 
57 /* USER CODE BEGIN 0 */
58 
59 /* USER CODE END 0 */
60 
61 void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim);
62                                         /**
63   * Initializes the Global MSP.
64   */
HAL_MspInit(void)65 void HAL_MspInit(void)
66 {
67   /* USER CODE BEGIN MspInit 0 */
68 
69   /* USER CODE END MspInit 0 */
70 
71   __HAL_RCC_SYSCFG_CLK_ENABLE();
72   __HAL_RCC_PWR_CLK_ENABLE();
73 
74   /* System interrupt init*/
75 
76   /* USER CODE BEGIN MspInit 1 */
77 
78   /* USER CODE END MspInit 1 */
79 }
80 
81 /**
82 * @brief ADC MSP Initialization
83 * This function configures the hardware resources used in this example
84 * @param hadc: ADC handle pointer
85 * @retval None
86 */
HAL_ADC_MspInit(ADC_HandleTypeDef * hadc)87 void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc)
88 {
89   GPIO_InitTypeDef GPIO_InitStruct = {0};
90   if(hadc->Instance==ADC1)
91   {
92   /* USER CODE BEGIN ADC1_MspInit 0 */
93 
94   /* USER CODE END ADC1_MspInit 0 */
95     /* Peripheral clock enable */
96     __HAL_RCC_ADC1_CLK_ENABLE();
97 
98     __HAL_RCC_GPIOA_CLK_ENABLE();
99     __HAL_RCC_GPIOB_CLK_ENABLE();
100     /**ADC1 GPIO Configuration
101     PA0-WKUP     ------> ADC1_IN0
102     PA1     ------> ADC1_IN1
103     PA4     ------> ADC1_IN4
104     PA5     ------> ADC1_IN5
105     PA6     ------> ADC1_IN6
106     PA7     ------> ADC1_IN7
107     PB0     ------> ADC1_IN8
108     PB1     ------> ADC1_IN9
109     */
110     GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_4|GPIO_PIN_5
111                           |GPIO_PIN_6|GPIO_PIN_7;
112     GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
113     GPIO_InitStruct.Pull = GPIO_NOPULL;
114     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
115 
116     GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1;
117     GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
118     GPIO_InitStruct.Pull = GPIO_NOPULL;
119     HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
120 
121   /* USER CODE BEGIN ADC1_MspInit 1 */
122 
123   /* USER CODE END ADC1_MspInit 1 */
124   }
125 
126 }
127 
128 /**
129 * @brief ADC MSP De-Initialization
130 * This function freeze the hardware resources used in this example
131 * @param hadc: ADC handle pointer
132 * @retval None
133 */
HAL_ADC_MspDeInit(ADC_HandleTypeDef * hadc)134 void HAL_ADC_MspDeInit(ADC_HandleTypeDef* hadc)
135 {
136   if(hadc->Instance==ADC1)
137   {
138   /* USER CODE BEGIN ADC1_MspDeInit 0 */
139 
140   /* USER CODE END ADC1_MspDeInit 0 */
141     /* Peripheral clock disable */
142     __HAL_RCC_ADC1_CLK_DISABLE();
143 
144     /**ADC1 GPIO Configuration
145     PA0-WKUP     ------> ADC1_IN0
146     PA1     ------> ADC1_IN1
147     PA4     ------> ADC1_IN4
148     PA5     ------> ADC1_IN5
149     PA6     ------> ADC1_IN6
150     PA7     ------> ADC1_IN7
151     PB0     ------> ADC1_IN8
152     PB1     ------> ADC1_IN9
153     */
154     HAL_GPIO_DeInit(GPIOA, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_4|GPIO_PIN_5
155                           |GPIO_PIN_6|GPIO_PIN_7);
156 
157     HAL_GPIO_DeInit(GPIOB, GPIO_PIN_0|GPIO_PIN_1);
158 
159   /* USER CODE BEGIN ADC1_MspDeInit 1 */
160 
161   /* USER CODE END ADC1_MspDeInit 1 */
162   }
163 
164 }
165 
166 /**
167 * @brief TIM_Base MSP Initialization
168 * This function configures the hardware resources used in this example
169 * @param htim_base: TIM_Base handle pointer
170 * @retval None
171 */
HAL_TIM_Base_MspInit(TIM_HandleTypeDef * htim_base)172 void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
173 {
174   if(htim_base->Instance==TIM1)
175   {
176   /* USER CODE BEGIN TIM1_MspInit 0 */
177 
178   /* USER CODE END TIM1_MspInit 0 */
179     /* Peripheral clock enable */
180     __HAL_RCC_TIM1_CLK_ENABLE();
181   /* USER CODE BEGIN TIM1_MspInit 1 */
182 
183   /* USER CODE END TIM1_MspInit 1 */
184   }
185   else if(htim_base->Instance==TIM4)
186   {
187   /* USER CODE BEGIN TIM4_MspInit 0 */
188 
189   /* USER CODE END TIM4_MspInit 0 */
190     /* Peripheral clock enable */
191     __HAL_RCC_TIM4_CLK_ENABLE();
192   /* USER CODE BEGIN TIM4_MspInit 1 */
193 
194   /* USER CODE END TIM4_MspInit 1 */
195   }
196 
197 }
198 
HAL_TIM_MspPostInit(TIM_HandleTypeDef * htim)199 void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim)
200 {
201   GPIO_InitTypeDef GPIO_InitStruct = {0};
202   if(htim->Instance==TIM1)
203   {
204   /* USER CODE BEGIN TIM1_MspPostInit 0 */
205 
206   /* USER CODE END TIM1_MspPostInit 0 */
207     __HAL_RCC_GPIOB_CLK_ENABLE();
208     /**TIM1 GPIO Configuration
209     PB13     ------> TIM1_CH1N
210     PB14     ------> TIM1_CH2N
211     PB15     ------> TIM1_CH3N
212     */
213     GPIO_InitStruct.Pin = GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15;
214     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
215     GPIO_InitStruct.Pull = GPIO_NOPULL;
216     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
217     GPIO_InitStruct.Alternate = GPIO_AF1_TIM1;
218     HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
219 
220   /* USER CODE BEGIN TIM1_MspPostInit 1 */
221 
222   /* USER CODE END TIM1_MspPostInit 1 */
223   }
224   else if(htim->Instance==TIM4)
225   {
226   /* USER CODE BEGIN TIM4_MspPostInit 0 */
227 
228   /* USER CODE END TIM4_MspPostInit 0 */
229 
230     __HAL_RCC_GPIOB_CLK_ENABLE();
231     /**TIM4 GPIO Configuration
232     PB6     ------> TIM4_CH1
233     PB7     ------> TIM4_CH2
234     PB8     ------> TIM4_CH3
235     PB9     ------> TIM4_CH4
236     */
237     GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9;
238     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
239     GPIO_InitStruct.Pull = GPIO_NOPULL;
240     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
241     GPIO_InitStruct.Alternate = GPIO_AF2_TIM4;
242     HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
243 
244   /* USER CODE BEGIN TIM4_MspPostInit 1 */
245 
246   /* USER CODE END TIM4_MspPostInit 1 */
247   }
248 
249 }
250 /**
251 * @brief TIM_Base MSP De-Initialization
252 * This function freeze the hardware resources used in this example
253 * @param htim_base: TIM_Base handle pointer
254 * @retval None
255 */
HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef * htim_base)256 void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base)
257 {
258   if(htim_base->Instance==TIM1)
259   {
260   /* USER CODE BEGIN TIM1_MspDeInit 0 */
261 
262   /* USER CODE END TIM1_MspDeInit 0 */
263     /* Peripheral clock disable */
264     __HAL_RCC_TIM1_CLK_DISABLE();
265   /* USER CODE BEGIN TIM1_MspDeInit 1 */
266 
267   /* USER CODE END TIM1_MspDeInit 1 */
268   }
269   else if(htim_base->Instance==TIM4)
270   {
271   /* USER CODE BEGIN TIM4_MspDeInit 0 */
272 
273   /* USER CODE END TIM4_MspDeInit 0 */
274     /* Peripheral clock disable */
275     __HAL_RCC_TIM4_CLK_DISABLE();
276   /* USER CODE BEGIN TIM4_MspDeInit 1 */
277 
278   /* USER CODE END TIM4_MspDeInit 1 */
279   }
280 
281 }
282 
283 /**
284 * @brief UART MSP Initialization
285 * This function configures the hardware resources used in this example
286 * @param huart: UART handle pointer
287 * @retval None
288 */
HAL_UART_MspInit(UART_HandleTypeDef * huart)289 void HAL_UART_MspInit(UART_HandleTypeDef* huart)
290 {
291   GPIO_InitTypeDef GPIO_InitStruct = {0};
292   if(huart->Instance==USART1)
293   {
294   /* USER CODE BEGIN USART1_MspInit 0 */
295 
296   /* USER CODE END USART1_MspInit 0 */
297     /* Peripheral clock enable */
298     __HAL_RCC_USART1_CLK_ENABLE();
299 
300     __HAL_RCC_GPIOA_CLK_ENABLE();
301     /**USART1 GPIO Configuration
302     PA9     ------> USART1_TX
303     PA10     ------> USART1_RX
304     */
305     GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_10;
306     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
307     GPIO_InitStruct.Pull = GPIO_NOPULL;
308     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
309     GPIO_InitStruct.Alternate = GPIO_AF7_USART1;
310     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
311 
312   /* USER CODE BEGIN USART1_MspInit 1 */
313 
314   /* USER CODE END USART1_MspInit 1 */
315   }
316 
317 }
318 
319 /**
320 * @brief UART MSP De-Initialization
321 * This function freeze the hardware resources used in this example
322 * @param huart: UART handle pointer
323 * @retval None
324 */
HAL_UART_MspDeInit(UART_HandleTypeDef * huart)325 void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
326 {
327   if(huart->Instance==USART1)
328   {
329   /* USER CODE BEGIN USART1_MspDeInit 0 */
330 
331   /* USER CODE END USART1_MspDeInit 0 */
332     /* Peripheral clock disable */
333     __HAL_RCC_USART1_CLK_DISABLE();
334 
335     /**USART1 GPIO Configuration
336     PA9     ------> USART1_TX
337     PA10     ------> USART1_RX
338     */
339     HAL_GPIO_DeInit(GPIOA, GPIO_PIN_9|GPIO_PIN_10);
340 
341   /* USER CODE BEGIN USART1_MspDeInit 1 */
342 
343   /* USER CODE END USART1_MspDeInit 1 */
344   }
345 
346 }
347 
348 /* USER CODE BEGIN 1 */
349 
350 /* USER CODE END 1 */
351