64 lines
1.2 KiB
C
64 lines
1.2 KiB
C
#ifndef STATUS_LED_H
|
|
#define STATUS_LED_H
|
|
|
|
#include "driver/gpio.h"
|
|
#include "esp_log.h"
|
|
#include "freertos/FreeRTOS.h"
|
|
#include "freertos/task.h"
|
|
|
|
// LED 状态枚举
|
|
typedef enum {
|
|
LED_OFF = 0,
|
|
LED_ON = 1,
|
|
LED_BLINK_SLOW,
|
|
LED_BLINK_FAST,
|
|
LED_HEARTBEAT
|
|
} led_state_t;
|
|
|
|
/**
|
|
* @brief 初始化状态LED
|
|
*
|
|
* 配置两个LED引脚为输出模式并启动控制任务
|
|
*/
|
|
void status_led_init(void);
|
|
|
|
/**
|
|
* @brief 控制指定LED的状态
|
|
*
|
|
* @param led_num LED编号 (1 或 2)
|
|
* @param state LED状态 (0=关闭, 1=开启)
|
|
*/
|
|
void status_led_set(uint8_t led_num, uint8_t state);
|
|
|
|
/**
|
|
* @brief 切换指定LED的状态
|
|
*
|
|
* @param led_num LED编号 (1 或 2)
|
|
*/
|
|
void status_led_toggle(uint8_t led_num);
|
|
|
|
/**
|
|
* @brief 设置LED为闪烁模式
|
|
*
|
|
* @param led_num LED编号 (1 或 2)
|
|
* @param mode 闪烁模式 (0=慢闪, 1=快闪, 2=心跳)
|
|
*/
|
|
void status_led_blink_mode(uint8_t led_num, uint8_t mode);
|
|
|
|
/**
|
|
* @brief 销毁LED控制任务
|
|
*
|
|
* @param led_num LED编号 (1 或 2)
|
|
*/
|
|
void status_led_deinit(uint8_t led_num);
|
|
|
|
/**
|
|
* @brief 获取LED当前状态
|
|
*
|
|
* @param led_num LED编号 (1 或 2)
|
|
* @return 当前LED状态
|
|
*/
|
|
led_state_t status_led_get_state(uint8_t led_num);
|
|
|
|
#endif // STATUS_LED_H
|