led.c 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  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_GPIOB_CLK_ENABLE();
  9. // GPIOB_PIN_0 - красный
  10. // GPIOA_PIN_7 - синий
  11. // GPIOA_PIN_5 - одиночный/строка
  12. GPIO_InitStruct.Pin = GPIO_PIN_5 | GPIO_PIN_7;
  13. GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  14. GPIO_InitStruct.Pull = GPIO_NOPULL;
  15. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  16. HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  17. GPIO_InitStruct.Pin = GPIO_PIN_0;
  18. HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
  19. HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_SET);
  20. HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_SET);
  21. HAL_GPIO_WritePin(GPIOA, GPIO_PIN_7, GPIO_PIN_SET);
  22. }
  23. //
  24. void led_freq_toggle(void)
  25. {
  26. HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_5);
  27. }
  28. // legacy
  29. //
  30. void led_togle(void)
  31. {
  32. HAL_GPIO_TogglePin(GPIOF, GPIO_PIN_1);
  33. }
  34. // Индикация нажатия курка
  35. void led_signal_on(void)
  36. {
  37. HAL_GPIO_WritePin(GPIOF, GPIO_PIN_1, GPIO_PIN_RESET);
  38. }
  39. // Индикация нажатия курка
  40. void led_signal_off(void)
  41. {
  42. HAL_GPIO_WritePin(GPIOF, GPIO_PIN_1, GPIO_PIN_SET);
  43. }
  44. // Инфракрасный диод
  45. void led_inf_on(void)
  46. {
  47. HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_SET);
  48. }
  49. // Инфракрасный диод
  50. void led_inf_off(void)
  51. {
  52. HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_RESET);
  53. }
  54. // Индикация напряжения АКБ
  55. void led_but_on(void)
  56. {
  57. HAL_GPIO_WritePin(GPIOF, GPIO_PIN_0, GPIO_PIN_RESET);
  58. }
  59. // Индикация напряжения АКБ
  60. void led_but_toggle(void)
  61. {
  62. HAL_GPIO_TogglePin(GPIOF, GPIO_PIN_0);
  63. }