led.c 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  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_togle(void)
  25. {
  26. HAL_GPIO_TogglePin(GPIOF, GPIO_PIN_1);
  27. }
  28. // Индикация нажатия курка
  29. void led_signal_on(void)
  30. {
  31. HAL_GPIO_WritePin(GPIOF, GPIO_PIN_1, GPIO_PIN_RESET);
  32. }
  33. // Индикация нажатия курка
  34. void led_signal_off(void)
  35. {
  36. HAL_GPIO_WritePin(GPIOF, GPIO_PIN_1, GPIO_PIN_SET);
  37. }
  38. // Инфракрасный диод
  39. void led_inf_on(void)
  40. {
  41. HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_SET);
  42. }
  43. // Инфракрасный диод
  44. void led_inf_off(void)
  45. {
  46. HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_RESET);
  47. }
  48. // Индикация напряжения АКБ
  49. void led_but_on(void)
  50. {
  51. HAL_GPIO_WritePin(GPIOF, GPIO_PIN_0, GPIO_PIN_RESET);
  52. }
  53. // Индикация напряжения АКБ
  54. void led_but_toggle(void)
  55. {
  56. HAL_GPIO_TogglePin(GPIOF, GPIO_PIN_0);
  57. }