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 SPI_HandleTypeDef hspi1;
75 extern UART_HandleTypeDef huart1;
76 extern PCD_HandleTypeDef hpcd_USB_OTG_FS;
77 /* USER CODE BEGIN EV */
78 
79 /* USER CODE END EV */
80 
81 /******************************************************************************/
82 /*           Cortex-M4 Processor Interruption and Exception Handlers          */
83 /******************************************************************************/
84 /**
85   * @brief This function handles Non maskable interrupt.
86   */
NMI_Handler(void)87 void NMI_Handler(void)
88 {
89   /* USER CODE BEGIN NonMaskableInt_IRQn 0 */
90 
91   /* USER CODE END NonMaskableInt_IRQn 0 */
92   /* USER CODE BEGIN NonMaskableInt_IRQn 1 */
93 
94   /* USER CODE END NonMaskableInt_IRQn 1 */
95 }
96 
97 /**
98   * @brief This function handles Hard fault interrupt.
99   */
HardFault_Handler(void)100 void HardFault_Handler(void)
101 {
102   /* USER CODE BEGIN HardFault_IRQn 0 */
103 
104   /* USER CODE END HardFault_IRQn 0 */
105   while (1)
106   {
107     /* USER CODE BEGIN W1_HardFault_IRQn 0 */
108     /* USER CODE END W1_HardFault_IRQn 0 */
109   }
110 }
111 
112 /**
113   * @brief This function handles Memory management fault.
114   */
MemManage_Handler(void)115 void MemManage_Handler(void)
116 {
117   /* USER CODE BEGIN MemoryManagement_IRQn 0 */
118 
119   /* USER CODE END MemoryManagement_IRQn 0 */
120   while (1)
121   {
122     /* USER CODE BEGIN W1_MemoryManagement_IRQn 0 */
123     /* USER CODE END W1_MemoryManagement_IRQn 0 */
124   }
125 }
126 
127 /**
128   * @brief This function handles Pre-fetch fault, memory access fault.
129   */
BusFault_Handler(void)130 void BusFault_Handler(void)
131 {
132   /* USER CODE BEGIN BusFault_IRQn 0 */
133 
134   /* USER CODE END BusFault_IRQn 0 */
135   while (1)
136   {
137     /* USER CODE BEGIN W1_BusFault_IRQn 0 */
138     /* USER CODE END W1_BusFault_IRQn 0 */
139   }
140 }
141 
142 /**
143   * @brief This function handles Undefined instruction or illegal state.
144   */
UsageFault_Handler(void)145 void UsageFault_Handler(void)
146 {
147   /* USER CODE BEGIN UsageFault_IRQn 0 */
148 
149   /* USER CODE END UsageFault_IRQn 0 */
150   while (1)
151   {
152     /* USER CODE BEGIN W1_UsageFault_IRQn 0 */
153     /* USER CODE END W1_UsageFault_IRQn 0 */
154   }
155 }
156 
157 /**
158   * @brief This function handles System service call via SWI instruction.
159   */
SVC_Handler(void)160 void SVC_Handler(void)
161 {
162   /* USER CODE BEGIN SVCall_IRQn 0 */
163 
164   /* USER CODE END SVCall_IRQn 0 */
165   /* USER CODE BEGIN SVCall_IRQn 1 */
166 
167   /* USER CODE END SVCall_IRQn 1 */
168 }
169 
170 /**
171   * @brief This function handles Debug monitor.
172   */
DebugMon_Handler(void)173 void DebugMon_Handler(void)
174 {
175   /* USER CODE BEGIN DebugMonitor_IRQn 0 */
176 
177   /* USER CODE END DebugMonitor_IRQn 0 */
178   /* USER CODE BEGIN DebugMonitor_IRQn 1 */
179 
180   /* USER CODE END DebugMonitor_IRQn 1 */
181 }
182 
183 /**
184   * @brief This function handles Pendable request for system service.
185   */
PendSV_Handler(void)186 void PendSV_Handler(void)
187 {
188   /* USER CODE BEGIN PendSV_IRQn 0 */
189 
190   /* USER CODE END PendSV_IRQn 0 */
191   /* USER CODE BEGIN PendSV_IRQn 1 */
192 
193   /* USER CODE END PendSV_IRQn 1 */
194 }
195 
196 /**
197   * @brief This function handles System tick timer.
198   */
SysTick_Handler(void)199 void SysTick_Handler(void)
200 {
201   /* USER CODE BEGIN SysTick_IRQn 0 */
202 
203   /* USER CODE END SysTick_IRQn 0 */
204   HAL_IncTick();
205   /* USER CODE BEGIN SysTick_IRQn 1 */
206 
207   /* USER CODE END SysTick_IRQn 1 */
208 }
209 
210 /******************************************************************************/
211 /* STM32F4xx Peripheral Interrupt Handlers                                    */
212 /* Add here the Interrupt Handlers for the used peripherals.                  */
213 /* For the available peripheral interrupt handler names,                      */
214 /* please refer to the startup file (startup_stm32f4xx.s).                    */
215 /******************************************************************************/
216 
217 /**
218   * @brief This function handles SPI1 global interrupt.
219   */
SPI1_IRQHandler(void)220 void SPI1_IRQHandler(void)
221 {
222   /* USER CODE BEGIN SPI1_IRQn 0 */
223 
224   /* USER CODE END SPI1_IRQn 0 */
225   HAL_SPI_IRQHandler(&hspi1);
226   /* USER CODE BEGIN SPI1_IRQn 1 */
227 
228   /* USER CODE END SPI1_IRQn 1 */
229 }
230 
231 /**
232   * @brief This function handles USART1 global interrupt.
233   */
USART1_IRQHandler(void)234 void USART1_IRQHandler(void)
235 {
236   /* USER CODE BEGIN USART1_IRQn 0 */
237 
238   /* USER CODE END USART1_IRQn 0 */
239   HAL_UART_IRQHandler(&huart1);
240   /* USER CODE BEGIN USART1_IRQn 1 */
241 
242   /* USER CODE END USART1_IRQn 1 */
243 }
244 
245 /**
246   * @brief This function handles USB On The Go FS global interrupt.
247   */
OTG_FS_IRQHandler(void)248 void OTG_FS_IRQHandler(void)
249 {
250   /* USER CODE BEGIN OTG_FS_IRQn 0 */
251   //You can open usb device or usb host, but open both of them is fatal error.
252   /* USER CODE END OTG_FS_IRQn 0 */
253   HAL_PCD_IRQHandler(&hpcd_USB_OTG_FS);
254   /* USER CODE BEGIN OTG_FS_IRQn 1 */
255 
256   /* USER CODE END OTG_FS_IRQn 1 */
257 }
258 
259 /* USER CODE BEGIN 1 */
260 
261 /* USER CODE END 1 */
262 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
263