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) 2024 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   * Initializes the Global MSP.
62   */
HAL_MspInit(void)63 void HAL_MspInit(void)
64 {
65 
66   /* USER CODE BEGIN MspInit 0 */
67 
68   /* USER CODE END MspInit 0 */
69 
70   __HAL_RCC_SYSCFG_CLK_ENABLE();
71   __HAL_RCC_PWR_CLK_ENABLE();
72 
73   /* System interrupt init*/
74 
75   /* USER CODE BEGIN MspInit 1 */
76 
77   /* USER CODE END MspInit 1 */
78 }
79 
80 /**
81 * @brief SD MSP Initialization
82 * This function configures the hardware resources used in this example
83 * @param hsd: SD handle pointer
84 * @retval None
85 */
HAL_SD_MspInit(SD_HandleTypeDef * hsd)86 void HAL_SD_MspInit(SD_HandleTypeDef* hsd)
87 {
88   GPIO_InitTypeDef GPIO_InitStruct = {0};
89   if(hsd->Instance==SDIO)
90   {
91   /* USER CODE BEGIN SDIO_MspInit 0 */
92 
93   /* USER CODE END SDIO_MspInit 0 */
94     /* Peripheral clock enable */
95     __HAL_RCC_SDIO_CLK_ENABLE();
96 
97     __HAL_RCC_GPIOC_CLK_ENABLE();
98     __HAL_RCC_GPIOD_CLK_ENABLE();
99     /**SDIO GPIO Configuration
100     PC8     ------> SDIO_D0
101     PC9     ------> SDIO_D1
102     PC10     ------> SDIO_D2
103     PC11     ------> SDIO_D3
104     PC12     ------> SDIO_CK
105     PD2     ------> SDIO_CMD
106     */
107     GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11
108                           |GPIO_PIN_12;
109     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
110     GPIO_InitStruct.Pull = GPIO_NOPULL;
111     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
112     GPIO_InitStruct.Alternate = GPIO_AF12_SDIO;
113     HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
114 
115     GPIO_InitStruct.Pin = GPIO_PIN_2;
116     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
117     GPIO_InitStruct.Pull = GPIO_NOPULL;
118     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
119     GPIO_InitStruct.Alternate = GPIO_AF12_SDIO;
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_6|GPIO_PIN_7;
189     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
190     GPIO_InitStruct.Pull = GPIO_NOPULL;
191     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
192     GPIO_InitStruct.Alternate = GPIO_AF5_SPI1;
193     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
194 
195   /* USER CODE BEGIN SPI1_MspInit 1 */
196 
197   /* USER CODE END SPI1_MspInit 1 */
198   }
199 
200 }
201 
202 /**
203 * @brief SPI MSP De-Initialization
204 * This function freeze the hardware resources used in this example
205 * @param hspi: SPI handle pointer
206 * @retval None
207 */
HAL_SPI_MspDeInit(SPI_HandleTypeDef * hspi)208 void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi)
209 {
210   if(hspi->Instance==SPI1)
211   {
212   /* USER CODE BEGIN SPI1_MspDeInit 0 */
213 
214   /* USER CODE END SPI1_MspDeInit 0 */
215     /* Peripheral clock disable */
216     __HAL_RCC_SPI1_CLK_DISABLE();
217 
218     /**SPI1 GPIO Configuration
219     PA5     ------> SPI1_SCK
220     PA6     ------> SPI1_MISO
221     PA7     ------> SPI1_MOSI
222     */
223     HAL_GPIO_DeInit(GPIOA, GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7);
224 
225   /* USER CODE BEGIN SPI1_MspDeInit 1 */
226 
227   /* USER CODE END SPI1_MspDeInit 1 */
228   }
229 
230 }
231 
232 /**
233 * @brief UART MSP Initialization
234 * This function configures the hardware resources used in this example
235 * @param huart: UART handle pointer
236 * @retval None
237 */
HAL_UART_MspInit(UART_HandleTypeDef * huart)238 void HAL_UART_MspInit(UART_HandleTypeDef* huart)
239 {
240   GPIO_InitTypeDef GPIO_InitStruct = {0};
241   if(huart->Instance==USART1)
242   {
243   /* USER CODE BEGIN USART1_MspInit 0 */
244 
245   /* USER CODE END USART1_MspInit 0 */
246     /* Peripheral clock enable */
247     __HAL_RCC_USART1_CLK_ENABLE();
248 
249     __HAL_RCC_GPIOA_CLK_ENABLE();
250     /**USART1 GPIO Configuration
251     PA9     ------> USART1_TX
252     PA10     ------> USART1_RX
253     */
254     GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_10;
255     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
256     GPIO_InitStruct.Pull = GPIO_NOPULL;
257     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
258     GPIO_InitStruct.Alternate = GPIO_AF7_USART1;
259     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
260 
261   /* USER CODE BEGIN USART1_MspInit 1 */
262 
263   /* USER CODE END USART1_MspInit 1 */
264   }
265 
266 }
267 
268 /**
269 * @brief UART MSP De-Initialization
270 * This function freeze the hardware resources used in this example
271 * @param huart: UART handle pointer
272 * @retval None
273 */
HAL_UART_MspDeInit(UART_HandleTypeDef * huart)274 void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
275 {
276   if(huart->Instance==USART1)
277   {
278   /* USER CODE BEGIN USART1_MspDeInit 0 */
279 
280   /* USER CODE END USART1_MspDeInit 0 */
281     /* Peripheral clock disable */
282     __HAL_RCC_USART1_CLK_DISABLE();
283 
284     /**USART1 GPIO Configuration
285     PA9     ------> USART1_TX
286     PA10     ------> USART1_RX
287     */
288     HAL_GPIO_DeInit(GPIOA, GPIO_PIN_9|GPIO_PIN_10);
289 
290   /* USER CODE BEGIN USART1_MspDeInit 1 */
291 
292   /* USER CODE END USART1_MspDeInit 1 */
293   }
294 
295 }
296 
297 /* USER CODE BEGIN 1 */
298 
299 /* USER CODE END 1 */
300