source: trunk/fw_g473rct/Core/Src/stm32g4xx_it.c

Last change on this file was 38, checked in by f.jahn, 7 weeks ago
File size: 9.6 KB
Line 
1/* USER CODE BEGIN Header */
2/**
3 ******************************************************************************
4 * @file stm32g4xx_it.c
5 * @brief Interrupt Service Routines.
6 ******************************************************************************
7 * @attention
8 *
9 * Copyright (c) 2025 STMicroelectronics.
10 * All rights reserved.
11 *
12 * This software is licensed under terms that can be found in the LICENSE file
13 * in the root directory of this software component.
14 * If no LICENSE file comes with this software, it is provided AS-IS.
15 *
16 ******************************************************************************
17 */
18/* USER CODE END Header */
19
20/* Includes ------------------------------------------------------------------*/
21#include "main.h"
22#include "stm32g4xx_it.h"
23/* Private includes ----------------------------------------------------------*/
24/* USER CODE BEGIN Includes */
25#include "sysdata.h"
26#include "ads1260.h"
27/* USER CODE END Includes */
28
29/* Private typedef -----------------------------------------------------------*/
30/* USER CODE BEGIN TD */
31
32/* USER CODE END TD */
33
34/* Private define ------------------------------------------------------------*/
35/* USER CODE BEGIN PD */
36
37/* USER CODE END PD */
38
39/* Private macro -------------------------------------------------------------*/
40/* USER CODE BEGIN PM */
41
42/* USER CODE END PM */
43
44/* Private variables ---------------------------------------------------------*/
45/* USER CODE BEGIN PV */
46
47/* USER CODE END PV */
48
49/* Private function prototypes -----------------------------------------------*/
50/* USER CODE BEGIN PFP */
51
52/* USER CODE END PFP */
53
54/* Private user code ---------------------------------------------------------*/
55/* USER CODE BEGIN 0 */
56
57/* USER CODE END 0 */
58
59/* External variables --------------------------------------------------------*/
60extern DMA_HandleTypeDef hdma_adc1;
61extern DMA_HandleTypeDef hdma_adc2;
62extern DMA_HandleTypeDef hdma_adc3;
63extern DMA_HandleTypeDef hdma_adc4;
64extern DMA_HandleTypeDef hdma_adc5;
65extern DMA_HandleTypeDef hdma_usart2_rx;
66extern DMA_HandleTypeDef hdma_usart2_tx;
67extern UART_HandleTypeDef huart1;
68extern UART_HandleTypeDef huart2;
69/* USER CODE BEGIN EV */
70extern sys_data_t sys_data;
71/* USER CODE END EV */
72
73/******************************************************************************/
74/* Cortex-M4 Processor Interruption and Exception Handlers */
75/******************************************************************************/
76/**
77 * @brief This function handles Non maskable interrupt.
78 */
79void NMI_Handler(void)
80{
81 /* USER CODE BEGIN NonMaskableInt_IRQn 0 */
82
83 /* USER CODE END NonMaskableInt_IRQn 0 */
84 /* USER CODE BEGIN NonMaskableInt_IRQn 1 */
85 while (1)
86 {
87 }
88 /* USER CODE END NonMaskableInt_IRQn 1 */
89}
90
91/**
92 * @brief This function handles Hard fault interrupt.
93 */
94void HardFault_Handler(void)
95{
96 /* USER CODE BEGIN HardFault_IRQn 0 */
97
98 /* USER CODE END HardFault_IRQn 0 */
99 while (1)
100 {
101 /* USER CODE BEGIN W1_HardFault_IRQn 0 */
102 /* USER CODE END W1_HardFault_IRQn 0 */
103 }
104}
105
106/**
107 * @brief This function handles Memory management fault.
108 */
109void MemManage_Handler(void)
110{
111 /* USER CODE BEGIN MemoryManagement_IRQn 0 */
112
113 /* USER CODE END MemoryManagement_IRQn 0 */
114 while (1)
115 {
116 /* USER CODE BEGIN W1_MemoryManagement_IRQn 0 */
117 /* USER CODE END W1_MemoryManagement_IRQn 0 */
118 }
119}
120
121/**
122 * @brief This function handles Prefetch fault, memory access fault.
123 */
124void BusFault_Handler(void)
125{
126 /* USER CODE BEGIN BusFault_IRQn 0 */
127
128 /* USER CODE END BusFault_IRQn 0 */
129 while (1)
130 {
131 /* USER CODE BEGIN W1_BusFault_IRQn 0 */
132 /* USER CODE END W1_BusFault_IRQn 0 */
133 }
134}
135
136/**
137 * @brief This function handles Undefined instruction or illegal state.
138 */
139void UsageFault_Handler(void)
140{
141 /* USER CODE BEGIN UsageFault_IRQn 0 */
142
143 /* USER CODE END UsageFault_IRQn 0 */
144 while (1)
145 {
146 /* USER CODE BEGIN W1_UsageFault_IRQn 0 */
147 /* USER CODE END W1_UsageFault_IRQn 0 */
148 }
149}
150
151/**
152 * @brief This function handles System service call via SWI instruction.
153 */
154void SVC_Handler(void)
155{
156 /* USER CODE BEGIN SVCall_IRQn 0 */
157
158 /* USER CODE END SVCall_IRQn 0 */
159 /* USER CODE BEGIN SVCall_IRQn 1 */
160
161 /* USER CODE END SVCall_IRQn 1 */
162}
163
164/**
165 * @brief This function handles Debug monitor.
166 */
167void DebugMon_Handler(void)
168{
169 /* USER CODE BEGIN DebugMonitor_IRQn 0 */
170
171 /* USER CODE END DebugMonitor_IRQn 0 */
172 /* USER CODE BEGIN DebugMonitor_IRQn 1 */
173
174 /* USER CODE END DebugMonitor_IRQn 1 */
175}
176
177/**
178 * @brief This function handles Pendable request for system service.
179 */
180void PendSV_Handler(void)
181{
182 /* USER CODE BEGIN PendSV_IRQn 0 */
183
184 /* USER CODE END PendSV_IRQn 0 */
185 /* USER CODE BEGIN PendSV_IRQn 1 */
186
187 /* USER CODE END PendSV_IRQn 1 */
188}
189
190/**
191 * @brief This function handles System tick timer.
192 */
193void SysTick_Handler(void)
194{
195 /* USER CODE BEGIN SysTick_IRQn 0 */
196
197 /* USER CODE END SysTick_IRQn 0 */
198 HAL_IncTick();
199 /* USER CODE BEGIN SysTick_IRQn 1 */
200
201 /* USER CODE END SysTick_IRQn 1 */
202}
203
204/******************************************************************************/
205/* STM32G4xx Peripheral Interrupt Handlers */
206/* Add here the Interrupt Handlers for the used peripherals. */
207/* For the available peripheral interrupt handler names, */
208/* please refer to the startup file (startup_stm32g4xx.s). */
209/******************************************************************************/
210
211/**
212 * @brief This function handles EXTI line2 interrupt.
213 */
214void EXTI2_IRQHandler(void)
215{
216 /* USER CODE BEGIN EXTI2_IRQn 0 */
217
218 /* USER CODE END EXTI2_IRQn 0 */
219 HAL_GPIO_EXTI_IRQHandler(ADC_DATA_READY_Pin);
220 /* USER CODE BEGIN EXTI2_IRQn 1 */
221
222 /* USER CODE END EXTI2_IRQn 1 */
223}
224
225/**
226 * @brief This function handles DMA1 channel1 global interrupt.
227 */
228void DMA1_Channel1_IRQHandler(void)
229{
230 /* USER CODE BEGIN DMA1_Channel1_IRQn 0 */
231
232 /* USER CODE END DMA1_Channel1_IRQn 0 */
233 HAL_DMA_IRQHandler(&hdma_adc1);
234 /* USER CODE BEGIN DMA1_Channel1_IRQn 1 */
235
236 /* USER CODE END DMA1_Channel1_IRQn 1 */
237}
238
239/**
240 * @brief This function handles DMA1 channel2 global interrupt.
241 */
242void DMA1_Channel2_IRQHandler(void)
243{
244 /* USER CODE BEGIN DMA1_Channel2_IRQn 0 */
245
246 /* USER CODE END DMA1_Channel2_IRQn 0 */
247 HAL_DMA_IRQHandler(&hdma_adc2);
248 /* USER CODE BEGIN DMA1_Channel2_IRQn 1 */
249
250 /* USER CODE END DMA1_Channel2_IRQn 1 */
251}
252
253/**
254 * @brief This function handles DMA1 channel3 global interrupt.
255 */
256void DMA1_Channel3_IRQHandler(void)
257{
258 /* USER CODE BEGIN DMA1_Channel3_IRQn 0 */
259
260 /* USER CODE END DMA1_Channel3_IRQn 0 */
261 HAL_DMA_IRQHandler(&hdma_adc3);
262 /* USER CODE BEGIN DMA1_Channel3_IRQn 1 */
263
264 /* USER CODE END DMA1_Channel3_IRQn 1 */
265}
266
267/**
268 * @brief This function handles DMA1 channel4 global interrupt.
269 */
270void DMA1_Channel4_IRQHandler(void)
271{
272 /* USER CODE BEGIN DMA1_Channel4_IRQn 0 */
273
274 /* USER CODE END DMA1_Channel4_IRQn 0 */
275 HAL_DMA_IRQHandler(&hdma_adc4);
276 /* USER CODE BEGIN DMA1_Channel4_IRQn 1 */
277
278 /* USER CODE END DMA1_Channel4_IRQn 1 */
279}
280
281/**
282 * @brief This function handles DMA1 channel5 global interrupt.
283 */
284void DMA1_Channel5_IRQHandler(void)
285{
286 /* USER CODE BEGIN DMA1_Channel5_IRQn 0 */
287
288 /* USER CODE END DMA1_Channel5_IRQn 0 */
289 HAL_DMA_IRQHandler(&hdma_adc5);
290 /* USER CODE BEGIN DMA1_Channel5_IRQn 1 */
291
292 /* USER CODE END DMA1_Channel5_IRQn 1 */
293}
294
295/**
296 * @brief This function handles DMA1 channel6 global interrupt.
297 */
298void DMA1_Channel6_IRQHandler(void)
299{
300 /* USER CODE BEGIN DMA1_Channel6_IRQn 0 */
301
302 /* USER CODE END DMA1_Channel6_IRQn 0 */
303 HAL_DMA_IRQHandler(&hdma_usart2_rx);
304 /* USER CODE BEGIN DMA1_Channel6_IRQn 1 */
305
306 /* USER CODE END DMA1_Channel6_IRQn 1 */
307}
308
309/**
310 * @brief This function handles DMA1 channel7 global interrupt.
311 */
312void DMA1_Channel7_IRQHandler(void)
313{
314 /* USER CODE BEGIN DMA1_Channel7_IRQn 0 */
315
316 /* USER CODE END DMA1_Channel7_IRQn 0 */
317 HAL_DMA_IRQHandler(&hdma_usart2_tx);
318 /* USER CODE BEGIN DMA1_Channel7_IRQn 1 */
319
320 /* USER CODE END DMA1_Channel7_IRQn 1 */
321}
322
323/**
324 * @brief This function handles EXTI line[9:5] interrupts.
325 */
326void EXTI9_5_IRQHandler(void)
327{
328 /* USER CODE BEGIN EXTI9_5_IRQn 0 */
329
330 /* USER CODE END EXTI9_5_IRQn 0 */
331 HAL_GPIO_EXTI_IRQHandler(FAULT_INT_Pin);
332 /* USER CODE BEGIN EXTI9_5_IRQn 1 */
333
334 /* USER CODE END EXTI9_5_IRQn 1 */
335}
336
337/**
338 * @brief This function handles USART1 global interrupt / USART1 wake-up interrupt through EXTI line 25.
339 */
340void USART1_IRQHandler(void)
341{
342 /* USER CODE BEGIN USART1_IRQn 0 */
343
344 /* USER CODE END USART1_IRQn 0 */
345 HAL_UART_IRQHandler(&huart1);
346 /* USER CODE BEGIN USART1_IRQn 1 */
347
348 /* USER CODE END USART1_IRQn 1 */
349}
350
351/**
352 * @brief This function handles USART2 global interrupt / USART2 wake-up interrupt through EXTI line 26.
353 */
354void USART2_IRQHandler(void)
355{
356 /* USER CODE BEGIN USART2_IRQn 0 */
357
358 /* USER CODE END USART2_IRQn 0 */
359 HAL_UART_IRQHandler(&huart2);
360 /* USER CODE BEGIN USART2_IRQn 1 */
361
362 /* USER CODE END USART2_IRQn 1 */
363}
364
365/* USER CODE BEGIN 1 */
366void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
367{
368 if (GPIO_Pin == ADC_DATA_READY_Pin)
369 {
370 newCurrentValue=1;
371 }
372 else if (GPIO_Pin == FAULT_INT_Pin)
373 {
374 sys_data.s.values.overcurrentRetryCounter++;
375 sys_data.s.values.overcurrentEventsTotal++;
376
377 }
378
379
380}
381
382/* USER CODE END 1 */
Note: See TracBrowser for help on using the repository browser.