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_usart1_rx; 59 extern DMA_HandleTypeDef hdma_usart1_tx; 60 extern UART_HandleTypeDef huart1; 61 /* USER CODE BEGIN EV */ 62 63 /* USER CODE END EV */ 64 65 /******************************************************************************/ 66 /* Cortex-M3 Processor Interruption and Exception Handlers */ 67 /******************************************************************************/ 68 /** 69 * @brief This function handles Non maskable interrupt. 70 */ 71 void NMI_Handler(void) 72 { 73 /* USER CODE BEGIN NonMaskableInt_IRQn 0 */ 74 75 /* USER CODE END NonMaskableInt_IRQn 0 */ 76 /* USER CODE BEGIN NonMaskableInt_IRQn 1 */ 77 while (1) 78 { 79 } 80 /* USER CODE END NonMaskableInt_IRQn 1 */ 81 } 82 83 /** 84 * @brief This function handles Hard fault interrupt. 85 */ 86 void HardFault_Handler(void) 87 { 88 /* USER CODE BEGIN HardFault_IRQn 0 */ 89 90 /* USER CODE END HardFault_IRQn 0 */ 91 while (1) 92 { 93 /* USER CODE BEGIN W1_HardFault_IRQn 0 */ 94 /* USER CODE END W1_HardFault_IRQn 0 */ 95 } 96 } 97 98 /** 99 * @brief This function handles Memory management fault. 100 */ 101 void MemManage_Handler(void) 102 { 103 /* USER CODE BEGIN MemoryManagement_IRQn 0 */ 104 105 /* USER CODE END MemoryManagement_IRQn 0 */ 106 while (1) 107 { 108 /* USER CODE BEGIN W1_MemoryManagement_IRQn 0 */ 109 /* USER CODE END W1_MemoryManagement_IRQn 0 */ 110 } 111 } 112 113 /** 114 * @brief This function handles Prefetch fault, memory access fault. 115 */ 116 void BusFault_Handler(void) 117 { 118 /* USER CODE BEGIN BusFault_IRQn 0 */ 119 120 /* USER CODE END BusFault_IRQn 0 */ 121 while (1) 122 { 123 /* USER CODE BEGIN W1_BusFault_IRQn 0 */ 124 /* USER CODE END W1_BusFault_IRQn 0 */ 125 } 126 } 127 128 /** 129 * @brief This function handles Undefined instruction or illegal state. 130 */ 131 void UsageFault_Handler(void) 132 { 133 /* USER CODE BEGIN UsageFault_IRQn 0 */ 134 135 /* USER CODE END UsageFault_IRQn 0 */ 136 while (1) 137 { 138 /* USER CODE BEGIN W1_UsageFault_IRQn 0 */ 139 /* USER CODE END W1_UsageFault_IRQn 0 */ 140 } 141 } 142 143 /** 144 * @brief This function handles System service call via SWI instruction. 145 */ 146 void SVC_Handler(void) 147 { 148 /* USER CODE BEGIN SVCall_IRQn 0 */ 149 150 /* USER CODE END SVCall_IRQn 0 */ 151 /* USER CODE BEGIN SVCall_IRQn 1 */ 152 153 /* USER CODE END SVCall_IRQn 1 */ 154 } 155 156 /** 157 * @brief This function handles Debug monitor. 158 */ 159 void DebugMon_Handler(void) 160 { 161 /* USER CODE BEGIN DebugMonitor_IRQn 0 */ 162 163 /* USER CODE END DebugMonitor_IRQn 0 */ 164 /* USER CODE BEGIN DebugMonitor_IRQn 1 */ 165 166 /* USER CODE END DebugMonitor_IRQn 1 */ 167 } 168 169 /** 170 * @brief This function handles Pendable request for system service. 171 */ 172 void PendSV_Handler(void) 173 { 174 /* USER CODE BEGIN PendSV_IRQn 0 */ 175 176 /* USER CODE END PendSV_IRQn 0 */ 177 /* USER CODE BEGIN PendSV_IRQn 1 */ 178 179 /* USER CODE END PendSV_IRQn 1 */ 180 } 181 182 /** 183 * @brief This function handles System tick timer. 184 */ 185 void SysTick_Handler(void) 186 { 187 /* USER CODE BEGIN SysTick_IRQn 0 */ 188 189 /* USER CODE END SysTick_IRQn 0 */ 190 HAL_IncTick(); 191 /* USER CODE BEGIN SysTick_IRQn 1 */ 192 193 HAL_SYSTICK_IRQHandler(); 194 195 /* USER CODE END SysTick_IRQn 1 */ 196 } 197 198 /******************************************************************************/ 199 /* STM32F1xx Peripheral Interrupt Handlers */ 200 /* Add here the Interrupt Handlers for the used peripherals. */ 201 /* For the available peripheral interrupt handler names, */ 202 /* please refer to the startup file (startup_stm32f1xx.s). */ 203 /******************************************************************************/ 204 205 /** 206 * @brief This function handles DMA1 channel4 global interrupt. 207 */ 208 void DMA1_Channel4_IRQHandler(void) 209 { 210 /* USER CODE BEGIN DMA1_Channel4_IRQn 0 */ 211 212 /* USER CODE END DMA1_Channel4_IRQn 0 */ 213 HAL_DMA_IRQHandler(&hdma_usart1_tx); 214 /* USER CODE BEGIN DMA1_Channel4_IRQn 1 */ 215 216 /* USER CODE END DMA1_Channel4_IRQn 1 */ 217 } 218 219 /** 220 * @brief This function handles DMA1 channel5 global interrupt. 221 */ 222 void DMA1_Channel5_IRQHandler(void) 223 { 224 /* USER CODE BEGIN DMA1_Channel5_IRQn 0 */ 225 226 /* USER CODE END DMA1_Channel5_IRQn 0 */ 227 HAL_DMA_IRQHandler(&hdma_usart1_rx); 228 /* USER CODE BEGIN DMA1_Channel5_IRQn 1 */ 229 230 /* USER CODE END DMA1_Channel5_IRQn 1 */ 231 } 232 233 /** 234 * @brief This function handles USART1 global interrupt. 235 */ 236 void USART1_IRQHandler(void) 237 { 238 /* USER CODE BEGIN USART1_IRQn 0 */ 239 240 /* USER CODE END USART1_IRQn 0 */ 241 HAL_UART_IRQHandler(&huart1); 242 /* USER CODE BEGIN USART1_IRQn 1 */ 243 244 /* USER CODE END USART1_IRQn 1 */ 245 } 246 247 /** 248 * @brief This function handles EXTI line[15:10] interrupts. 249 */ 250 void EXTI15_10_IRQHandler(void) 251 { 252 /* USER CODE BEGIN EXTI15_10_IRQn 0 */ 253 254 /* USER CODE END EXTI15_10_IRQn 0 */ 255 HAL_GPIO_EXTI_IRQHandler(B1_Pin); 256 /* USER CODE BEGIN EXTI15_10_IRQn 1 */ 257 258 /* USER CODE END EXTI15_10_IRQn 1 */ 259 } 260 261 /* USER CODE BEGIN 1 */ 262 263 /* USER CODE END 1 */
