led.c 1.7 KB

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