1 /* USER CODE BEGIN Header */
2 /**
3 ******************************************************************************
4 * File Name : stm32f1xx_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) 2019 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_AFIO_CLK_ENABLE();
71 __HAL_RCC_PWR_CLK_ENABLE();
72
73 /* System interrupt init*/
74
75 /** NOJTAG: JTAG-DP Disabled and SW-DP Enabled
76 */
77 __HAL_AFIO_REMAP_SWJ_NOJTAG();
78
79 /* USER CODE BEGIN MspInit 1 */
80
81 /* USER CODE END MspInit 1 */
82 }
83
84 /**
85 * @brief SD MSP Initialization
86 * This function configures the hardware resources used in this example
87 * @param hsd: SD handle pointer
88 * @retval None
89 */
HAL_SD_MspInit(SD_HandleTypeDef * hsd)90 void HAL_SD_MspInit(SD_HandleTypeDef* hsd)
91 {
92 GPIO_InitTypeDef GPIO_InitStruct = {0};
93 if(hsd->Instance==SDIO)
94 {
95 /* USER CODE BEGIN SDIO_MspInit 0 */
96
97 /* USER CODE END SDIO_MspInit 0 */
98 /* Peripheral clock enable */
99 __HAL_RCC_SDIO_CLK_ENABLE();
100
101 __HAL_RCC_GPIOC_CLK_ENABLE();
102 __HAL_RCC_GPIOD_CLK_ENABLE();
103 /**SDIO GPIO Configuration
104 PC8 ------> SDIO_D0
105 PC9 ------> SDIO_D1
106 PC10 ------> SDIO_D2
107 PC11 ------> SDIO_D3
108 PC12 ------> SDIO_CK
109 PD2 ------> SDIO_CMD
110 */
111 GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11
112 |GPIO_PIN_12;
113 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
114 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
115 HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
116
117 GPIO_InitStruct.Pin = GPIO_PIN_2;
118 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
119 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
120 HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
121
122 /* USER CODE BEGIN SDIO_MspInit 1 */
123
124 /* USER CODE END SDIO_MspInit 1 */
125 }
126
127 }
128
129 /**
130 * @brief SD MSP De-Initialization
131 * This function freeze the hardware resources used in this example
132 * @param hsd: SD handle pointer
133 * @retval None
134 */
HAL_SD_MspDeInit(SD_HandleTypeDef * hsd)135 void HAL_SD_MspDeInit(SD_HandleTypeDef* hsd)
136 {
137 if(hsd->Instance==SDIO)
138 {
139 /* USER CODE BEGIN SDIO_MspDeInit 0 */
140
141 /* USER CODE END SDIO_MspDeInit 0 */
142 /* Peripheral clock disable */
143 __HAL_RCC_SDIO_CLK_DISABLE();
144
145 /**SDIO GPIO Configuration
146 PC8 ------> SDIO_D0
147 PC9 ------> SDIO_D1
148 PC10 ------> SDIO_D2
149 PC11 ------> SDIO_D3
150 PC12 ------> SDIO_CK
151 PD2 ------> SDIO_CMD
152 */
153 HAL_GPIO_DeInit(GPIOC, GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11
154 |GPIO_PIN_12);
155
156 HAL_GPIO_DeInit(GPIOD, GPIO_PIN_2);
157
158 /* USER CODE BEGIN SDIO_MspDeInit 1 */
159
160 /* USER CODE END SDIO_MspDeInit 1 */
161 }
162
163 }
164
165 /**
166 * @brief TIM_Encoder MSP Initialization
167 * This function configures the hardware resources used in this example
168 * @param htim_encoder: TIM_Encoder handle pointer
169 * @retval None
170 */
HAL_TIM_Encoder_MspInit(TIM_HandleTypeDef * htim_encoder)171 void HAL_TIM_Encoder_MspInit(TIM_HandleTypeDef* htim_encoder)
172 {
173 GPIO_InitTypeDef GPIO_InitStruct = {0};
174 if(htim_encoder->Instance==TIM3)
175 {
176 /* USER CODE BEGIN TIM3_MspInit 0 */
177
178 /* USER CODE END TIM3_MspInit 0 */
179 /* Peripheral clock enable */
180 __HAL_RCC_TIM3_CLK_ENABLE();
181
182 __HAL_RCC_GPIOC_CLK_ENABLE();
183 /**TIM3 GPIO Configuration
184 PC6 ------> TIM3_CH1
185 PC7 ------> TIM3_CH2
186 */
187 GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_7;
188 GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
189 GPIO_InitStruct.Pull = GPIO_NOPULL;
190 HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
191
192 __HAL_AFIO_REMAP_TIM3_ENABLE();
193
194 /* USER CODE BEGIN TIM3_MspInit 1 */
195
196 /* USER CODE END TIM3_MspInit 1 */
197 }
198
199 }
200
201 /**
202 * @brief TIM_Encoder MSP De-Initialization
203 * This function freeze the hardware resources used in this example
204 * @param htim_encoder: TIM_Encoder handle pointer
205 * @retval None
206 */
HAL_TIM_Encoder_MspDeInit(TIM_HandleTypeDef * htim_encoder)207 void HAL_TIM_Encoder_MspDeInit(TIM_HandleTypeDef* htim_encoder)
208 {
209 if(htim_encoder->Instance==TIM3)
210 {
211 /* USER CODE BEGIN TIM3_MspDeInit 0 */
212
213 /* USER CODE END TIM3_MspDeInit 0 */
214 /* Peripheral clock disable */
215 __HAL_RCC_TIM3_CLK_DISABLE();
216
217 /**TIM3 GPIO Configuration
218 PC6 ------> TIM3_CH1
219 PC7 ------> TIM3_CH2
220 */
221 HAL_GPIO_DeInit(GPIOC, GPIO_PIN_6|GPIO_PIN_7);
222
223 /* USER CODE BEGIN TIM3_MspDeInit 1 */
224
225 /* USER CODE END TIM3_MspDeInit 1 */
226 }
227
228 }
229
230 /**
231 * @brief UART MSP Initialization
232 * This function configures the hardware resources used in this example
233 * @param huart: UART handle pointer
234 * @retval None
235 */
HAL_UART_MspInit(UART_HandleTypeDef * huart)236 void HAL_UART_MspInit(UART_HandleTypeDef* huart)
237 {
238 GPIO_InitTypeDef GPIO_InitStruct = {0};
239 if(huart->Instance==USART1)
240 {
241 /* USER CODE BEGIN USART1_MspInit 0 */
242
243 /* USER CODE END USART1_MspInit 0 */
244 /* Peripheral clock enable */
245 __HAL_RCC_USART1_CLK_ENABLE();
246
247 __HAL_RCC_GPIOA_CLK_ENABLE();
248 /**USART1 GPIO Configuration
249 PA9 ------> USART1_TX
250 PA10 ------> USART1_RX
251 */
252 GPIO_InitStruct.Pin = GPIO_PIN_9;
253 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
254 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
255 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
256
257 GPIO_InitStruct.Pin = GPIO_PIN_10;
258 GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
259 GPIO_InitStruct.Pull = GPIO_PULLUP;
260 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
261
262 /* USER CODE BEGIN USART1_MspInit 1 */
263
264 /* USER CODE END USART1_MspInit 1 */
265 }
266
267 }
268
269 /**
270 * @brief UART MSP De-Initialization
271 * This function freeze the hardware resources used in this example
272 * @param huart: UART handle pointer
273 * @retval None
274 */
HAL_UART_MspDeInit(UART_HandleTypeDef * huart)275 void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
276 {
277 if(huart->Instance==USART1)
278 {
279 /* USER CODE BEGIN USART1_MspDeInit 0 */
280
281 /* USER CODE END USART1_MspDeInit 0 */
282 /* Peripheral clock disable */
283 __HAL_RCC_USART1_CLK_DISABLE();
284
285 /**USART1 GPIO Configuration
286 PA9 ------> USART1_TX
287 PA10 ------> USART1_RX
288 */
289 HAL_GPIO_DeInit(GPIOA, GPIO_PIN_9|GPIO_PIN_10);
290
291 /* USER CODE BEGIN USART1_MspDeInit 1 */
292
293 /* USER CODE END USART1_MspDeInit 1 */
294 }
295
296 }
297
298 static uint32_t FSMC_Initialized = 0;
299
HAL_FSMC_MspInit(void)300 static void HAL_FSMC_MspInit(void){
301 /* USER CODE BEGIN FSMC_MspInit 0 */
302
303 /* USER CODE END FSMC_MspInit 0 */
304 GPIO_InitTypeDef GPIO_InitStruct ={0};
305 if (FSMC_Initialized) {
306 return;
307 }
308 FSMC_Initialized = 1;
309
310 /* Peripheral clock enable */
311 __HAL_RCC_FSMC_CLK_ENABLE();
312
313 /** FSMC GPIO Configuration
314 PF0 ------> FSMC_A0
315 PF1 ------> FSMC_A1
316 PF2 ------> FSMC_A2
317 PF3 ------> FSMC_A3
318 PF4 ------> FSMC_A4
319 PF5 ------> FSMC_A5
320 PF12 ------> FSMC_A6
321 PF13 ------> FSMC_A7
322 PF14 ------> FSMC_A8
323 PF15 ------> FSMC_A9
324 PG0 ------> FSMC_A10
325 PG1 ------> FSMC_A11
326 PE7 ------> FSMC_D4
327 PE8 ------> FSMC_D5
328 PE9 ------> FSMC_D6
329 PE10 ------> FSMC_D7
330 PE11 ------> FSMC_D8
331 PE12 ------> FSMC_D9
332 PE13 ------> FSMC_D10
333 PE14 ------> FSMC_D11
334 PE15 ------> FSMC_D12
335 PD8 ------> FSMC_D13
336 PD9 ------> FSMC_D14
337 PD10 ------> FSMC_D15
338 PD11 ------> FSMC_A16
339 PD12 ------> FSMC_A17
340 PD13 ------> FSMC_A18
341 PD14 ------> FSMC_D0
342 PD15 ------> FSMC_D1
343 PG2 ------> FSMC_A12
344 PG3 ------> FSMC_A13
345 PG4 ------> FSMC_A14
346 PG5 ------> FSMC_A15
347 PD0 ------> FSMC_D2
348 PD1 ------> FSMC_D3
349 PD4 ------> FSMC_NOE
350 PD5 ------> FSMC_NWE
351 PG10 ------> FSMC_NE3
352 PE0 ------> FSMC_NBL0
353 PE1 ------> FSMC_NBL1
354 */
355 GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3
356 |GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_12|GPIO_PIN_13
357 |GPIO_PIN_14|GPIO_PIN_15;
358 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
359 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
360 HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
361
362 GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3
363 |GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_10;
364 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
365 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
366 HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
367
368 GPIO_InitStruct.Pin = GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10
369 |GPIO_PIN_11|GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14
370 |GPIO_PIN_15|GPIO_PIN_0|GPIO_PIN_1;
371 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
372 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
373 HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
374
375 GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11
376 |GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15
377 |GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_4|GPIO_PIN_5;
378 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
379 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
380 HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
381
382 /* USER CODE BEGIN FSMC_MspInit 1 */
383
384 /* USER CODE END FSMC_MspInit 1 */
385 }
386
HAL_SRAM_MspInit(SRAM_HandleTypeDef * hsram)387 void HAL_SRAM_MspInit(SRAM_HandleTypeDef* hsram){
388 /* USER CODE BEGIN SRAM_MspInit 0 */
389
390 /* USER CODE END SRAM_MspInit 0 */
391 HAL_FSMC_MspInit();
392 /* USER CODE BEGIN SRAM_MspInit 1 */
393
394 /* USER CODE END SRAM_MspInit 1 */
395 }
396
397 static uint32_t FSMC_DeInitialized = 0;
398
HAL_FSMC_MspDeInit(void)399 static void HAL_FSMC_MspDeInit(void){
400 /* USER CODE BEGIN FSMC_MspDeInit 0 */
401
402 /* USER CODE END FSMC_MspDeInit 0 */
403 if (FSMC_DeInitialized) {
404 return;
405 }
406 FSMC_DeInitialized = 1;
407 /* Peripheral clock enable */
408 __HAL_RCC_FSMC_CLK_DISABLE();
409
410 /** FSMC GPIO Configuration
411 PF0 ------> FSMC_A0
412 PF1 ------> FSMC_A1
413 PF2 ------> FSMC_A2
414 PF3 ------> FSMC_A3
415 PF4 ------> FSMC_A4
416 PF5 ------> FSMC_A5
417 PF12 ------> FSMC_A6
418 PF13 ------> FSMC_A7
419 PF14 ------> FSMC_A8
420 PF15 ------> FSMC_A9
421 PG0 ------> FSMC_A10
422 PG1 ------> FSMC_A11
423 PE7 ------> FSMC_D4
424 PE8 ------> FSMC_D5
425 PE9 ------> FSMC_D6
426 PE10 ------> FSMC_D7
427 PE11 ------> FSMC_D8
428 PE12 ------> FSMC_D9
429 PE13 ------> FSMC_D10
430 PE14 ------> FSMC_D11
431 PE15 ------> FSMC_D12
432 PD8 ------> FSMC_D13
433 PD9 ------> FSMC_D14
434 PD10 ------> FSMC_D15
435 PD11 ------> FSMC_A16
436 PD12 ------> FSMC_A17
437 PD13 ------> FSMC_A18
438 PD14 ------> FSMC_D0
439 PD15 ------> FSMC_D1
440 PG2 ------> FSMC_A12
441 PG3 ------> FSMC_A13
442 PG4 ------> FSMC_A14
443 PG5 ------> FSMC_A15
444 PD0 ------> FSMC_D2
445 PD1 ------> FSMC_D3
446 PD4 ------> FSMC_NOE
447 PD5 ------> FSMC_NWE
448 PG10 ------> FSMC_NE3
449 PE0 ------> FSMC_NBL0
450 PE1 ------> FSMC_NBL1
451 */
452 HAL_GPIO_DeInit(GPIOF, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3
453 |GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_12|GPIO_PIN_13
454 |GPIO_PIN_14|GPIO_PIN_15);
455
456 HAL_GPIO_DeInit(GPIOG, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3
457 |GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_10);
458
459 HAL_GPIO_DeInit(GPIOE, GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10
460 |GPIO_PIN_11|GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14
461 |GPIO_PIN_15|GPIO_PIN_0|GPIO_PIN_1);
462
463 HAL_GPIO_DeInit(GPIOD, GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11
464 |GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15
465 |GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_4|GPIO_PIN_5);
466
467 /* USER CODE BEGIN FSMC_MspDeInit 1 */
468
469 /* USER CODE END FSMC_MspDeInit 1 */
470 }
471
HAL_SRAM_MspDeInit(SRAM_HandleTypeDef * hsram)472 void HAL_SRAM_MspDeInit(SRAM_HandleTypeDef* hsram){
473 /* USER CODE BEGIN SRAM_MspDeInit 0 */
474
475 /* USER CODE END SRAM_MspDeInit 0 */
476 HAL_FSMC_MspDeInit();
477 /* USER CODE BEGIN SRAM_MspDeInit 1 */
478
479 /* USER CODE END SRAM_MspDeInit 1 */
480 }
481
482 /* USER CODE BEGIN 1 */
483
484 /* USER CODE END 1 */
485
486 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
487