firmware-nucleo/Core/Src/stm32f1xx_it.c (8994B)
1 /* USER CODE BEGIN Header */ 2 /** 3 ****************************************************************************** 4 * @file stm32f1xx_it.c 5 * @brief Interrupt Service Routines. 6 ****************************************************************************** 7 * @attention 8 * 9 * Copyright (c) 2025 STMicroelectronics. 10 * All rights reserved. 11 * 12 * This software is licensed under terms that can be found in the LICENSE file 13 * in the root directory of this software component. 14 * If no LICENSE file comes with this software, it is provided AS-IS. 15 * 16 ****************************************************************************** 17 */ 18 /* USER CODE END Header */ 19 20 /* Includes ------------------------------------------------------------------*/ 21 #include "main.h" 22 #include "stm32f1xx_it.h" 23 /* Private includes ----------------------------------------------------------*/ 24 /* USER CODE BEGIN Includes */ 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 PD */ 34 35 /* USER CODE END PD */ 36 37 /* Private macro -------------------------------------------------------------*/ 38 /* USER CODE BEGIN PM */ 39 40 /* USER CODE END PM */ 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 /* Private user code ---------------------------------------------------------*/ 53 /* USER CODE BEGIN 0 */ 54 55 /* USER CODE END 0 */ 56 57 /* External variables --------------------------------------------------------*/ 58 extern DMA_HandleTypeDef hdma_i2c1_tx; 59 extern I2C_HandleTypeDef hi2c1; 60 extern DMA_HandleTypeDef hdma_usart1_tx; 61 extern DMA_HandleTypeDef hdma_usart1_rx; 62 extern DMA_HandleTypeDef hdma_usart3_rx; 63 extern DMA_HandleTypeDef hdma_usart3_tx; 64 extern UART_HandleTypeDef huart1; 65 extern UART_HandleTypeDef huart3; 66 /* USER CODE BEGIN EV */ 67 68 /* USER CODE END EV */ 69 70 /******************************************************************************/ 71 /* Cortex-M3 Processor Interruption and Exception Handlers */ 72 /******************************************************************************/ 73 /** 74 * @brief This function handles Non maskable interrupt. 75 */ 76 void NMI_Handler(void) 77 { 78 /* USER CODE BEGIN NonMaskableInt_IRQn 0 */ 79 80 /* USER CODE END NonMaskableInt_IRQn 0 */ 81 /* USER CODE BEGIN NonMaskableInt_IRQn 1 */ 82 while (1) 83 { 84 } 85 /* USER CODE END NonMaskableInt_IRQn 1 */ 86 } 87 88 /** 89 * @brief This function handles Hard fault interrupt. 90 */ 91 void HardFault_Handler(void) 92 { 93 /* USER CODE BEGIN HardFault_IRQn 0 */ 94 95 /* USER CODE END HardFault_IRQn 0 */ 96 while (1) 97 { 98 /* USER CODE BEGIN W1_HardFault_IRQn 0 */ 99 /* USER CODE END W1_HardFault_IRQn 0 */ 100 } 101 } 102 103 /** 104 * @brief This function handles Memory management fault. 105 */ 106 void MemManage_Handler(void) 107 { 108 /* USER CODE BEGIN MemoryManagement_IRQn 0 */ 109 110 /* USER CODE END MemoryManagement_IRQn 0 */ 111 while (1) 112 { 113 /* USER CODE BEGIN W1_MemoryManagement_IRQn 0 */ 114 /* USER CODE END W1_MemoryManagement_IRQn 0 */ 115 } 116 } 117 118 /** 119 * @brief This function handles Prefetch fault, memory access fault. 120 */ 121 void BusFault_Handler(void) 122 { 123 /* USER CODE BEGIN BusFault_IRQn 0 */ 124 125 /* USER CODE END BusFault_IRQn 0 */ 126 while (1) 127 { 128 /* USER CODE BEGIN W1_BusFault_IRQn 0 */ 129 /* USER CODE END W1_BusFault_IRQn 0 */ 130 } 131 } 132 133 /** 134 * @brief This function handles Undefined instruction or illegal state. 135 */ 136 void UsageFault_Handler(void) 137 { 138 /* USER CODE BEGIN UsageFault_IRQn 0 */ 139 140 /* USER CODE END UsageFault_IRQn 0 */ 141 while (1) 142 { 143 /* USER CODE BEGIN W1_UsageFault_IRQn 0 */ 144 /* USER CODE END W1_UsageFault_IRQn 0 */ 145 } 146 } 147 148 /** 149 * @brief This function handles System service call via SWI instruction. 150 */ 151 void SVC_Handler(void) 152 { 153 /* USER CODE BEGIN SVCall_IRQn 0 */ 154 155 /* USER CODE END SVCall_IRQn 0 */ 156 /* USER CODE BEGIN SVCall_IRQn 1 */ 157 158 /* USER CODE END SVCall_IRQn 1 */ 159 } 160 161 /** 162 * @brief This function handles Debug monitor. 163 */ 164 void DebugMon_Handler(void) 165 { 166 /* USER CODE BEGIN DebugMonitor_IRQn 0 */ 167 168 /* USER CODE END DebugMonitor_IRQn 0 */ 169 /* USER CODE BEGIN DebugMonitor_IRQn 1 */ 170 171 /* USER CODE END DebugMonitor_IRQn 1 */ 172 } 173 174 /** 175 * @brief This function handles Pendable request for system service. 176 */ 177 void PendSV_Handler(void) 178 { 179 /* USER CODE BEGIN PendSV_IRQn 0 */ 180 181 /* USER CODE END PendSV_IRQn 0 */ 182 /* USER CODE BEGIN PendSV_IRQn 1 */ 183 184 /* USER CODE END PendSV_IRQn 1 */ 185 } 186 187 /** 188 * @brief This function handles System tick timer. 189 */ 190 void SysTick_Handler(void) 191 { 192 /* USER CODE BEGIN SysTick_IRQn 0 */ 193 194 /* USER CODE END SysTick_IRQn 0 */ 195 HAL_IncTick(); 196 /* USER CODE BEGIN SysTick_IRQn 1 */ 197 198 HAL_SYSTICK_IRQHandler(); 199 200 /* USER CODE END SysTick_IRQn 1 */ 201 } 202 203 /******************************************************************************/ 204 /* STM32F1xx Peripheral Interrupt Handlers */ 205 /* Add here the Interrupt Handlers for the used peripherals. */ 206 /* For the available peripheral interrupt handler names, */ 207 /* please refer to the startup file (startup_stm32f1xx.s). */ 208 /******************************************************************************/ 209 210 /** 211 * @brief This function handles DMA1 channel2 global interrupt. 212 */ 213 void DMA1_Channel2_IRQHandler(void) 214 { 215 /* USER CODE BEGIN DMA1_Channel2_IRQn 0 */ 216 217 /* USER CODE END DMA1_Channel2_IRQn 0 */ 218 HAL_DMA_IRQHandler(&hdma_usart3_tx); 219 /* USER CODE BEGIN DMA1_Channel2_IRQn 1 */ 220 221 /* USER CODE END DMA1_Channel2_IRQn 1 */ 222 } 223 224 /** 225 * @brief This function handles DMA1 channel3 global interrupt. 226 */ 227 void DMA1_Channel3_IRQHandler(void) 228 { 229 /* USER CODE BEGIN DMA1_Channel3_IRQn 0 */ 230 231 /* USER CODE END DMA1_Channel3_IRQn 0 */ 232 HAL_DMA_IRQHandler(&hdma_usart3_rx); 233 /* USER CODE BEGIN DMA1_Channel3_IRQn 1 */ 234 235 /* USER CODE END DMA1_Channel3_IRQn 1 */ 236 } 237 238 /** 239 * @brief This function handles DMA1 channel4 global interrupt. 240 */ 241 void DMA1_Channel4_IRQHandler(void) 242 { 243 /* USER CODE BEGIN DMA1_Channel4_IRQn 0 */ 244 245 /* USER CODE END DMA1_Channel4_IRQn 0 */ 246 HAL_DMA_IRQHandler(&hdma_usart1_tx); 247 /* USER CODE BEGIN DMA1_Channel4_IRQn 1 */ 248 249 /* USER CODE END DMA1_Channel4_IRQn 1 */ 250 } 251 252 /** 253 * @brief This function handles DMA1 channel5 global interrupt. 254 */ 255 void DMA1_Channel5_IRQHandler(void) 256 { 257 /* USER CODE BEGIN DMA1_Channel5_IRQn 0 */ 258 259 /* USER CODE END DMA1_Channel5_IRQn 0 */ 260 HAL_DMA_IRQHandler(&hdma_usart1_rx); 261 /* USER CODE BEGIN DMA1_Channel5_IRQn 1 */ 262 263 /* USER CODE END DMA1_Channel5_IRQn 1 */ 264 } 265 266 /** 267 * @brief This function handles DMA1 channel6 global interrupt. 268 */ 269 void DMA1_Channel6_IRQHandler(void) 270 { 271 /* USER CODE BEGIN DMA1_Channel6_IRQn 0 */ 272 273 /* USER CODE END DMA1_Channel6_IRQn 0 */ 274 HAL_DMA_IRQHandler(&hdma_i2c1_tx); 275 /* USER CODE BEGIN DMA1_Channel6_IRQn 1 */ 276 277 /* USER CODE END DMA1_Channel6_IRQn 1 */ 278 } 279 280 /** 281 * @brief This function handles I2C1 event interrupt. 282 */ 283 void I2C1_EV_IRQHandler(void) 284 { 285 /* USER CODE BEGIN I2C1_EV_IRQn 0 */ 286 287 /* USER CODE END I2C1_EV_IRQn 0 */ 288 HAL_I2C_EV_IRQHandler(&hi2c1); 289 /* USER CODE BEGIN I2C1_EV_IRQn 1 */ 290 291 /* USER CODE END I2C1_EV_IRQn 1 */ 292 } 293 294 /** 295 * @brief This function handles I2C1 error interrupt. 296 */ 297 void I2C1_ER_IRQHandler(void) 298 { 299 /* USER CODE BEGIN I2C1_ER_IRQn 0 */ 300 301 /* USER CODE END I2C1_ER_IRQn 0 */ 302 HAL_I2C_ER_IRQHandler(&hi2c1); 303 /* USER CODE BEGIN I2C1_ER_IRQn 1 */ 304 305 /* USER CODE END I2C1_ER_IRQn 1 */ 306 } 307 308 /** 309 * @brief This function handles USART1 global interrupt. 310 */ 311 void USART1_IRQHandler(void) 312 { 313 /* USER CODE BEGIN USART1_IRQn 0 */ 314 315 /* USER CODE END USART1_IRQn 0 */ 316 HAL_UART_IRQHandler(&huart1); 317 /* USER CODE BEGIN USART1_IRQn 1 */ 318 319 /* USER CODE END USART1_IRQn 1 */ 320 } 321 322 /** 323 * @brief This function handles USART3 global interrupt. 324 */ 325 void USART3_IRQHandler(void) 326 { 327 /* USER CODE BEGIN USART3_IRQn 0 */ 328 329 /* USER CODE END USART3_IRQn 0 */ 330 HAL_UART_IRQHandler(&huart3); 331 /* USER CODE BEGIN USART3_IRQn 1 */ 332 333 /* USER CODE END USART3_IRQn 1 */ 334 } 335 336 /** 337 * @brief This function handles EXTI line[15:10] interrupts. 338 */ 339 void EXTI15_10_IRQHandler(void) 340 { 341 /* USER CODE BEGIN EXTI15_10_IRQn 0 */ 342 343 /* USER CODE END EXTI15_10_IRQn 0 */ 344 HAL_GPIO_EXTI_IRQHandler(BTN_A_Pin); 345 /* USER CODE BEGIN EXTI15_10_IRQn 1 */ 346 347 /* USER CODE END EXTI15_10_IRQn 1 */ 348 } 349 350 /* USER CODE BEGIN 1 */ 351 352 /* USER CODE END 1 */
