#ifndef LED_H__ #define LED_H__ #include #include #include "define.h" #ifdef __cplusplus extern "C" { #endif #define LED_INTERVAL 10 #define LED_COMB_INTERVAL 1 #define LED_GPIO_RCC_ENABLE RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE) #define DEV_LED_GPIO GPIOA #define DEV_LED_PIN GPIO_Pin_2 #define DEV_LED_ON GPIO_ResetBits(DEV_LED_GPIO, DEV_LED_PIN) #define DEV_LED_OFF GPIO_SetBits(DEV_LED_GPIO, DEV_LED_PIN) #define SET_DEV_LED(X) if(X==true){DEV_LED_ON;}else{DEV_LED_OFF;} typedef enum { LED_QUEUE_PLAY = 0, LED_QUEUE_TIME = 1, }LED_QUEUE_TYPE; typedef enum{ STAT_LED = 0, LED_TYPE_MAX = 1, }LED_TYPE; typedef enum{ LED_STAT_OFF = 0, LED_STAT_ON = 1 }LED_STAT; typedef enum{ LED_WORK_OFF = 0, LED_WORK_ON = 1, LED_WORK_INVERT = 2, LED_WORK_MAX = 3, }LED_WORK_STAT; typedef void (*led_work_stat_func)(bool stat); typedef struct{ LED_STAT stat; LED_WORK_STAT work_stat; uint32_t single_flicker_period; uint32_t flicker_period ; uint32_t flicker_onperiod; uint32_t flicker_count; led_work_stat_func set_work_stat; }led_work_s; void led_task_init(void); void led_task_start(void); bool set_led_indication(LED_TYPE type, LED_WORK_STAT work_stat, ...); void Set_Led_Queue(LED_QUEUE_TYPE type); void led_enter_ota(void); void led_data_ota(void); #ifdef __cplusplus } #endif #endif // LED_H__ /** @} */