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)63void 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)86void 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)135void 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)171void 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)208void 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)238void 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)274void 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