1 /* USER CODE BEGIN Header */
2 /**
3 ******************************************************************************
4 * @file stm32f4xx_it.c
5 * @brief Interrupt Service Routines.
6 ******************************************************************************
7 *
8 * COPYRIGHT(c) 2018 STMicroelectronics
9 *
10 * Redistribution and use in source and binary forms, with or without modification,
11 * are permitted provided that the following conditions are met:
12 * 1. Redistributions of source code must retain the above copyright notice,
13 * this list of conditions and the following disclaimer.
14 * 2. Redistributions in binary form must reproduce the above copyright notice,
15 * this list of conditions and the following disclaimer in the documentation
16 * and/or other materials provided with the distribution.
17 * 3. Neither the name of STMicroelectronics nor the names of its contributors
18 * may be used to endorse or promote products derived from this software
19 * without specific prior written permission.
20 *
21 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
22 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
24 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
25 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
26 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
27 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
28 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
29 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31 *
32 ******************************************************************************
33 */
34 /* USER CODE END Header */
35
36 /* Includes ------------------------------------------------------------------*/
37 #include "main.h"
38 #include "stm32f4xx_it.h"
39 /* Private includes ----------------------------------------------------------*/
40 /* USER CODE BEGIN Includes */
41 /* USER CODE END Includes */
42
43 /* Private typedef -----------------------------------------------------------*/
44 /* USER CODE BEGIN TD */
45
46 /* USER CODE END TD */
47
48 /* Private define ------------------------------------------------------------*/
49 /* USER CODE BEGIN PD */
50
51 /* USER CODE END PD */
52
53 /* Private macro -------------------------------------------------------------*/
54 /* USER CODE BEGIN PM */
55
56 /* USER CODE END PM */
57
58 /* Private variables ---------------------------------------------------------*/
59 /* USER CODE BEGIN PV */
60
61 /* USER CODE END PV */
62
63 /* Private function prototypes -----------------------------------------------*/
64 /* USER CODE BEGIN PFP */
65
66 /* USER CODE END PFP */
67
68 /* Private user code ---------------------------------------------------------*/
69 /* USER CODE BEGIN 0 */
70
71 /* USER CODE END 0 */
72
73 /* External variables --------------------------------------------------------*/
74 extern UART_HandleTypeDef huart1;
75 extern PCD_HandleTypeDef hpcd_USB_OTG_FS;
76 /* USER CODE BEGIN EV */
77
78 /* USER CODE END EV */
79
80 /******************************************************************************/
81 /* Cortex-M4 Processor Interruption and Exception Handlers */
82 /******************************************************************************/
83 /**
84 * @brief This function handles Non maskable interrupt.
85 */
NMI_Handler(void)86 void NMI_Handler(void)
87 {
88 /* USER CODE BEGIN NonMaskableInt_IRQn 0 */
89
90 /* USER CODE END NonMaskableInt_IRQn 0 */
91 /* USER CODE BEGIN NonMaskableInt_IRQn 1 */
92
93 /* USER CODE END NonMaskableInt_IRQn 1 */
94 }
95
96 /**
97 * @brief This function handles Hard fault interrupt.
98 */
HardFault_Handler(void)99 void HardFault_Handler(void)
100 {
101 /* USER CODE BEGIN HardFault_IRQn 0 */
102
103 /* USER CODE END HardFault_IRQn 0 */
104 while (1)
105 {
106 /* USER CODE BEGIN W1_HardFault_IRQn 0 */
107 /* USER CODE END W1_HardFault_IRQn 0 */
108 }
109 }
110
111 /**
112 * @brief This function handles Memory management fault.
113 */
MemManage_Handler(void)114 void MemManage_Handler(void)
115 {
116 /* USER CODE BEGIN MemoryManagement_IRQn 0 */
117
118 /* USER CODE END MemoryManagement_IRQn 0 */
119 while (1)
120 {
121 /* USER CODE BEGIN W1_MemoryManagement_IRQn 0 */
122 /* USER CODE END W1_MemoryManagement_IRQn 0 */
123 }
124 }
125
126 /**
127 * @brief This function handles Pre-fetch fault, memory access fault.
128 */
BusFault_Handler(void)129 void BusFault_Handler(void)
130 {
131 /* USER CODE BEGIN BusFault_IRQn 0 */
132
133 /* USER CODE END BusFault_IRQn 0 */
134 while (1)
135 {
136 /* USER CODE BEGIN W1_BusFault_IRQn 0 */
137 /* USER CODE END W1_BusFault_IRQn 0 */
138 }
139 }
140
141 /**
142 * @brief This function handles Undefined instruction or illegal state.
143 */
UsageFault_Handler(void)144 void UsageFault_Handler(void)
145 {
146 /* USER CODE BEGIN UsageFault_IRQn 0 */
147
148 /* USER CODE END UsageFault_IRQn 0 */
149 while (1)
150 {
151 /* USER CODE BEGIN W1_UsageFault_IRQn 0 */
152 /* USER CODE END W1_UsageFault_IRQn 0 */
153 }
154 }
155
156 /**
157 * @brief This function handles System service call via SWI instruction.
158 */
SVC_Handler(void)159 void SVC_Handler(void)
160 {
161 /* USER CODE BEGIN SVCall_IRQn 0 */
162
163 /* USER CODE END SVCall_IRQn 0 */
164 /* USER CODE BEGIN SVCall_IRQn 1 */
165
166 /* USER CODE END SVCall_IRQn 1 */
167 }
168
169 /**
170 * @brief This function handles Debug monitor.
171 */
DebugMon_Handler(void)172 void DebugMon_Handler(void)
173 {
174 /* USER CODE BEGIN DebugMonitor_IRQn 0 */
175
176 /* USER CODE END DebugMonitor_IRQn 0 */
177 /* USER CODE BEGIN DebugMonitor_IRQn 1 */
178
179 /* USER CODE END DebugMonitor_IRQn 1 */
180 }
181
182 /**
183 * @brief This function handles Pendable request for system service.
184 */
PendSV_Handler(void)185 void PendSV_Handler(void)
186 {
187 /* USER CODE BEGIN PendSV_IRQn 0 */
188
189 /* USER CODE END PendSV_IRQn 0 */
190 /* USER CODE BEGIN PendSV_IRQn 1 */
191
192 /* USER CODE END PendSV_IRQn 1 */
193 }
194
195 /**
196 * @brief This function handles System tick timer.
197 */
SysTick_Handler(void)198 void SysTick_Handler(void)
199 {
200 /* USER CODE BEGIN SysTick_IRQn 0 */
201
202 /* USER CODE END SysTick_IRQn 0 */
203 HAL_IncTick();
204 /* USER CODE BEGIN SysTick_IRQn 1 */
205
206 /* USER CODE END SysTick_IRQn 1 */
207 }
208
209 /******************************************************************************/
210 /* STM32F4xx Peripheral Interrupt Handlers */
211 /* Add here the Interrupt Handlers for the used peripherals. */
212 /* For the available peripheral interrupt handler names, */
213 /* please refer to the startup file (startup_stm32f4xx.s). */
214 /******************************************************************************/
215
216 /**
217 * @brief This function handles USART1 global interrupt.
218 */
USART1_IRQHandler(void)219 void USART1_IRQHandler(void)
220 {
221 /* USER CODE BEGIN USART1_IRQn 0 */
222
223 /* USER CODE END USART1_IRQn 0 */
224 HAL_UART_IRQHandler(&huart1);
225 /* USER CODE BEGIN USART1_IRQn 1 */
226
227 /* USER CODE END USART1_IRQn 1 */
228 }
229
230 /**
231 * @brief This function handles USB On The Go FS global interrupt.
232 */
OTG_FS_IRQHandler(void)233 void OTG_FS_IRQHandler(void)
234 {
235 /* USER CODE BEGIN OTG_FS_IRQn 0 */
236 //You can open usb device or usb host, but open both of them is fatal error.
237 /* USER CODE END OTG_FS_IRQn 0 */
238 HAL_PCD_IRQHandler(&hpcd_USB_OTG_FS);
239 /* USER CODE BEGIN OTG_FS_IRQn 1 */
240
241 /* USER CODE END OTG_FS_IRQn 1 */
242 }
243
244 /* USER CODE BEGIN 1 */
245
246 /* USER CODE END 1 */
247