led.h 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. #ifndef LED_H__
  2. #define LED_H__
  3. #include <stdint.h>
  4. #include <stdbool.h>
  5. #include "define.h"
  6. #ifdef __cplusplus
  7. extern "C" {
  8. #endif
  9. #define LED_INTERVAL 10
  10. #define LED_COMB_INTERVAL 1
  11. #define LED_GPIO_RCC_ENABLE RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE)
  12. #define DEV_LED_GPIO GPIOA
  13. #define DEV_LED_PIN GPIO_Pin_2
  14. #define DEV_LED_ON GPIO_ResetBits(DEV_LED_GPIO, DEV_LED_PIN)
  15. #define DEV_LED_OFF GPIO_SetBits(DEV_LED_GPIO, DEV_LED_PIN)
  16. #define SET_DEV_LED(X) if(X==true){DEV_LED_ON;}else{DEV_LED_OFF;}
  17. typedef enum
  18. {
  19. LED_QUEUE_PLAY = 0,
  20. LED_QUEUE_TIME = 1,
  21. }LED_QUEUE_TYPE;
  22. typedef enum{
  23. STAT_LED = 0,
  24. LED_TYPE_MAX = 1,
  25. }LED_TYPE;
  26. typedef enum{
  27. LED_STAT_OFF = 0,
  28. LED_STAT_ON = 1
  29. }LED_STAT;
  30. typedef enum{
  31. LED_WORK_OFF = 0,
  32. LED_WORK_ON = 1,
  33. LED_WORK_INVERT = 2,
  34. LED_WORK_MAX = 3,
  35. }LED_WORK_STAT;
  36. typedef void (*led_work_stat_func)(bool stat);
  37. typedef struct{
  38. LED_STAT stat;
  39. LED_WORK_STAT work_stat;
  40. uint32_t single_flicker_period;
  41. uint32_t flicker_period ;
  42. uint32_t flicker_onperiod;
  43. uint32_t flicker_count;
  44. led_work_stat_func set_work_stat;
  45. }led_work_s;
  46. void led_task_init(void);
  47. void led_task_start(void);
  48. bool set_led_indication(LED_TYPE type, LED_WORK_STAT work_stat, ...);
  49. void Set_Led_Queue(LED_QUEUE_TYPE type);
  50. void led_enter_ota(void);
  51. void led_data_ota(void);
  52. #ifdef __cplusplus
  53. }
  54. #endif
  55. #endif // LED_H__
  56. /** @} */