You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

315 lines
7.8 KiB

1 year ago
  1. /* USER CODE BEGIN Header */
  2. /**
  3. ******************************************************************************
  4. * @file stm32f4xx_it.c
  5. * @brief Interrupt Service Routines.
  6. ******************************************************************************
  7. * @attention
  8. *
  9. * Copyright (c) 2023 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. /* Includes ------------------------------------------------------------------*/
  20. #include "main.h"
  21. #include "stm32f4xx_it.h"
  22. /* Private includes ----------------------------------------------------------*/
  23. /* USER CODE BEGIN Includes */
  24. /* USER CODE END Includes */
  25. /* Private typedef -----------------------------------------------------------*/
  26. /* USER CODE BEGIN TD */
  27. /* USER CODE END TD */
  28. /* Private define ------------------------------------------------------------*/
  29. /* USER CODE BEGIN PD */
  30. /* USER CODE END PD */
  31. /* Private macro -------------------------------------------------------------*/
  32. /* USER CODE BEGIN PM */
  33. /* USER CODE END PM */
  34. /* Private variables ---------------------------------------------------------*/
  35. /* USER CODE BEGIN PV */
  36. /* USER CODE END PV */
  37. /* Private function prototypes -----------------------------------------------*/
  38. /* USER CODE BEGIN PFP */
  39. /* USER CODE END PFP */
  40. /* Private user code ---------------------------------------------------------*/
  41. /* USER CODE BEGIN 0 */
  42. /* USER CODE END 0 */
  43. /* External variables --------------------------------------------------------*/
  44. extern ETH_HandleTypeDef heth;
  45. extern DMA_HandleTypeDef hdma_spi1_rx;
  46. extern DMA_HandleTypeDef hdma_spi1_tx;
  47. extern SPI_HandleTypeDef hspi1;
  48. extern TIM_HandleTypeDef htim1;
  49. extern TIM_HandleTypeDef htim6;
  50. extern TIM_HandleTypeDef htim7;
  51. extern DMA_HandleTypeDef hdma_usart3_rx;
  52. extern DMA_HandleTypeDef hdma_usart3_tx;
  53. extern UART_HandleTypeDef huart3;
  54. extern TIM_HandleTypeDef htim11;
  55. /* USER CODE BEGIN EV */
  56. /* USER CODE END EV */
  57. /******************************************************************************/
  58. /* Cortex-M4 Processor Interruption and Exception Handlers */
  59. /******************************************************************************/
  60. /**
  61. * @brief This function handles Non maskable interrupt.
  62. */
  63. void NMI_Handler(void)
  64. {
  65. /* USER CODE BEGIN NonMaskableInt_IRQn 0 */
  66. /* USER CODE END NonMaskableInt_IRQn 0 */
  67. /* USER CODE BEGIN NonMaskableInt_IRQn 1 */
  68. while (1)
  69. {
  70. }
  71. /* USER CODE END NonMaskableInt_IRQn 1 */
  72. }
  73. /**
  74. * @brief This function handles Hard fault interrupt.
  75. */
  76. void HardFault_Handler(void)
  77. {
  78. /* USER CODE BEGIN HardFault_IRQn 0 */
  79. /* USER CODE END HardFault_IRQn 0 */
  80. while (1)
  81. {
  82. /* USER CODE BEGIN W1_HardFault_IRQn 0 */
  83. /* USER CODE END W1_HardFault_IRQn 0 */
  84. }
  85. }
  86. /**
  87. * @brief This function handles Memory management fault.
  88. */
  89. void MemManage_Handler(void)
  90. {
  91. /* USER CODE BEGIN MemoryManagement_IRQn 0 */
  92. /* USER CODE END MemoryManagement_IRQn 0 */
  93. while (1)
  94. {
  95. /* USER CODE BEGIN W1_MemoryManagement_IRQn 0 */
  96. /* USER CODE END W1_MemoryManagement_IRQn 0 */
  97. }
  98. }
  99. /**
  100. * @brief This function handles Pre-fetch fault, memory access fault.
  101. */
  102. void BusFault_Handler(void)
  103. {
  104. /* USER CODE BEGIN BusFault_IRQn 0 */
  105. /* USER CODE END BusFault_IRQn 0 */
  106. while (1)
  107. {
  108. /* USER CODE BEGIN W1_BusFault_IRQn 0 */
  109. /* USER CODE END W1_BusFault_IRQn 0 */
  110. }
  111. }
  112. /**
  113. * @brief This function handles Undefined instruction or illegal state.
  114. */
  115. void UsageFault_Handler(void)
  116. {
  117. /* USER CODE BEGIN UsageFault_IRQn 0 */
  118. /* USER CODE END UsageFault_IRQn 0 */
  119. while (1)
  120. {
  121. /* USER CODE BEGIN W1_UsageFault_IRQn 0 */
  122. /* USER CODE END W1_UsageFault_IRQn 0 */
  123. }
  124. }
  125. /**
  126. * @brief This function handles Debug monitor.
  127. */
  128. void DebugMon_Handler(void)
  129. {
  130. /* USER CODE BEGIN DebugMonitor_IRQn 0 */
  131. /* USER CODE END DebugMonitor_IRQn 0 */
  132. /* USER CODE BEGIN DebugMonitor_IRQn 1 */
  133. /* USER CODE END DebugMonitor_IRQn 1 */
  134. }
  135. /******************************************************************************/
  136. /* STM32F4xx Peripheral Interrupt Handlers */
  137. /* Add here the Interrupt Handlers for the used peripherals. */
  138. /* For the available peripheral interrupt handler names, */
  139. /* please refer to the startup file (startup_stm32f4xx.s). */
  140. /******************************************************************************/
  141. /**
  142. * @brief This function handles DMA1 stream1 global interrupt.
  143. */
  144. void DMA1_Stream1_IRQHandler(void)
  145. {
  146. /* USER CODE BEGIN DMA1_Stream1_IRQn 0 */
  147. /* USER CODE END DMA1_Stream1_IRQn 0 */
  148. HAL_DMA_IRQHandler(&hdma_usart3_rx);
  149. /* USER CODE BEGIN DMA1_Stream1_IRQn 1 */
  150. /* USER CODE END DMA1_Stream1_IRQn 1 */
  151. }
  152. /**
  153. * @brief This function handles DMA1 stream3 global interrupt.
  154. */
  155. void DMA1_Stream3_IRQHandler(void)
  156. {
  157. /* USER CODE BEGIN DMA1_Stream3_IRQn 0 */
  158. /* USER CODE END DMA1_Stream3_IRQn 0 */
  159. HAL_DMA_IRQHandler(&hdma_usart3_tx);
  160. /* USER CODE BEGIN DMA1_Stream3_IRQn 1 */
  161. /* USER CODE END DMA1_Stream3_IRQn 1 */
  162. }
  163. /**
  164. * @brief This function handles TIM1 trigger and commutation interrupts and TIM11 global interrupt.
  165. */
  166. void TIM1_TRG_COM_TIM11_IRQHandler(void)
  167. {
  168. /* USER CODE BEGIN TIM1_TRG_COM_TIM11_IRQn 0 */
  169. /* USER CODE END TIM1_TRG_COM_TIM11_IRQn 0 */
  170. HAL_TIM_IRQHandler(&htim1);
  171. HAL_TIM_IRQHandler(&htim11);
  172. /* USER CODE BEGIN TIM1_TRG_COM_TIM11_IRQn 1 */
  173. /* USER CODE END TIM1_TRG_COM_TIM11_IRQn 1 */
  174. }
  175. /**
  176. * @brief This function handles SPI1 global interrupt.
  177. */
  178. void SPI1_IRQHandler(void)
  179. {
  180. /* USER CODE BEGIN SPI1_IRQn 0 */
  181. /* USER CODE END SPI1_IRQn 0 */
  182. HAL_SPI_IRQHandler(&hspi1);
  183. /* USER CODE BEGIN SPI1_IRQn 1 */
  184. /* USER CODE END SPI1_IRQn 1 */
  185. }
  186. /**
  187. * @brief This function handles USART3 global interrupt.
  188. */
  189. void USART3_IRQHandler(void)
  190. {
  191. /* USER CODE BEGIN USART3_IRQn 0 */
  192. /* USER CODE END USART3_IRQn 0 */
  193. HAL_UART_IRQHandler(&huart3);
  194. /* USER CODE BEGIN USART3_IRQn 1 */
  195. /* USER CODE END USART3_IRQn 1 */
  196. }
  197. /**
  198. * @brief This function handles TIM6 global interrupt, DAC1 and DAC2 underrun error interrupts.
  199. */
  200. void TIM6_DAC_IRQHandler(void)
  201. {
  202. /* USER CODE BEGIN TIM6_DAC_IRQn 0 */
  203. /* USER CODE END TIM6_DAC_IRQn 0 */
  204. HAL_TIM_IRQHandler(&htim6);
  205. /* USER CODE BEGIN TIM6_DAC_IRQn 1 */
  206. /* USER CODE END TIM6_DAC_IRQn 1 */
  207. }
  208. /**
  209. * @brief This function handles TIM7 global interrupt.
  210. */
  211. void TIM7_IRQHandler(void)
  212. {
  213. /* USER CODE BEGIN TIM7_IRQn 0 */
  214. /* USER CODE END TIM7_IRQn 0 */
  215. HAL_TIM_IRQHandler(&htim7);
  216. /* USER CODE BEGIN TIM7_IRQn 1 */
  217. /* USER CODE END TIM7_IRQn 1 */
  218. }
  219. /**
  220. * @brief This function handles DMA2 stream0 global interrupt.
  221. */
  222. void DMA2_Stream0_IRQHandler(void)
  223. {
  224. /* USER CODE BEGIN DMA2_Stream0_IRQn 0 */
  225. /* USER CODE END DMA2_Stream0_IRQn 0 */
  226. HAL_DMA_IRQHandler(&hdma_spi1_rx);
  227. /* USER CODE BEGIN DMA2_Stream0_IRQn 1 */
  228. /* USER CODE END DMA2_Stream0_IRQn 1 */
  229. }
  230. /**
  231. * @brief This function handles DMA2 stream3 global interrupt.
  232. */
  233. void DMA2_Stream3_IRQHandler(void)
  234. {
  235. /* USER CODE BEGIN DMA2_Stream3_IRQn 0 */
  236. /* USER CODE END DMA2_Stream3_IRQn 0 */
  237. HAL_DMA_IRQHandler(&hdma_spi1_tx);
  238. /* USER CODE BEGIN DMA2_Stream3_IRQn 1 */
  239. /* USER CODE END DMA2_Stream3_IRQn 1 */
  240. }
  241. /**
  242. * @brief This function handles Ethernet global interrupt.
  243. */
  244. void ETH_IRQHandler(void)
  245. {
  246. /* USER CODE BEGIN ETH_IRQn 0 */
  247. /* USER CODE END ETH_IRQn 0 */
  248. HAL_ETH_IRQHandler(&heth);
  249. /* USER CODE BEGIN ETH_IRQn 1 */
  250. /* USER CODE END ETH_IRQn 1 */
  251. }
  252. /* USER CODE BEGIN 1 */
  253. /* USER CODE END 1 */