led.c 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. /*
  2. * Copyright (c) 2006-2021, RT-Thread Development Team
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. *
  6. * Change Logs:
  7. * Date Author Notes
  8. * 2021-08-23 AisinoChip first implementation
  9. */
  10. #include <rtthread.h>
  11. #include "board.h"
  12. #define led1_gpio GPIOA
  13. #define led1_pin (GPIO_PIN_1)
  14. void rt_hw_led_init(void)
  15. {
  16. GPIO_InitTypeDef GPIO_Handle;
  17. GPIO_Handle.Mode = GPIO_MODE_OUTPUT_PP;
  18. GPIO_Handle.Pull = GPIO_PULLUP;
  19. GPIO_Handle.Alternate = GPIO_FUNCTION_0;
  20. GPIO_Handle.Pin = led1_pin;
  21. HAL_GPIO_Init(led1_gpio, &GPIO_Handle);
  22. }
  23. void rt_hw_led_on(rt_uint32_t n)
  24. {
  25. switch (n)
  26. {
  27. case 0:
  28. HAL_GPIO_WritePin(led1_gpio, led1_pin, GPIO_PIN_SET);
  29. break;
  30. default:
  31. break;
  32. }
  33. }
  34. void rt_hw_led_off(rt_uint32_t n)
  35. {
  36. switch (n)
  37. {
  38. case 0:
  39. HAL_GPIO_WritePin(led1_gpio, led1_pin, GPIO_PIN_CLEAR);
  40. break;
  41. default:
  42. break;
  43. }
  44. }
  45. void rt_hw_led_toggle(rt_uint32_t n)
  46. {
  47. static rt_bool_t stat = RT_TRUE;
  48. if (stat == RT_TRUE)
  49. {
  50. rt_hw_led_on(n);
  51. stat = RT_FALSE;
  52. }
  53. else
  54. {
  55. rt_hw_led_off(n);
  56. stat = RT_TRUE;
  57. }
  58. }