drv_led.c 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. /*
  2. * Copyright (c) 2006-2018, RT-Thread Development Team
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. *
  6. * Change Logs:
  7. * Date Author Notes
  8. * 2017-08-25 LongfeiMa the first version for stm32h7xx
  9. */
  10. #include <rtthread.h>
  11. #include <board.h>
  12. #include "drv_led.h"
  13. static void led_thread_entry(void *parameter)
  14. {
  15. while (1)
  16. {
  17. led_on();
  18. rt_thread_delay(RT_TICK_PER_SECOND);
  19. led_off();
  20. rt_thread_delay(RT_TICK_PER_SECOND);
  21. }
  22. }
  23. int led_hw_init(void)
  24. {
  25. GPIO_InitTypeDef GPIO_InitStruct;
  26. /* GPIO Ports Clock Enable */
  27. __HAL_RCC_GPIOB_CLK_ENABLE();
  28. /* Configure GPIO pin: PI1 (LD2) */
  29. GPIO_InitStruct.Pin = GPIO_PIN_14;
  30. GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  31. GPIO_InitStruct.Pull = GPIO_NOPULL;
  32. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  33. HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
  34. return 0;
  35. }
  36. INIT_BOARD_EXPORT(led_hw_init);
  37. int led_init(void)
  38. {
  39. rt_thread_t tid;
  40. tid = rt_thread_create("led",
  41. led_thread_entry, RT_NULL,
  42. 512, 12, 5);
  43. if (tid != RT_NULL)
  44. rt_thread_startup(tid);
  45. return 0;
  46. }
  47. INIT_APP_EXPORT(led_init);