Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
 
 
 
 
 

103 linhas
1.4 KiB

  1. /**
  2. * @file stm32f4xx_it.c
  3. * @brief STM32F407 中断服务程序。
  4. * @version 2.0
  5. * @author zengbingjie
  6. * @date 2026-07-29
  7. * @copyright 版权所有 (c) 2026 Xinje Electric。
  8. * @note 修改记录:2.0 适配 uC/OS-II 和 USART1 Modbus 中断。
  9. */
  10. #include "main.h"
  11. #include "stm32f4xx_it.h"
  12. /**
  13. * @brief 处理不可屏蔽中断。
  14. */
  15. void NMI_Handler(void)
  16. {
  17. while (1) {
  18. }
  19. }
  20. /**
  21. * @brief 处理硬件错误中断。
  22. */
  23. void HardFault_Handler(void)
  24. {
  25. while (1) {
  26. }
  27. }
  28. /**
  29. * @brief 处理内存管理错误中断。
  30. */
  31. void MemManage_Handler(void)
  32. {
  33. while (1) {
  34. }
  35. }
  36. /**
  37. * @brief 处理总线错误中断。
  38. */
  39. void BusFault_Handler(void)
  40. {
  41. while (1) {
  42. }
  43. }
  44. /**
  45. * @brief 处理用法错误中断。
  46. */
  47. void UsageFault_Handler(void)
  48. {
  49. while (1) {
  50. }
  51. }
  52. /**
  53. * @brief 处理系统服务调用中断。
  54. */
  55. void SVC_Handler(void)
  56. {
  57. }
  58. /**
  59. * @brief 处理调试监控中断。
  60. */
  61. void DebugMon_Handler(void)
  62. {
  63. }
  64. /**
  65. * @brief 处理 PendSV 上下文切换中断。
  66. */
  67. void PendSV_Handler(void)
  68. {
  69. }
  70. /**
  71. * @brief 处理 1 ms 系统节拍中断。
  72. */
  73. void SysTick_Handler(void)
  74. {
  75. if (OSRunning == OS_TRUE) {
  76. OSIntEnter();
  77. OSTimeTick();
  78. OSIntExit();
  79. }
  80. HAL_IncTick();
  81. }
  82. /**
  83. * @brief 处理 USART1 的 Modbus 收发中断。
  84. */
  85. void USART1_IRQHandler(void)
  86. {
  87. OSIntEnter();
  88. HAL_UART_IRQHandler(&Uart1Handle);
  89. OSIntExit();
  90. }