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>&copy; 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