button.c 895 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #include "stm32f0xx_hal.h"
  2. #include "button.h"
  3. #include "led.h"
  4. #include "tim.h"
  5. #include "misc.h"
  6. //
  7. void button_init(void)
  8. {
  9. GPIO_InitTypeDef GPIO_InitStructure = {0};
  10. __HAL_RCC_GPIOB_CLK_ENABLE();
  11. GPIO_InitStructure.Mode = GPIO_MODE_IT_FALLING;
  12. GPIO_InitStructure.Pull = GPIO_PULLUP;
  13. GPIO_InitStructure.Pin = GPIO_PIN_1;
  14. HAL_GPIO_Init(GPIOB, &GPIO_InitStructure);
  15. HAL_NVIC_SetPriority(EXTI0_1_IRQn, 2, 0);
  16. HAL_NVIC_EnableIRQ(EXTI0_1_IRQn);
  17. }
  18. //
  19. void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
  20. {
  21. uint16_t tmp = 0;
  22. if (GPIO_Pin == GPIO_PIN_1)
  23. {
  24. tmp = get_pulse_len();
  25. led_signal_on();
  26. led_inf_on();
  27. tim_signal_start();
  28. tim_inf_set_time(tmp*10);
  29. //led_togle();
  30. }
  31. }
  32. //
  33. void EXTI0_1_IRQHandler(void)
  34. {
  35. HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_1);
  36. }