led.c 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. #include "stm32f0xx_hal.h"
  2. #include "led.h"
  3. //
  4. void led_init(void)
  5. {
  6. GPIO_InitTypeDef GPIO_InitStruct = {0};
  7. __HAL_RCC_GPIOA_CLK_ENABLE();
  8. __HAL_RCC_GPIOF_CLK_ENABLE();
  9. // GPIO_PIN_0 - контроль напряжения АКБ
  10. // GPIO_PIN_1 - сигнализация нажатия курка
  11. GPIO_InitStruct.Pin = GPIO_PIN_0 | GPIO_PIN_1;
  12. GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  13. GPIO_InitStruct.Pull = GPIO_NOPULL;
  14. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  15. HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
  16. // GPIO_PIN_5 - инфракрасный LED
  17. GPIO_InitStruct.Pin = GPIO_PIN_5;
  18. HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  19. HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_RESET);
  20. HAL_GPIO_WritePin(GPIOF, GPIO_PIN_0 | GPIO_PIN_1, GPIO_PIN_SET);
  21. }
  22. //
  23. void led_togle(void)
  24. {
  25. HAL_GPIO_TogglePin(GPIOF, GPIO_PIN_1);
  26. }
  27. // Индикация нажатия курка
  28. void led_signal_on(void)
  29. {
  30. HAL_GPIO_WritePin(GPIOF, GPIO_PIN_1, GPIO_PIN_RESET);
  31. }
  32. // Индикация нажатия курка
  33. void led_signal_off(void)
  34. {
  35. HAL_GPIO_WritePin(GPIOF, GPIO_PIN_1, GPIO_PIN_SET);
  36. }
  37. // Инфракрасный диод
  38. void led_inf_on(void)
  39. {
  40. HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_SET);
  41. }
  42. // Инфракрасный диод
  43. void led_inf_off(void)
  44. {
  45. HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_RESET);
  46. }
  47. // Индикация напряжения АКБ
  48. void led_but_on(void)
  49. {
  50. HAL_GPIO_WritePin(GPIOF, GPIO_PIN_0, GPIO_PIN_RESET);
  51. }
  52. // Индикация напряжения АКБ
  53. void led_but_toggle(void)
  54. {
  55. HAL_GPIO_TogglePin(GPIOF, GPIO_PIN_0);
  56. }