Guest User

Untitled

a guest
Jul 8th, 2019
173
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 7.93 KB | None | 0 0
  1. /* USER CODE BEGIN Header */
  2. /**
  3.   ******************************************************************************
  4.   * @file    stm32l1xx_it.c
  5.   * @brief   Interrupt Service Routines.
  6.   ******************************************************************************
  7.   * @attention
  8.   *
  9.   * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
  10.   * All rights reserved.</center></h2>
  11.   *
  12.   * This software component is licensed by ST under BSD 3-Clause license,
  13.   * the "License"; You may not use this file except in compliance with the
  14.   * License. You may obtain a copy of the License at:
  15.   *                        opensource.org/licenses/BSD-3-Clause
  16.   *
  17.   ******************************************************************************
  18.   */
  19. /* USER CODE END Header */
  20.  
  21. /* Includes ------------------------------------------------------------------*/
  22. #include "main.h"
  23. #include "stm32l1xx_it.h"
  24. /* Private includes ----------------------------------------------------------*/
  25. /* USER CODE BEGIN Includes */
  26. /* USER CODE END Includes */
  27.  
  28. /* Private typedef -----------------------------------------------------------*/
  29. /* USER CODE BEGIN TD */
  30.  
  31. /* USER CODE END TD */
  32.  
  33. /* Private define ------------------------------------------------------------*/
  34. /* USER CODE BEGIN PD */
  35.  
  36. /* USER CODE END PD */
  37.  
  38. /* Private macro -------------------------------------------------------------*/
  39. /* USER CODE BEGIN PM */
  40.  
  41. /* USER CODE END PM */
  42.  
  43. /* Private variables ---------------------------------------------------------*/
  44. /* USER CODE BEGIN PV */
  45.  
  46. /* USER CODE END PV */
  47.  
  48. /* Private function prototypes -----------------------------------------------*/
  49. /* USER CODE BEGIN PFP */
  50.  
  51. /* USER CODE END PFP */
  52.  
  53. /* Private user code ---------------------------------------------------------*/
  54. /* USER CODE BEGIN 0 */
  55.  
  56. /* USER CODE END 0 */
  57.  
  58. /* External variables --------------------------------------------------------*/
  59. extern RTC_HandleTypeDef hrtc;
  60. extern TIM_HandleTypeDef htim2;
  61. extern TIM_HandleTypeDef htim3;
  62. /* USER CODE BEGIN EV */
  63.  
  64. /* USER CODE END EV */
  65.  
  66. /******************************************************************************/
  67. /*           Cortex-M3 Processor Interruption and Exception Handlers          */
  68. /******************************************************************************/
  69. /**
  70.   * @brief This function handles Non maskable interrupt.
  71.   */
  72. void NMI_Handler(void)
  73. {
  74.   /* USER CODE BEGIN NonMaskableInt_IRQn 0 */
  75.  
  76.   /* USER CODE END NonMaskableInt_IRQn 0 */
  77.   /* USER CODE BEGIN NonMaskableInt_IRQn 1 */
  78.  
  79.   /* USER CODE END NonMaskableInt_IRQn 1 */
  80. }
  81.  
  82. /**
  83.   * @brief This function handles Hard fault interrupt.
  84.   */
  85. void HardFault_Handler(void)
  86. {
  87.   /* USER CODE BEGIN HardFault_IRQn 0 */
  88.  
  89.   /* USER CODE END HardFault_IRQn 0 */
  90.   while (1)
  91.   {
  92.     /* USER CODE BEGIN W1_HardFault_IRQn 0 */
  93.     /* USER CODE END W1_HardFault_IRQn 0 */
  94.   }
  95. }
  96.  
  97. /**
  98.   * @brief This function handles Memory management fault.
  99.   */
  100. void MemManage_Handler(void)
  101. {
  102.   /* USER CODE BEGIN MemoryManagement_IRQn 0 */
  103.  
  104.   /* USER CODE END MemoryManagement_IRQn 0 */
  105.   while (1)
  106.   {
  107.     /* USER CODE BEGIN W1_MemoryManagement_IRQn 0 */
  108.     /* USER CODE END W1_MemoryManagement_IRQn 0 */
  109.   }
  110. }
  111.  
  112. /**
  113.   * @brief This function handles Pre-fetch fault, memory access fault.
  114.   */
  115. void BusFault_Handler(void)
  116. {
  117.   /* USER CODE BEGIN BusFault_IRQn 0 */
  118.  
  119.   /* USER CODE END BusFault_IRQn 0 */
  120.   while (1)
  121.   {
  122.     /* USER CODE BEGIN W1_BusFault_IRQn 0 */
  123.     /* USER CODE END W1_BusFault_IRQn 0 */
  124.   }
  125. }
  126.  
  127. /**
  128.   * @brief This function handles Undefined instruction or illegal state.
  129.   */
  130. void UsageFault_Handler(void)
  131. {
  132.   /* USER CODE BEGIN UsageFault_IRQn 0 */
  133.  
  134.   /* USER CODE END UsageFault_IRQn 0 */
  135.   while (1)
  136.   {
  137.     /* USER CODE BEGIN W1_UsageFault_IRQn 0 */
  138.     /* USER CODE END W1_UsageFault_IRQn 0 */
  139.   }
  140. }
  141.  
  142. /**
  143.   * @brief This function handles System service call via SWI instruction.
  144.   */
  145. void SVC_Handler(void)
  146. {
  147.   /* USER CODE BEGIN SVC_IRQn 0 */
  148.  
  149.   /* USER CODE END SVC_IRQn 0 */
  150.   /* USER CODE BEGIN SVC_IRQn 1 */
  151.  
  152.   /* USER CODE END SVC_IRQn 1 */
  153. }
  154.  
  155. /**
  156.   * @brief This function handles Debug monitor.
  157.   */
  158. void DebugMon_Handler(void)
  159. {
  160.   /* USER CODE BEGIN DebugMonitor_IRQn 0 */
  161.  
  162.   /* USER CODE END DebugMonitor_IRQn 0 */
  163.   /* USER CODE BEGIN DebugMonitor_IRQn 1 */
  164.  
  165.   /* USER CODE END DebugMonitor_IRQn 1 */
  166. }
  167.  
  168. /**
  169.   * @brief This function handles Pendable request for system service.
  170.   */
  171. void PendSV_Handler(void)
  172. {
  173.   /* USER CODE BEGIN PendSV_IRQn 0 */
  174.  
  175.   /* USER CODE END PendSV_IRQn 0 */
  176.   /* USER CODE BEGIN PendSV_IRQn 1 */
  177.  
  178.   /* USER CODE END PendSV_IRQn 1 */
  179. }
  180.  
  181. /**
  182.   * @brief This function handles System tick timer.
  183.   */
  184. void SysTick_Handler(void)
  185. {
  186.   /* USER CODE BEGIN SysTick_IRQn 0 */
  187.  
  188.   /* USER CODE END SysTick_IRQn 0 */
  189.   HAL_IncTick();
  190.   /* USER CODE BEGIN SysTick_IRQn 1 */
  191.  
  192.   /* USER CODE END SysTick_IRQn 1 */
  193. }
  194.  
  195. /******************************************************************************/
  196. /* STM32L1xx Peripheral Interrupt Handlers                                    */
  197. /* Add here the Interrupt Handlers for the used peripherals.                  */
  198. /* For the available peripheral interrupt handler names,                      */
  199. /* please refer to the startup file (startup_stm32l1xx.s).                    */
  200. /******************************************************************************/
  201.  
  202. /**
  203.   * @brief This function handles RTC wake-up interrupt through EXTI line 20.
  204.   */
  205. void RTC_WKUP_IRQHandler(void)
  206. {
  207.   /* USER CODE BEGIN RTC_WKUP_IRQn 0 */
  208.  
  209.   /* USER CODE END RTC_WKUP_IRQn 0 */
  210.   HAL_RTCEx_WakeUpTimerIRQHandler(&hrtc);
  211.   /* USER CODE BEGIN RTC_WKUP_IRQn 1 */
  212.  
  213.   /* USER CODE END RTC_WKUP_IRQn 1 */
  214. }
  215.  
  216. /**
  217.   * @brief This function handles EXTI line1 interrupt.
  218.   */
  219. void EXTI1_IRQHandler(void)
  220. {
  221.   /* USER CODE BEGIN EXTI1_IRQn 0 */
  222.  
  223.   /* USER CODE END EXTI1_IRQn 0 */
  224.   HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_1);
  225.   /* USER CODE BEGIN EXTI1_IRQn 1 */
  226.  
  227.   /* USER CODE END EXTI1_IRQn 1 */
  228. }
  229.  
  230. /**
  231.   * @brief This function handles EXTI line2 interrupt.
  232.   */
  233. void EXTI2_IRQHandler(void)
  234. {
  235.   /* USER CODE BEGIN EXTI2_IRQn 0 */
  236.  
  237.   /* USER CODE END EXTI2_IRQn 0 */
  238.   HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_2);
  239.   /* USER CODE BEGIN EXTI2_IRQn 1 */
  240.  
  241.   /* USER CODE END EXTI2_IRQn 1 */
  242. }
  243.  
  244. /**
  245.   * @brief This function handles EXTI line3 interrupt.
  246.   */
  247. void EXTI3_IRQHandler(void)
  248. {
  249.   /* USER CODE BEGIN EXTI3_IRQn 0 */
  250.  
  251.   /* USER CODE END EXTI3_IRQn 0 */
  252.   HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_3);
  253.   /* USER CODE BEGIN EXTI3_IRQn 1 */
  254.  
  255.   /* USER CODE END EXTI3_IRQn 1 */
  256. }
  257.  
  258. uint32_t tick = 0;
  259.  
  260. typedef enum state {idle, wakeUp} State;
  261. extern State machine;
  262.  
  263. void EXTI9_5_IRQHandler(void)
  264. {
  265.     if(HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_5))
  266.         {
  267.             if((HAL_GetTick() - tick) > 500)
  268.             {
  269.                 tick = HAL_GetTick();
  270.                 if(machine == idle)
  271.                     machine = wakeUp;
  272.                 else
  273.                     ;
  274.             }
  275.  
  276.         }
  277.   HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_5);
  278.  
  279. }
  280.  
  281. /**
  282.   * @brief This function handles TIM2 global interrupt.
  283.   */
  284. void TIM2_IRQHandler(void)
  285. {
  286.   /* USER CODE BEGIN TIM2_IRQn 0 */
  287.  
  288.   /* USER CODE END TIM2_IRQn 0 */
  289.   HAL_TIM_IRQHandler(&htim2);
  290.   /* USER CODE BEGIN TIM2_IRQn 1 */
  291.  
  292.   /* USER CODE END TIM2_IRQn 1 */
  293. }
  294.  
  295. /**
  296.   * @brief This function handles TIM3 global interrupt.
  297.   */
  298. extern uint16_t intTimer;
  299. void TIM3_IRQHandler(void)
  300. {
  301.     intTimer++;
  302.     HAL_TIM_IRQHandler(&htim3);
  303.   /* USER CODE BEGIN TIM3_IRQn 1 */
  304.  
  305.   /* USER CODE END TIM3_IRQn 1 */
  306. }
  307.  
  308. /**
  309.   * @brief This function handles RTC alarms A and B interrupt through EXTI line 17.
  310.   */
  311. void RTC_Alarm_IRQHandler(void)
  312. {
  313.   /* USER CODE BEGIN RTC_Alarm_IRQn 0 */
  314.  
  315.   /* USER CODE END RTC_Alarm_IRQn 0 */
  316.   HAL_RTC_AlarmIRQHandler(&hrtc);
  317.   /* USER CODE BEGIN RTC_Alarm_IRQn 1 */
  318.  
  319.   /* USER CODE END RTC_Alarm_IRQn 1 */
  320. }
  321.  
  322. /* USER CODE BEGIN 1 */
  323.  
  324. /* USER CODE END 1 */
  325. /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
Advertisement
Add Comment
Please, Sign In to add comment