1*0561b2d8STREFOU Felix /* 2*0561b2d8STREFOU Felix * stm32wbxx IT 3*0561b2d8STREFOU Felix * System interruptions implementations 4*0561b2d8STREFOU Felix */ 5*0561b2d8STREFOU Felix 6*0561b2d8STREFOU Felix #include "stm32wbxx.h" 7*0561b2d8STREFOU Felix #include "stm32wbxx_hal.h" 8*0561b2d8STREFOU Felix 9*0561b2d8STREFOU Felix #include "stm32wbxx_hal_tim.h" 10*0561b2d8STREFOU Felix 11*0561b2d8STREFOU Felix #include "hw.h" 12*0561b2d8STREFOU Felix 13*0561b2d8STREFOU Felix extern TIM_HandleTypeDef htim17; 14*0561b2d8STREFOU Felix 15*0561b2d8STREFOU Felix /** 16*0561b2d8STREFOU Felix * @brief This function handles Non maskable interrupt. 17*0561b2d8STREFOU Felix */ NMI_Handler(void)18*0561b2d8STREFOU Felixvoid NMI_Handler (void) 19*0561b2d8STREFOU Felix { 20*0561b2d8STREFOU Felix 21*0561b2d8STREFOU Felix } 22*0561b2d8STREFOU Felix 23*0561b2d8STREFOU Felix /** 24*0561b2d8STREFOU Felix * @brief This function handles Hard fault interrupt. 25*0561b2d8STREFOU Felix */ HardFault_Handler(void)26*0561b2d8STREFOU Felixvoid HardFault_Handler (void) 27*0561b2d8STREFOU Felix { 28*0561b2d8STREFOU Felix for(;;); 29*0561b2d8STREFOU Felix } 30*0561b2d8STREFOU Felix 31*0561b2d8STREFOU Felix /** 32*0561b2d8STREFOU Felix * @brief This function handles Memory management fault. 33*0561b2d8STREFOU Felix */ MemManage_Handler(void)34*0561b2d8STREFOU Felixvoid MemManage_Handler (void) 35*0561b2d8STREFOU Felix { 36*0561b2d8STREFOU Felix while (1) 37*0561b2d8STREFOU Felix { 38*0561b2d8STREFOU Felix 39*0561b2d8STREFOU Felix } 40*0561b2d8STREFOU Felix } 41*0561b2d8STREFOU Felix 42*0561b2d8STREFOU Felix /** 43*0561b2d8STREFOU Felix * @brief This function handles Prefetch fault, memory access fault. 44*0561b2d8STREFOU Felix */ BusFault_Handler(void)45*0561b2d8STREFOU Felixvoid BusFault_Handler (void) 46*0561b2d8STREFOU Felix { 47*0561b2d8STREFOU Felix while (1) 48*0561b2d8STREFOU Felix { 49*0561b2d8STREFOU Felix 50*0561b2d8STREFOU Felix } 51*0561b2d8STREFOU Felix } 52*0561b2d8STREFOU Felix 53*0561b2d8STREFOU Felix /** 54*0561b2d8STREFOU Felix * @brief This function handles Undefined instruction or illegal state. 55*0561b2d8STREFOU Felix */ UsageFault_Handler(void)56*0561b2d8STREFOU Felixvoid UsageFault_Handler (void) 57*0561b2d8STREFOU Felix { 58*0561b2d8STREFOU Felix while (1) 59*0561b2d8STREFOU Felix { 60*0561b2d8STREFOU Felix 61*0561b2d8STREFOU Felix } 62*0561b2d8STREFOU Felix } 63*0561b2d8STREFOU Felix 64*0561b2d8STREFOU Felix /** 65*0561b2d8STREFOU Felix * @brief This function handles Debug monitor. 66*0561b2d8STREFOU Felix */ DebugMon_Handler(void)67*0561b2d8STREFOU Felixvoid DebugMon_Handler (void) 68*0561b2d8STREFOU Felix { 69*0561b2d8STREFOU Felix } 70*0561b2d8STREFOU Felix 71*0561b2d8STREFOU Felix /************************************************************************************ 72*0561b2d8STREFOU Felix * STM32L4xx Peripheral Interrupt Handlers 73*0561b2d8STREFOU Felix ************************************************************************************/ 74*0561b2d8STREFOU Felix //void WWDG_IRQHandler (void){for(;;);} //Not used 75*0561b2d8STREFOU Felix //void PVD_PVM_IRQHandler (void){for(;;);} //Not used TAMP_STAMP_LSECSS_IRQHandler(void)76*0561b2d8STREFOU Felixvoid TAMP_STAMP_LSECSS_IRQHandler (void){for(;;);} //Not used RTC_WKUP_IRQHandler(void)77*0561b2d8STREFOU Felixvoid RTC_WKUP_IRQHandler (void){for(;;);} //Not used FLASH_IRQHandler(void)78*0561b2d8STREFOU Felixvoid FLASH_IRQHandler (void){for(;;);} //Not used RCC_IRQHandler(void)79*0561b2d8STREFOU Felixvoid RCC_IRQHandler (void){for(;;);} //Not used EXTI0_IRQHandler(void)80*0561b2d8STREFOU Felixvoid EXTI0_IRQHandler (void){for(;;);} //Not used EXTI1_IRQHandler(void)81*0561b2d8STREFOU Felixvoid EXTI1_IRQHandler (void){for(;;);} //Not used EXTI2_IRQHandler(void)82*0561b2d8STREFOU Felixvoid EXTI2_IRQHandler (void){for(;;);} //Not used EXTI3_IRQHandler(void)83*0561b2d8STREFOU Felixvoid EXTI3_IRQHandler (void){for(;;);} //Not used EXTI4_IRQHandler(void)84*0561b2d8STREFOU Felixvoid EXTI4_IRQHandler (void){for(;;);} //Not used DMA1_Channel1_IRQHandler(void)85*0561b2d8STREFOU Felixvoid DMA1_Channel1_IRQHandler (void){for(;;);} //Not used DMA1_Channel2_IRQHandler(void)86*0561b2d8STREFOU Felixvoid DMA1_Channel2_IRQHandler (void){for(;;);} //Not used DMA1_Channel3_IRQHandler(void)87*0561b2d8STREFOU Felixvoid DMA1_Channel3_IRQHandler (void){for(;;);} //Not used DMA1_Channel4_IRQHandler(void)88*0561b2d8STREFOU Felixvoid DMA1_Channel4_IRQHandler (void){for(;;);} //Not used DMA1_Channel5_IRQHandler(void)89*0561b2d8STREFOU Felixvoid DMA1_Channel5_IRQHandler (void){for(;;);} //Not used DMA1_Channel6_IRQHandler(void)90*0561b2d8STREFOU Felixvoid DMA1_Channel6_IRQHandler (void){for(;;);} //Not used DMA1_Channel7_IRQHandler(void)91*0561b2d8STREFOU Felixvoid DMA1_Channel7_IRQHandler (void){for(;;);} //Not used ADC1_IRQHandler(void)92*0561b2d8STREFOU Felixvoid ADC1_IRQHandler (void){for(;;);} //Not used USB_HP_IRQHandler(void)93*0561b2d8STREFOU Felixvoid USB_HP_IRQHandler (void){for(;;);} //Not used USB_LP_IRQHandler(void)94*0561b2d8STREFOU Felixvoid USB_LP_IRQHandler (void){for(;;);} //Not used C2SEV_PWR_C2H_IRQHandler(void)95*0561b2d8STREFOU Felixvoid C2SEV_PWR_C2H_IRQHandler (void){for(;;);} //Not used COMP_IRQHandler(void)96*0561b2d8STREFOU Felixvoid COMP_IRQHandler (void){for(;;);} //Not used EXTI9_5_IRQHandler(void)97*0561b2d8STREFOU Felixvoid EXTI9_5_IRQHandler (void){for(;;);} //Not used TIM1_BRK_IRQHandler(void)98*0561b2d8STREFOU Felixvoid TIM1_BRK_IRQHandler (void){for(;;);} //Not used TIM1_UP_TIM16_IRQHandler(void)99*0561b2d8STREFOU Felixvoid TIM1_UP_TIM16_IRQHandler (void){for(;;);} //Not used 100*0561b2d8STREFOU Felix //void TIM1_TRG_COM_TIM17_IRQHandler (void){for(;;);} //Not used TIM1_CC_IRQHandler(void)101*0561b2d8STREFOU Felixvoid TIM1_CC_IRQHandler (void){for(;;);} //Not used TIM2_IRQHandler(void)102*0561b2d8STREFOU Felixvoid TIM2_IRQHandler (void){for(;;);} //Not used PKA_IRQHandler(void)103*0561b2d8STREFOU Felixvoid PKA_IRQHandler (void){for(;;);} //Not used I2C1_EV_IRQHandler(void)104*0561b2d8STREFOU Felixvoid I2C1_EV_IRQHandler (void){for(;;);} //Not used I2C1_ER_IRQHandler(void)105*0561b2d8STREFOU Felixvoid I2C1_ER_IRQHandler (void){for(;;);} //Not used I2C3_EV_IRQHandler(void)106*0561b2d8STREFOU Felixvoid I2C3_EV_IRQHandler (void){for(;;);} //Not used I2C3_ER_IRQHandler(void)107*0561b2d8STREFOU Felixvoid I2C3_ER_IRQHandler (void){for(;;);} //Not used SPI1_IRQHandler(void)108*0561b2d8STREFOU Felixvoid SPI1_IRQHandler (void){for(;;);} //Not used SPI2_IRQHandler(void)109*0561b2d8STREFOU Felixvoid SPI2_IRQHandler (void){for(;;);} //Not used USART1_IRQHandler(void)110*0561b2d8STREFOU Felixvoid USART1_IRQHandler (void){for(;;);} //Not used LPUART1_IRQHandler(void)111*0561b2d8STREFOU Felixvoid LPUART1_IRQHandler (void){for(;;);} //Not used SAI1_IRQHandler(void)112*0561b2d8STREFOU Felixvoid SAI1_IRQHandler (void){for(;;);} //Not used TSC_IRQHandler(void)113*0561b2d8STREFOU Felixvoid TSC_IRQHandler (void){for(;;);} //Not used EXTI15_10_IRQHandler(void)114*0561b2d8STREFOU Felixvoid EXTI15_10_IRQHandler (void){for(;;);} //Not used RTC_Alarm_IRQHandler(void)115*0561b2d8STREFOU Felixvoid RTC_Alarm_IRQHandler (void){for(;;);} //Not used CRS_IRQHandler(void)116*0561b2d8STREFOU Felixvoid CRS_IRQHandler (void){for(;;);} //Not used PWR_SOTF_BLEACT_802ACT_RFPHASE_IRQHandler(void)117*0561b2d8STREFOU Felixvoid PWR_SOTF_BLEACT_802ACT_RFPHASE_IRQHandler (void){for(;;);} //Not used 118*0561b2d8STREFOU Felix //void IPCC_C1_RX_IRQHandler (void){for(;;);} //Not used 119*0561b2d8STREFOU Felix //void IPCC_C1_TX_IRQHandler (void){for(;;);} //Not used HSEM_IRQHandler(void)120*0561b2d8STREFOU Felixvoid HSEM_IRQHandler (void){for(;;);} //Not used LPTIM1_IRQHandler(void)121*0561b2d8STREFOU Felixvoid LPTIM1_IRQHandler (void){for(;;);} //Not used LPTIM2_IRQHandler(void)122*0561b2d8STREFOU Felixvoid LPTIM2_IRQHandler (void){for(;;);} //Not used LCD_IRQHandler(void)123*0561b2d8STREFOU Felixvoid LCD_IRQHandler (void){for(;;);} //Not used QUADSPI_IRQHandler(void)124*0561b2d8STREFOU Felixvoid QUADSPI_IRQHandler (void){for(;;);} //Not used AES1_IRQHandler(void)125*0561b2d8STREFOU Felixvoid AES1_IRQHandler (void){for(;;);} //Not used AES2_IRQHandler(void)126*0561b2d8STREFOU Felixvoid AES2_IRQHandler (void){for(;;);} //Not used RNG_IRQHandler(void)127*0561b2d8STREFOU Felixvoid RNG_IRQHandler (void){for(;;);} //Not used FPU_IRQHandler(void)128*0561b2d8STREFOU Felixvoid FPU_IRQHandler (void){for(;;);} //Not used DMA2_Channel1_IRQHandler(void)129*0561b2d8STREFOU Felixvoid DMA2_Channel1_IRQHandler (void){for(;;);} //Not used DMA2_Channel2_IRQHandler(void)130*0561b2d8STREFOU Felixvoid DMA2_Channel2_IRQHandler (void){for(;;);} //Not used DMA2_Channel3_IRQHandler(void)131*0561b2d8STREFOU Felixvoid DMA2_Channel3_IRQHandler (void){for(;;);} //Not used DMA2_Channel4_IRQHandler(void)132*0561b2d8STREFOU Felixvoid DMA2_Channel4_IRQHandler (void){for(;;);} //Not used DMA2_Channel5_IRQHandler(void)133*0561b2d8STREFOU Felixvoid DMA2_Channel5_IRQHandler (void){for(;;);} //Not used DMA2_Channel6_IRQHandler(void)134*0561b2d8STREFOU Felixvoid DMA2_Channel6_IRQHandler (void){for(;;);} //Not used DMA2_Channel7_IRQHandler(void)135*0561b2d8STREFOU Felixvoid DMA2_Channel7_IRQHandler (void){for(;;);} //Not used DMAMUX1_OVR_IRQHandler(void)136*0561b2d8STREFOU Felixvoid DMAMUX1_OVR_IRQHandler (void){for(;;);} //Not used 137*0561b2d8STREFOU Felix 138*0561b2d8STREFOU Felix /** 139*0561b2d8STREFOU Felix * @brief This function handles TIM1 update interrupt and TIM16 global interrupt. 140*0561b2d8STREFOU Felix */ TIM1_TRG_COM_TIM17_IRQHandler(void)141*0561b2d8STREFOU Felixvoid TIM1_TRG_COM_TIM17_IRQHandler (void) 142*0561b2d8STREFOU Felix { 143*0561b2d8STREFOU Felix HAL_TIM_IRQHandler(&htim17); 144*0561b2d8STREFOU Felix } 145*0561b2d8STREFOU Felix IPCC_C1_TX_IRQHandler(void)146*0561b2d8STREFOU Felixvoid IPCC_C1_TX_IRQHandler(void) 147*0561b2d8STREFOU Felix { 148*0561b2d8STREFOU Felix HW_IPCC_Tx_Handler(); 149*0561b2d8STREFOU Felix 150*0561b2d8STREFOU Felix return; 151*0561b2d8STREFOU Felix } 152*0561b2d8STREFOU Felix IPCC_C1_RX_IRQHandler(void)153*0561b2d8STREFOU Felixvoid IPCC_C1_RX_IRQHandler(void) 154*0561b2d8STREFOU Felix { 155*0561b2d8STREFOU Felix HW_IPCC_Rx_Handler(); 156*0561b2d8STREFOU Felix return; 157*0561b2d8STREFOU Felix } 158*0561b2d8STREFOU Felix 159*0561b2d8STREFOU Felix /************************************************************************************ 160*0561b2d8STREFOU Felix * STM32L4xx Callbacks due to HAL redispatching (dirty code) 161*0561b2d8STREFOU Felix ************************************************************************************/ 162*0561b2d8STREFOU Felix HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef * htim)163*0561b2d8STREFOU Felixvoid HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) 164*0561b2d8STREFOU Felix { 165*0561b2d8STREFOU Felix if (htim->Instance == TIM17) { 166*0561b2d8STREFOU Felix HAL_IncTick(); 167*0561b2d8STREFOU Felix } 168*0561b2d8STREFOU Felix } 169*0561b2d8STREFOU Felix 170*0561b2d8STREFOU Felix /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ 171