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 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