1 /* USER CODE BEGIN Header */ 2 /** 3 ****************************************************************************** 4 * @file stm32l4xx_it.c 5 * @brief Interrupt Service Routines. 6 ****************************************************************************** 7 * @attention 8 * 9 * <h2><center>© Copyright (c) 2020 STMicroelectronics. 10 * All rights reserved.</center></h2> 11 * 12 * This software component is licensed by ST under BSD 3-Clause license, 13 * the "License"; You may not use this file except in compliance with the 14 * License. You may obtain a copy of the License at: 15 * opensource.org/licenses/BSD-3-Clause 16 * 17 ****************************************************************************** 18 */ 19 /* USER CODE END Header */ 20 21 /* Includes ------------------------------------------------------------------*/ 22 #include "main.h" 23 #include "stm32l4xx_it.h" 24 /* Private includes ----------------------------------------------------------*/ 25 /* USER CODE BEGIN Includes */ 26 /* USER CODE END Includes */ 27 28 /* Private typedef -----------------------------------------------------------*/ 29 /* USER CODE BEGIN TD */ 30 31 /* USER CODE END TD */ 32 33 /* Private define ------------------------------------------------------------*/ 34 /* USER CODE BEGIN PD */ 35 36 /* USER CODE END PD */ 37 38 /* Private macro -------------------------------------------------------------*/ 39 /* USER CODE BEGIN PM */ 40 41 /* USER CODE END PM */ 42 43 /* Private variables ---------------------------------------------------------*/ 44 /* USER CODE BEGIN PV */ 45 46 /* USER CODE END PV */ 47 48 /* Private function prototypes -----------------------------------------------*/ 49 /* USER CODE BEGIN PFP */ 50 51 /* USER CODE END PFP */ 52 53 /* Private user code ---------------------------------------------------------*/ 54 /* USER CODE BEGIN 0 */ 55 56 /* USER CODE END 0 */ 57 58 /* External variables --------------------------------------------------------*/ 59 extern LPTIM_HandleTypeDef hlptim1; 60 extern DMA_HandleTypeDef hdma_spi1_rx; 61 extern DMA_HandleTypeDef hdma_spi1_tx; 62 /* USER CODE BEGIN EV */ 63 64 /* USER CODE END EV */ 65 66 /******************************************************************************/ 67 /* Cortex-M4 Processor Interruption and Exception Handlers */ 68 /******************************************************************************/ 69 /** 70 * @brief This function handles Non maskable interrupt. 71 */ 72 void NMI_Handler(void) 73 { 74 /* USER CODE BEGIN NonMaskableInt_IRQn 0 */ 75 76 /* USER CODE END NonMaskableInt_IRQn 0 */ 77 /* USER CODE BEGIN NonMaskableInt_IRQn 1 */ 78 79 /* USER CODE END NonMaskableInt_IRQn 1 */ 80 } 81 82 /** 83 * @brief This function handles Hard fault interrupt. 84 */ 85 void HardFault_Handler(void) 86 { 87 /* USER CODE BEGIN HardFault_IRQn 0 */ 88 89 /* USER CODE END HardFault_IRQn 0 */ 90 while (1) 91 { 92 /* USER CODE BEGIN W1_HardFault_IRQn 0 */ 93 /* USER CODE END W1_HardFault_IRQn 0 */ 94 } 95 } 96 97 /** 98 * @brief This function handles Memory management fault. 99 */ 100 void MemManage_Handler(void) 101 { 102 /* USER CODE BEGIN MemoryManagement_IRQn 0 */ 103 104 /* USER CODE END MemoryManagement_IRQn 0 */ 105 while (1) 106 { 107 /* USER CODE BEGIN W1_MemoryManagement_IRQn 0 */ 108 /* USER CODE END W1_MemoryManagement_IRQn 0 */ 109 } 110 } 111 112 /** 113 * @brief This function handles Prefetch fault, memory access fault. 114 */ 115 void BusFault_Handler(void) 116 { 117 /* USER CODE BEGIN BusFault_IRQn 0 */ 118 119 /* USER CODE END BusFault_IRQn 0 */ 120 while (1) 121 { 122 /* USER CODE BEGIN W1_BusFault_IRQn 0 */ 123 /* USER CODE END W1_BusFault_IRQn 0 */ 124 } 125 } 126 127 /** 128 * @brief This function handles Undefined instruction or illegal state. 129 */ 130 void UsageFault_Handler(void) 131 { 132 /* USER CODE BEGIN UsageFault_IRQn 0 */ 133 134 /* USER CODE END UsageFault_IRQn 0 */ 135 while (1) 136 { 137 /* USER CODE BEGIN W1_UsageFault_IRQn 0 */ 138 /* USER CODE END W1_UsageFault_IRQn 0 */ 139 } 140 } 141 142 /** 143 * @brief This function handles System service call via SWI instruction. 144 */ 145 void SVC_Handler(void) 146 { 147 /* USER CODE BEGIN SVCall_IRQn 0 */ 148 149 /* USER CODE END SVCall_IRQn 0 */ 150 /* USER CODE BEGIN SVCall_IRQn 1 */ 151 152 /* USER CODE END SVCall_IRQn 1 */ 153 } 154 155 /** 156 * @brief This function handles Debug monitor. 157 */ 158 void DebugMon_Handler(void) 159 { 160 /* USER CODE BEGIN DebugMonitor_IRQn 0 */ 161 162 /* USER CODE END DebugMonitor_IRQn 0 */ 163 /* USER CODE BEGIN DebugMonitor_IRQn 1 */ 164 165 /* USER CODE END DebugMonitor_IRQn 1 */ 166 } 167 168 /** 169 * @brief This function handles Pendable request for system service. 170 */ 171 void PendSV_Handler(void) 172 { 173 /* USER CODE BEGIN PendSV_IRQn 0 */ 174 175 /* USER CODE END PendSV_IRQn 0 */ 176 /* USER CODE BEGIN PendSV_IRQn 1 */ 177 178 /* USER CODE END PendSV_IRQn 1 */ 179 } 180 181 /** 182 * @brief This function handles System tick timer. 183 */ 184 void SysTick_Handler(void) 185 { 186 /* USER CODE BEGIN SysTick_IRQn 0 */ 187 188 /* USER CODE END SysTick_IRQn 0 */ 189 HAL_IncTick(); 190 /* USER CODE BEGIN SysTick_IRQn 1 */ 191 192 /* USER CODE END SysTick_IRQn 1 */ 193 } 194 195 /******************************************************************************/ 196 /* STM32L4xx Peripheral Interrupt Handlers */ 197 /* Add here the Interrupt Handlers for the used peripherals. */ 198 /* For the available peripheral interrupt handler names, */ 199 /* please refer to the startup file (startup_stm32l4xx.s). */ 200 /******************************************************************************/ 201 202 /** 203 * @brief This function handles EXTI line4 interrupt. 204 */ 205 void EXTI4_IRQHandler(void) 206 { 207 /* USER CODE BEGIN EXTI4_IRQn 0 */ 208 209 /* USER CODE END EXTI4_IRQn 0 */ 210 HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_4); 211 /* USER CODE BEGIN EXTI4_IRQn 1 */ 212 213 /* USER CODE END EXTI4_IRQn 1 */ 214 } 215 216 /** 217 * @brief This function handles DMA1 channel2 global interrupt. 218 */ 219 void DMA1_Channel2_IRQHandler(void) 220 { 221 /* USER CODE BEGIN DMA1_Channel2_IRQn 0 */ 222 223 /* USER CODE END DMA1_Channel2_IRQn 0 */ 224 HAL_DMA_IRQHandler(&hdma_spi1_rx); 225 /* USER CODE BEGIN DMA1_Channel2_IRQn 1 */ 226 227 /* USER CODE END DMA1_Channel2_IRQn 1 */ 228 } 229 230 /** 231 * @brief This function handles DMA1 channel3 global interrupt. 232 */ 233 void DMA1_Channel3_IRQHandler(void) 234 { 235 /* USER CODE BEGIN DMA1_Channel3_IRQn 0 */ 236 237 /* USER CODE END DMA1_Channel3_IRQn 0 */ 238 HAL_DMA_IRQHandler(&hdma_spi1_tx); 239 /* USER CODE BEGIN DMA1_Channel3_IRQn 1 */ 240 241 /* USER CODE END DMA1_Channel3_IRQn 1 */ 242 } 243 244 /** 245 * @brief This function handles LPTIM1 global interrupt. 246 */ 247 void LPTIM1_IRQHandler(void) 248 { 249 /* USER CODE BEGIN LPTIM1_IRQn 0 */ 250 251 /* USER CODE END LPTIM1_IRQn 0 */ 252 HAL_LPTIM_IRQHandler(&hlptim1); 253 /* USER CODE BEGIN LPTIM1_IRQn 1 */ 254 255 /* USER CODE END LPTIM1_IRQn 1 */ 256 } 257 258 /* USER CODE BEGIN 1 */ 259 260 /* USER CODE END 1 */ 261 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ 262