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