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) 2023 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 void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim); 62 /** 63 * Initializes the Global MSP. 64 */ HAL_MspInit(void)65void HAL_MspInit(void) 66 { 67 /* USER CODE BEGIN MspInit 0 */ 68 69 /* USER CODE END MspInit 0 */ 70 71 __HAL_RCC_SYSCFG_CLK_ENABLE(); 72 __HAL_RCC_PWR_CLK_ENABLE(); 73 74 /* System interrupt init*/ 75 76 /* USER CODE BEGIN MspInit 1 */ 77 78 /* USER CODE END MspInit 1 */ 79 } 80 81 /** 82 * @brief ADC MSP Initialization 83 * This function configures the hardware resources used in this example 84 * @param hadc: ADC handle pointer 85 * @retval None 86 */ HAL_ADC_MspInit(ADC_HandleTypeDef * hadc)87void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc) 88 { 89 GPIO_InitTypeDef GPIO_InitStruct = {0}; 90 if(hadc->Instance==ADC1) 91 { 92 /* USER CODE BEGIN ADC1_MspInit 0 */ 93 94 /* USER CODE END ADC1_MspInit 0 */ 95 /* Peripheral clock enable */ 96 __HAL_RCC_ADC1_CLK_ENABLE(); 97 98 __HAL_RCC_GPIOA_CLK_ENABLE(); 99 __HAL_RCC_GPIOB_CLK_ENABLE(); 100 /**ADC1 GPIO Configuration 101 PA0-WKUP ------> ADC1_IN0 102 PA1 ------> ADC1_IN1 103 PA4 ------> ADC1_IN4 104 PA5 ------> ADC1_IN5 105 PA6 ------> ADC1_IN6 106 PA7 ------> ADC1_IN7 107 PB0 ------> ADC1_IN8 108 PB1 ------> ADC1_IN9 109 */ 110 GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_4|GPIO_PIN_5 111 |GPIO_PIN_6|GPIO_PIN_7; 112 GPIO_InitStruct.Mode = GPIO_MODE_ANALOG; 113 GPIO_InitStruct.Pull = GPIO_NOPULL; 114 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); 115 116 GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1; 117 GPIO_InitStruct.Mode = GPIO_MODE_ANALOG; 118 GPIO_InitStruct.Pull = GPIO_NOPULL; 119 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); 120 121 /* USER CODE BEGIN ADC1_MspInit 1 */ 122 123 /* USER CODE END ADC1_MspInit 1 */ 124 } 125 126 } 127 128 /** 129 * @brief ADC MSP De-Initialization 130 * This function freeze the hardware resources used in this example 131 * @param hadc: ADC handle pointer 132 * @retval None 133 */ HAL_ADC_MspDeInit(ADC_HandleTypeDef * hadc)134void HAL_ADC_MspDeInit(ADC_HandleTypeDef* hadc) 135 { 136 if(hadc->Instance==ADC1) 137 { 138 /* USER CODE BEGIN ADC1_MspDeInit 0 */ 139 140 /* USER CODE END ADC1_MspDeInit 0 */ 141 /* Peripheral clock disable */ 142 __HAL_RCC_ADC1_CLK_DISABLE(); 143 144 /**ADC1 GPIO Configuration 145 PA0-WKUP ------> ADC1_IN0 146 PA1 ------> ADC1_IN1 147 PA4 ------> ADC1_IN4 148 PA5 ------> ADC1_IN5 149 PA6 ------> ADC1_IN6 150 PA7 ------> ADC1_IN7 151 PB0 ------> ADC1_IN8 152 PB1 ------> ADC1_IN9 153 */ 154 HAL_GPIO_DeInit(GPIOA, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_4|GPIO_PIN_5 155 |GPIO_PIN_6|GPIO_PIN_7); 156 157 HAL_GPIO_DeInit(GPIOB, GPIO_PIN_0|GPIO_PIN_1); 158 159 /* USER CODE BEGIN ADC1_MspDeInit 1 */ 160 161 /* USER CODE END ADC1_MspDeInit 1 */ 162 } 163 164 } 165 166 /** 167 * @brief TIM_Base MSP Initialization 168 * This function configures the hardware resources used in this example 169 * @param htim_base: TIM_Base handle pointer 170 * @retval None 171 */ HAL_TIM_Base_MspInit(TIM_HandleTypeDef * htim_base)172void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base) 173 { 174 if(htim_base->Instance==TIM1) 175 { 176 /* USER CODE BEGIN TIM1_MspInit 0 */ 177 178 /* USER CODE END TIM1_MspInit 0 */ 179 /* Peripheral clock enable */ 180 __HAL_RCC_TIM1_CLK_ENABLE(); 181 /* USER CODE BEGIN TIM1_MspInit 1 */ 182 183 /* USER CODE END TIM1_MspInit 1 */ 184 } 185 else if(htim_base->Instance==TIM4) 186 { 187 /* USER CODE BEGIN TIM4_MspInit 0 */ 188 189 /* USER CODE END TIM4_MspInit 0 */ 190 /* Peripheral clock enable */ 191 __HAL_RCC_TIM4_CLK_ENABLE(); 192 /* USER CODE BEGIN TIM4_MspInit 1 */ 193 194 /* USER CODE END TIM4_MspInit 1 */ 195 } 196 197 } 198 HAL_TIM_MspPostInit(TIM_HandleTypeDef * htim)199void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim) 200 { 201 GPIO_InitTypeDef GPIO_InitStruct = {0}; 202 if(htim->Instance==TIM1) 203 { 204 /* USER CODE BEGIN TIM1_MspPostInit 0 */ 205 206 /* USER CODE END TIM1_MspPostInit 0 */ 207 __HAL_RCC_GPIOB_CLK_ENABLE(); 208 /**TIM1 GPIO Configuration 209 PB13 ------> TIM1_CH1N 210 PB14 ------> TIM1_CH2N 211 PB15 ------> TIM1_CH3N 212 */ 213 GPIO_InitStruct.Pin = GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15; 214 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; 215 GPIO_InitStruct.Pull = GPIO_NOPULL; 216 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; 217 GPIO_InitStruct.Alternate = GPIO_AF1_TIM1; 218 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); 219 220 /* USER CODE BEGIN TIM1_MspPostInit 1 */ 221 222 /* USER CODE END TIM1_MspPostInit 1 */ 223 } 224 else if(htim->Instance==TIM4) 225 { 226 /* USER CODE BEGIN TIM4_MspPostInit 0 */ 227 228 /* USER CODE END TIM4_MspPostInit 0 */ 229 230 __HAL_RCC_GPIOB_CLK_ENABLE(); 231 /**TIM4 GPIO Configuration 232 PB6 ------> TIM4_CH1 233 PB7 ------> TIM4_CH2 234 PB8 ------> TIM4_CH3 235 PB9 ------> TIM4_CH4 236 */ 237 GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9; 238 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; 239 GPIO_InitStruct.Pull = GPIO_NOPULL; 240 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; 241 GPIO_InitStruct.Alternate = GPIO_AF2_TIM4; 242 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); 243 244 /* USER CODE BEGIN TIM4_MspPostInit 1 */ 245 246 /* USER CODE END TIM4_MspPostInit 1 */ 247 } 248 249 } 250 /** 251 * @brief TIM_Base MSP De-Initialization 252 * This function freeze the hardware resources used in this example 253 * @param htim_base: TIM_Base handle pointer 254 * @retval None 255 */ HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef * htim_base)256void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base) 257 { 258 if(htim_base->Instance==TIM1) 259 { 260 /* USER CODE BEGIN TIM1_MspDeInit 0 */ 261 262 /* USER CODE END TIM1_MspDeInit 0 */ 263 /* Peripheral clock disable */ 264 __HAL_RCC_TIM1_CLK_DISABLE(); 265 /* USER CODE BEGIN TIM1_MspDeInit 1 */ 266 267 /* USER CODE END TIM1_MspDeInit 1 */ 268 } 269 else if(htim_base->Instance==TIM4) 270 { 271 /* USER CODE BEGIN TIM4_MspDeInit 0 */ 272 273 /* USER CODE END TIM4_MspDeInit 0 */ 274 /* Peripheral clock disable */ 275 __HAL_RCC_TIM4_CLK_DISABLE(); 276 /* USER CODE BEGIN TIM4_MspDeInit 1 */ 277 278 /* USER CODE END TIM4_MspDeInit 1 */ 279 } 280 281 } 282 283 /** 284 * @brief UART MSP Initialization 285 * This function configures the hardware resources used in this example 286 * @param huart: UART handle pointer 287 * @retval None 288 */ HAL_UART_MspInit(UART_HandleTypeDef * huart)289void HAL_UART_MspInit(UART_HandleTypeDef* huart) 290 { 291 GPIO_InitTypeDef GPIO_InitStruct = {0}; 292 if(huart->Instance==USART1) 293 { 294 /* USER CODE BEGIN USART1_MspInit 0 */ 295 296 /* USER CODE END USART1_MspInit 0 */ 297 /* Peripheral clock enable */ 298 __HAL_RCC_USART1_CLK_ENABLE(); 299 300 __HAL_RCC_GPIOA_CLK_ENABLE(); 301 /**USART1 GPIO Configuration 302 PA9 ------> USART1_TX 303 PA10 ------> USART1_RX 304 */ 305 GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_10; 306 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; 307 GPIO_InitStruct.Pull = GPIO_NOPULL; 308 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; 309 GPIO_InitStruct.Alternate = GPIO_AF7_USART1; 310 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); 311 312 /* USER CODE BEGIN USART1_MspInit 1 */ 313 314 /* USER CODE END USART1_MspInit 1 */ 315 } 316 317 } 318 319 /** 320 * @brief UART MSP De-Initialization 321 * This function freeze the hardware resources used in this example 322 * @param huart: UART handle pointer 323 * @retval None 324 */ HAL_UART_MspDeInit(UART_HandleTypeDef * huart)325void HAL_UART_MspDeInit(UART_HandleTypeDef* huart) 326 { 327 if(huart->Instance==USART1) 328 { 329 /* USER CODE BEGIN USART1_MspDeInit 0 */ 330 331 /* USER CODE END USART1_MspDeInit 0 */ 332 /* Peripheral clock disable */ 333 __HAL_RCC_USART1_CLK_DISABLE(); 334 335 /**USART1 GPIO Configuration 336 PA9 ------> USART1_TX 337 PA10 ------> USART1_RX 338 */ 339 HAL_GPIO_DeInit(GPIOA, GPIO_PIN_9|GPIO_PIN_10); 340 341 /* USER CODE BEGIN USART1_MspDeInit 1 */ 342 343 /* USER CODE END USART1_MspDeInit 1 */ 344 } 345 346 } 347 348 /* USER CODE BEGIN 1 */ 349 350 /* USER CODE END 1 */ 351