2 ******************************************************************************
4 * @brief Interrupt Service Routines.
5 ******************************************************************************
7 * COPYRIGHT(c) 2018 STMicroelectronics
9 * Redistribution and use in source and binary forms, with or without modification,
10 * are permitted provided that the following conditions are met:
11 * 1. Redistributions of source code must retain the above copyright notice,
12 * this list of conditions and the following disclaimer.
13 * 2. Redistributions in binary form must reproduce the above copyright notice,
14 * this list of conditions and the following disclaimer in the documentation
15 * and/or other materials provided with the distribution.
16 * 3. Neither the name of STMicroelectronics nor the names of its contributors
17 * may be used to endorse or promote products derived from this software
18 * without specific prior written permission.
20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
23 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
24 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
26 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
27 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
28 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31 ******************************************************************************
33 /* Includes ------------------------------------------------------------------*/
34 #include "stm32f1xx_hal.h"
35 #include "stm32f1xx.h"
36 #include "stm32f1xx_it.h"
38 /* USER CODE BEGIN 0 */
44 /* External variables --------------------------------------------------------*/
45 extern PCD_HandleTypeDef hpcd_USB_FS;
47 /******************************************************************************/
48 /* Cortex-M3 Processor Interruption and Exception Handlers */
49 /******************************************************************************/
52 * @brief This function handles Non maskable interrupt.
54 void NMI_Handler(void)
56 /* USER CODE BEGIN NonMaskableInt_IRQn 0 */
58 /* USER CODE END NonMaskableInt_IRQn 0 */
59 /* USER CODE BEGIN NonMaskableInt_IRQn 1 */
61 /* USER CODE END NonMaskableInt_IRQn 1 */
65 * @brief This function handles Hard fault interrupt.
67 void HardFault_Handler(void)
69 /* USER CODE BEGIN HardFault_IRQn 0 */
71 /* USER CODE END HardFault_IRQn 0 */
74 /* USER CODE BEGIN W1_HardFault_IRQn 0 */
75 /* USER CODE END W1_HardFault_IRQn 0 */
77 /* USER CODE BEGIN HardFault_IRQn 1 */
79 /* USER CODE END HardFault_IRQn 1 */
83 * @brief This function handles Memory management fault.
85 void MemManage_Handler(void)
87 /* USER CODE BEGIN MemoryManagement_IRQn 0 */
89 /* USER CODE END MemoryManagement_IRQn 0 */
92 /* USER CODE BEGIN W1_MemoryManagement_IRQn 0 */
93 /* USER CODE END W1_MemoryManagement_IRQn 0 */
95 /* USER CODE BEGIN MemoryManagement_IRQn 1 */
97 /* USER CODE END MemoryManagement_IRQn 1 */
101 * @brief This function handles Prefetch fault, memory access fault.
103 void BusFault_Handler(void)
105 /* USER CODE BEGIN BusFault_IRQn 0 */
107 /* USER CODE END BusFault_IRQn 0 */
110 /* USER CODE BEGIN W1_BusFault_IRQn 0 */
111 /* USER CODE END W1_BusFault_IRQn 0 */
113 /* USER CODE BEGIN BusFault_IRQn 1 */
115 /* USER CODE END BusFault_IRQn 1 */
119 * @brief This function handles Undefined instruction or illegal state.
121 void UsageFault_Handler(void)
123 /* USER CODE BEGIN UsageFault_IRQn 0 */
125 /* USER CODE END UsageFault_IRQn 0 */
128 /* USER CODE BEGIN W1_UsageFault_IRQn 0 */
129 /* USER CODE END W1_UsageFault_IRQn 0 */
131 /* USER CODE BEGIN UsageFault_IRQn 1 */
133 /* USER CODE END UsageFault_IRQn 1 */
137 * @brief This function handles System service call via SWI instruction.
139 void SVC_Handler(void)
141 /* USER CODE BEGIN SVCall_IRQn 0 */
143 /* USER CODE END SVCall_IRQn 0 */
144 /* USER CODE BEGIN SVCall_IRQn 1 */
146 /* USER CODE END SVCall_IRQn 1 */
150 * @brief This function handles Debug monitor.
152 void DebugMon_Handler(void)
154 /* USER CODE BEGIN DebugMonitor_IRQn 0 */
156 /* USER CODE END DebugMonitor_IRQn 0 */
157 /* USER CODE BEGIN DebugMonitor_IRQn 1 */
159 /* USER CODE END DebugMonitor_IRQn 1 */
163 * @brief This function handles Pendable request for system service.
165 void PendSV_Handler(void)
167 /* USER CODE BEGIN PendSV_IRQn 0 */
169 /* USER CODE END PendSV_IRQn 0 */
170 /* USER CODE BEGIN PendSV_IRQn 1 */
172 /* USER CODE END PendSV_IRQn 1 */
176 * @brief This function handles System tick timer.
178 void SysTick_Handler(void)
180 /* USER CODE BEGIN SysTick_IRQn 0 */
182 /* USER CODE END SysTick_IRQn 0 */
184 HAL_SYSTICK_IRQHandler();
185 /* USER CODE BEGIN SysTick_IRQn 1 */
187 /* USER CODE END SysTick_IRQn 1 */
190 /******************************************************************************/
191 /* STM32F1xx Peripheral Interrupt Handlers */
192 /* Add here the Interrupt Handlers for the used peripherals. */
193 /* For the available peripheral interrupt handler names, */
194 /* please refer to the startup file (startup_stm32f1xx.s). */
195 /******************************************************************************/
198 * @brief This function handles DMA1 channel6 global interrupt.
200 void DMA1_Channel6_IRQHandler(void)
202 /* USER CODE BEGIN DMA1_Channel6_IRQn 0 */
204 /* USER CODE END DMA1_Channel6_IRQn 0 */
206 /* USER CODE BEGIN DMA1_Channel6_IRQn 1 */
208 /* USER CODE END DMA1_Channel6_IRQn 1 */
212 * @brief This function handles USB high priority or CAN TX interrupts.
214 void USB_HP_CAN1_TX_IRQHandler(void)
216 /* USER CODE BEGIN USB_HP_CAN1_TX_IRQn 0 */
218 /* USER CODE END USB_HP_CAN1_TX_IRQn 0 */
219 HAL_PCD_IRQHandler(&hpcd_USB_FS);
220 /* USER CODE BEGIN USB_HP_CAN1_TX_IRQn 1 */
222 /* USER CODE END USB_HP_CAN1_TX_IRQn 1 */
226 * @brief This function handles USB low priority or CAN RX0 interrupts.
228 void USB_LP_CAN1_RX0_IRQHandler(void)
230 /* USER CODE BEGIN USB_LP_CAN1_RX0_IRQn 0 */
232 /* USER CODE END USB_LP_CAN1_RX0_IRQn 0 */
233 HAL_PCD_IRQHandler(&hpcd_USB_FS);
234 /* USER CODE BEGIN USB_LP_CAN1_RX0_IRQn 1 */
236 /* USER CODE END USB_LP_CAN1_RX0_IRQn 1 */
240 * @brief This function handles TIM3 global interrupt.
242 void TIM3_IRQHandler(void)
244 /* USER CODE BEGIN TIM3_IRQn 0 */
246 /* USER CODE END TIM3_IRQn 0 */
247 /* USER CODE BEGIN TIM3_IRQn 1 */
249 /* USER CODE END TIM3_IRQn 1 */
253 * @brief This function handles TIM4 global interrupt.
255 void TIM4_IRQHandler(void)
257 /* USER CODE BEGIN TIM4_IRQn 0 */
258 if (LL_TIM_IsActiveFlag_UPDATE(TIM4))
261 LL_TIM_ClearFlag_UPDATE(TIM4);
264 /* USER CODE END TIM4_IRQn 0 */
265 /* USER CODE BEGIN TIM4_IRQn 1 */
267 /* USER CODE END TIM4_IRQn 1 */
270 /* USER CODE BEGIN 1 */
272 /* USER CODE END 1 */
273 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/