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 SPI MSP Initialization
167 * This function configures the hardware resources used in this example
168 * @param hspi: SPI handle pointer
169 * @retval None
170 */
HAL_SPI_MspInit(SPI_HandleTypeDef * hspi)171 void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi)
172 {
173   GPIO_InitTypeDef GPIO_InitStruct = {0};
174   if(hspi->Instance==SPI1)
175   {
176   /* USER CODE BEGIN SPI1_MspInit 0 */
177 
178   /* USER CODE END SPI1_MspInit 0 */
179     /* Peripheral clock enable */
180     __HAL_RCC_SPI1_CLK_ENABLE();
181 
182     __HAL_RCC_GPIOA_CLK_ENABLE();
183     /**SPI1 GPIO Configuration
184     PA5     ------> SPI1_SCK
185     PA6     ------> SPI1_MISO
186     PA7     ------> SPI1_MOSI
187     */
188     GPIO_InitStruct.Pin = GPIO_PIN_5|GPIO_PIN_7;
189     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
190     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
191     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
192 
193     GPIO_InitStruct.Pin = GPIO_PIN_6;
194     GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
195     GPIO_InitStruct.Pull = GPIO_NOPULL;
196     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
197 
198   /* USER CODE BEGIN SPI1_MspInit 1 */
199 
200   /* USER CODE END SPI1_MspInit 1 */
201   }
202   else if(hspi->Instance==SPI2)
203   {
204   /* USER CODE BEGIN SPI2_MspInit 0 */
205 
206   /* USER CODE END SPI2_MspInit 0 */
207     /* Peripheral clock enable */
208     __HAL_RCC_SPI2_CLK_ENABLE();
209 
210     __HAL_RCC_GPIOB_CLK_ENABLE();
211     /**SPI2 GPIO Configuration
212     PB13     ------> SPI2_SCK
213     PB14     ------> SPI2_MISO
214     PB15     ------> SPI2_MOSI
215     */
216     GPIO_InitStruct.Pin = GPIO_PIN_13|GPIO_PIN_15;
217     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
218     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
219     HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
220 
221     GPIO_InitStruct.Pin = GPIO_PIN_14;
222     GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
223     GPIO_InitStruct.Pull = GPIO_NOPULL;
224     HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
225 
226   /* USER CODE BEGIN SPI2_MspInit 1 */
227 
228   /* USER CODE END SPI2_MspInit 1 */
229   }
230   else if(hspi->Instance==SPI3)
231   {
232   /* USER CODE BEGIN SPI3_MspInit 0 */
233 
234   /* USER CODE END SPI3_MspInit 0 */
235     /* Peripheral clock enable */
236     __HAL_RCC_SPI3_CLK_ENABLE();
237 
238     __HAL_RCC_GPIOB_CLK_ENABLE();
239     /**SPI3 GPIO Configuration
240     PB3     ------> SPI3_SCK
241     PB4     ------> SPI3_MISO
242     PB5     ------> SPI3_MOSI
243     */
244     GPIO_InitStruct.Pin = GPIO_PIN_3|GPIO_PIN_5;
245     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
246     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
247     HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
248 
249     GPIO_InitStruct.Pin = GPIO_PIN_4;
250     GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
251     GPIO_InitStruct.Pull = GPIO_NOPULL;
252     HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
253 
254   /* USER CODE BEGIN SPI3_MspInit 1 */
255 
256   /* USER CODE END SPI3_MspInit 1 */
257   }
258 
259 }
260 
261 /**
262 * @brief SPI MSP De-Initialization
263 * This function freeze the hardware resources used in this example
264 * @param hspi: SPI handle pointer
265 * @retval None
266 */
HAL_SPI_MspDeInit(SPI_HandleTypeDef * hspi)267 void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi)
268 {
269   if(hspi->Instance==SPI1)
270   {
271   /* USER CODE BEGIN SPI1_MspDeInit 0 */
272 
273   /* USER CODE END SPI1_MspDeInit 0 */
274     /* Peripheral clock disable */
275     __HAL_RCC_SPI1_CLK_DISABLE();
276 
277     /**SPI1 GPIO Configuration
278     PA5     ------> SPI1_SCK
279     PA6     ------> SPI1_MISO
280     PA7     ------> SPI1_MOSI
281     */
282     HAL_GPIO_DeInit(GPIOA, GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7);
283 
284   /* USER CODE BEGIN SPI1_MspDeInit 1 */
285 
286   /* USER CODE END SPI1_MspDeInit 1 */
287   }
288   else if(hspi->Instance==SPI2)
289   {
290   /* USER CODE BEGIN SPI2_MspDeInit 0 */
291 
292   /* USER CODE END SPI2_MspDeInit 0 */
293     /* Peripheral clock disable */
294     __HAL_RCC_SPI2_CLK_DISABLE();
295 
296     /**SPI2 GPIO Configuration
297     PB13     ------> SPI2_SCK
298     PB14     ------> SPI2_MISO
299     PB15     ------> SPI2_MOSI
300     */
301     HAL_GPIO_DeInit(GPIOB, GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15);
302 
303   /* USER CODE BEGIN SPI2_MspDeInit 1 */
304 
305   /* USER CODE END SPI2_MspDeInit 1 */
306   }
307   else if(hspi->Instance==SPI3)
308   {
309   /* USER CODE BEGIN SPI3_MspDeInit 0 */
310 
311   /* USER CODE END SPI3_MspDeInit 0 */
312     /* Peripheral clock disable */
313     __HAL_RCC_SPI3_CLK_DISABLE();
314 
315     /**SPI3 GPIO Configuration
316     PB3     ------> SPI3_SCK
317     PB4     ------> SPI3_MISO
318     PB5     ------> SPI3_MOSI
319     */
320     HAL_GPIO_DeInit(GPIOB, GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5);
321 
322   /* USER CODE BEGIN SPI3_MspDeInit 1 */
323 
324   /* USER CODE END SPI3_MspDeInit 1 */
325   }
326 
327 }
328 
329 /**
330 * @brief UART MSP Initialization
331 * This function configures the hardware resources used in this example
332 * @param huart: UART handle pointer
333 * @retval None
334 */
HAL_UART_MspInit(UART_HandleTypeDef * huart)335 void HAL_UART_MspInit(UART_HandleTypeDef* huart)
336 {
337   GPIO_InitTypeDef GPIO_InitStruct = {0};
338   if(huart->Instance==USART1)
339   {
340   /* USER CODE BEGIN USART1_MspInit 0 */
341 
342   /* USER CODE END USART1_MspInit 0 */
343     /* Peripheral clock enable */
344     __HAL_RCC_USART1_CLK_ENABLE();
345 
346     __HAL_RCC_GPIOA_CLK_ENABLE();
347     /**USART1 GPIO Configuration
348     PA9     ------> USART1_TX
349     PA10     ------> USART1_RX
350     */
351     GPIO_InitStruct.Pin = GPIO_PIN_9;
352     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
353     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
354     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
355 
356     GPIO_InitStruct.Pin = GPIO_PIN_10;
357     GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
358     GPIO_InitStruct.Pull = GPIO_PULLUP;
359     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
360 
361   /* USER CODE BEGIN USART1_MspInit 1 */
362 
363   /* USER CODE END USART1_MspInit 1 */
364   }
365 
366 }
367 
368 /**
369 * @brief UART MSP De-Initialization
370 * This function freeze the hardware resources used in this example
371 * @param huart: UART handle pointer
372 * @retval None
373 */
HAL_UART_MspDeInit(UART_HandleTypeDef * huart)374 void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
375 {
376   if(huart->Instance==USART1)
377   {
378   /* USER CODE BEGIN USART1_MspDeInit 0 */
379 
380   /* USER CODE END USART1_MspDeInit 0 */
381     /* Peripheral clock disable */
382     __HAL_RCC_USART1_CLK_DISABLE();
383 
384     /**USART1 GPIO Configuration
385     PA9     ------> USART1_TX
386     PA10     ------> USART1_RX
387     */
388     HAL_GPIO_DeInit(GPIOA, GPIO_PIN_9|GPIO_PIN_10);
389 
390   /* USER CODE BEGIN USART1_MspDeInit 1 */
391 
392   /* USER CODE END USART1_MspDeInit 1 */
393   }
394 
395 }
396 
397 /* USER CODE BEGIN 1 */
398 
399 /* USER CODE END 1 */
400 
401 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
402